Сервис Яндекс Касса

Сервис Яндекс касса предназначен для оплаты товаров и услуг на своем сайте. Как его внедрить на сайт и настроить?

Подготовка

Нужно заполнить все необходимые документы и отправить их по эл. почте. Здесь трудностей не должно быть. Есть служба поддержки, можно уточнить детали.

ВНИМАНИЕ : Яндекс касса работает только с юридическими лицами и ИП. Для физических лиц есть сервис яндекс деньги.

Необходим SSL сертификат

SSL (англ. secure sockets layer — уровень защищённых сокетов) — криптографический протокол, который подразумевает более безопасную связь.

SSL сертификат
Купить SSL не сложно. Обычно продается у доменных регистраторов или фирм посредников. У последних можно купить дешевле. Летом 2015 года я купить SSL сертификат за 600 руб. в год.

На "нормальных" хостингах вам без проблем установят SSL на ваш домен. Просто перешлите все файлы от продавца SSL в службу поддержки хостинга. Как это сделал я. На хостинге Jino.ru все сделали без проблем.

Проверить, что все установлено очень просто, ваш сайт должен открываться с https://site.ru. Сразу оговорюсь, что для яндекс кассы протокол https нужен только для двух php файлов, которые и открываться никогда не будут.

Возможно, на вашем сайте при открытии его с https перестанет работать флешь или еще "поедет" верстка. Я написал скрипт на php целью которого с https открывать только те страницы, которые нам нужны. Остальные открываются только с http.

Начинаем заполнять анкету от Яндекс кассы

В письме от Яндекс кассы вам придут ваши номера магазина и анкета, которую нужно заполнить. Начинаем заполнять анкету от Яндекс кассы. Нам нужно заполнить названия URL страниц для продакшн и для тестирования. Продакшн это типа для настоящих платежей. Настраивать нужно сразу все.

Делаем для тестирования

Заходим сюда = https://github.com/YandexMoney/yandexmoney/tree/master/Yandex.Kassa/example%20integration/php и скачиваем три файла - checkorder.php, config.php, paymentaviso.php (внизу приложу архив)

Загружаем файлы на сайт. В любые папки, но так чтобы config.php подключался правильно к checkorder.php и paymentaviso.php. В checkorder.php и paymentaviso.php есть include('config.php'); поэтому убедитесь в правильно указанном пути. Файл config.php нужно заполнить
$configs['shopId'] = '';
$configs['scId'] = '';
$configs['ShopPassword'] = '';
Это у вас должно быть.

Проверьте файлы checkorder.php и paymentaviso.php. Временно сотрите там все, напишите любой текст и откройте его в браузере через https://site.ru/...ваши папки.../checkorder.php и https://site.ru/...ваши папки.../ paymentaviso.php. Если все открылось нормально, то можно двигаться дальше. Если нет, дальше не делаете – работать не будет. Ищите причину и устраните её.

Дальше создаем еще две страницы для successURL - оплата прошла и fatailURL – оплата не прошла. Можно сделать оду страницу и проверять через переменную. Это есть в видео. Пусть пока будут пустыми, мы заполним их ниже.

Получилось четыре URL адреса. Заполняем их в анкету.

Делаем для продакшн

Делаем тоже самое, только меняем url названия. Например, перекладываем те же четыре файла в разные папки. Оправляем анкету в Яндекс кассу.

HTML Форма

От Яндекс кассы пришло письмо с одобрением формой для оплаты в ТЕСТОВОМ РЕЖИМЕ. Ставим ее на любую страницу сайта и заполняем поля.

Здесь пишите ваши id

<input type="hidden" name="shopId" value="407404" />
<input type="hidden" name="scid" value="280657" />

В orderNumber любое число. Оно не может повторяться два раза. Всегда уникальное. Я использовал функцию time();

<input name="orderNumber" value="14413791022" type="hidden" />

Можно создавать свои поля в названии инпута, обязательно сначала должен быть префикс cps_

<input name="cps_user" value="part1" type="hidden" />

В тесте не работают другие способы оплаты кроме яндекс денег и банковской карты.

successURL и fatailURL

Теперь можно заполнить файлы successURL и fatailURL

Открываем successURL, пишем "Оплата прошла" или подобное, в fatailURL пишем "Оплата не прошла".
Потом в этих файлах можно дописать php проверки. Это уже все индивидуально. Главное что бы мы переместились на successURL страницу, после успешной оплаты.

Тестовая оплата

Проведем тестовую оплату. Берем страницу с нашей формой, нажимаем на кнопку (submit). Открываем данные вашей тестовой банковской карты, присланные вам в письме от Яндек кассы, и вводим их для совершения платежа. И для банковской карты и для яндекс денег в тестовом режиме используйте только присланные тестовые данные. Настоящих номеров карт вводить не надо. (См. видео)

После успешной оплаты вы должны переместиться на страницу successURL. Вы должны увидеть надпись "Оплата прошла". Внимательно посмотрите url и вы увидите присланные переменные. Их можно получить проверить и т.д..

Мне писали на почту уже два человека и возмущались таким не надежным способом передачи данных. Полностью согласен.

Скажу сразу. На момент написания этой статьи данные передаются только методом GET. Может в будущем это будет исправлено.

Боевой режим

Если все ok, пишите письмо в тех. поддержку Яндекс кассы и просите перевести вас в "боевой режим". Отличие от тестового режима в файлах, которые мы заполняли ранее, и в самой форме. В атрибуте формы action не забудьте указать правильно адрес сервера.

action="https://money.yandex.ru/eshop.xml"

Еще один "косяк" который я выяснил в ходе тестирования. Кнопка "вернуться в магазин", есть только если вы платите через банковскую карту или яндекс деньги. Может потом это будет исправлено.

Видео Яндекс касса

 
Loader

Комментарии (2)

  • Дарья Киселева

    12 Апрель 2016 at 11:16 |
    Добрый день , такой вопрос вот допустим я поставила форму и подключила эти файлы checkorder.php, config.php, paymentaviso.php , если человек нажал на оплатить и перекинулся на яндекс кассу то магазину приходит проверка на checkorder.php, он сам проверит мне больше ничего туда дописывать не нужно или нужно? и еще вопрос. вот смотрите человек оплатил магазину приходит уведомление на paymentaviso.php ,что оплата прошла успешно, то изменение статуса заказа я там же пишу в этом файле? что бы в бд перезаписалось что он оплачен?

    Отзыв

  • Алексей Дементьев

    12 Апрель 2016 at 14:59 |
    Здравствуйте.
    В checkorder.php и paymentaviso.php ничего вписывать не нужно.
    На paymentaviso.php после оплаты никаких уведомлений не приходит.

    Эти два файла checkorder.php и paymentaviso.php являются служебными, с их помощью яндекс касса как бы сверяется с вашим сайтом.

    Все приходит на successURL и fatailURL
    Или есть оплата или нет. Потом в них можно уже и в базу записать что-то.

    Отзыв

Оставить комментарий

Только для зарегистрированных пользователей