Простая интеграция Яндекс.Кассы на PHP

На сегодняшний день Яндекс.Касса — это один из самых популярных мерчантов для подключения оплаты на любом сайте. Касса позволяет принимать платежи с помощью банковских карт и Яндекс.Денег, а так же подключить онлайн-кассу.

Если у вас интернет-магазин на одной из популярных CMS, то подключить оплату с помощью Яндекс.Кассы не представит каких-либо проблем. На официальном сайте представлено большое количество готовых модулей для различных CMS, фреймворков и даже мессенджеров. Но что если касса нужна для сайта-каталога без корзины, или например, для сайта-лендинга. В этом случае нужно будет интегрировать Яндекс.Кассу с помощью API.

yakassa1-1024x519-8520032 Модули Яндекс.Кассы

Прием оплаты на сайте со старой версией API был организован, как и у большинства мерчантов, с помощью HTML-формы, отправляющей данные вместе с пользователем на платежный шлюз. На данный момент старая версия API функционирует, и в ближайшее время прекращать его работу не планируется, как сообщает поддержка Яндекс.Кассы. Но все же в документации рекомендуется перейти на новую версию, о чем сигнализирует предупреждение в красной рамке.

yakassa2-5623937 Старая версия API

Мы конечно же рассмотрим интеграцию Яндекс.Кассы c новой версией API на PHP.

Получение API-ключа

Для начала необходимо зарегистрироваться на сайте kassa.yandex.ru или авторизоваться с существующим логином и паролем от Яндекс.Почты.

Для получения боевого API-ключа необходимо предоставить документы и подписать договор. Но для начала разработки можно воспользоваться тестовыми ключами, которые после успешного тестирования можно заменить на боевые. Для этого создайте тестовый магазин нажав в верхнем меню Все магазины → Создать тестовый магазин.

yakassa3-1024x494-3265581 Создание тестового магазина

Введите URL-адрес сайта и нажмите «Добавить», после чего, перед вами откроется окно с уже полученными ключами.

yakassa4-1024x492-8250783 Добавление сайта

Если это не произошло, то необходимо выбрать все в том же верхнем меню «Все магазины» вновь добавленный сайт, и перейти в раздел «Ключи API» в левом меню.

yakassa5-1024x468-3945938 Ключи API

HTML-форма

В этом примере создадим форму, в которую пользователь будет самостоятельно вводить номер заказа, сумму, телефон и e-mail, но это все условно, и в вашем случае эти данные могут передаваться автоматически, например в скрытом поле

        
        
        
        
        

Создание платежа

В новой версии API необходимо создать так называемый объект платежа отправив в сервис Яндекс.Кассы сумму и ссылку по которой вернется пользователь на исходный сайт. В ответ касса отдает объект платежа, в котором содержится ссылка на платежный шлюз. В отправленных данных так же можно указать дополнительные параметры, например описание, где мы и будем указывать данные пользователя и заказа.

Для работы с платежами по API Яндекс.Кассы на PHP существует уже готовая библиотека, которую можно скачать здесь.

Скачиваем и разархивируем из архива папку lib. Для всех файлов обработчика я сделал отдельную папку kassa. Туда и добавляем папку lib. Там же создайте файл pay.php. Именно на него будут приходить данные с формы и в нем будет создаваться объект платежа. Далее по полученной ссылке пользователь будет переадресован на оплату в Яндекс.Кассу. Для пользователя это будет происходить практически незаметно. Не забудьте указать ваш секретный ключ и идентификатор магазина полученные ранее в $client->setAuth.

        
Сейчас вы будете перенаправлены на страницу оплаты, если этого не произошло нажмите на ссылку ниже:

В случае успешно проведенного платежа, Яндекс.Касса будет обращаться к этому скрипту, который отправит E-mail сообщение. Данные об объекте платежа содержатся в переменной $payment.