Прием оплаты через электронные платёжные системы
Использование UnonaPay API позволит, один раз выполнив техническую настройку приёма платежей, использовать все включённые в систему способы оплаты, список которых постоянно расширяется.
Алгоритм работы с API
Для работы с платежами вам необходимо выполнять запросы к UnonaPay API. Независимо от типа (запрос на оплату или запрос о статусе платежа), каждый запрос должен соответствовать следующим требованиям:
- использовать базовую HTTP-аутентификацию c идентификатором и секретным ключом магазина;
- содержать заголовки
Content-Type: application/json
иAccept: application/json
; - иметь тело в формате JSON.
Алгоритм выполнения запросов на совершение платежа независимо от конкретной электронной платёжной системы стандартный. Он подразумевает отправку определённого запроса в заданном формате, последующую обработку полученного ответа и обработку обратного вызова. В общем случае для выполнения платежа независимо от его деталей и конкретной платёжной системы необходимо:
-
Отправить запрос на создание нового платежа с помощью вызова UnonaPay API и получить ответ.
-
Если данные в отправленном запросе верны и платёж можно провести напрямую, UnonaPay API возвращает статус successful или failed, делает обратный вызов на переданый в параметрах
notification_url
, а также сразу отображает информацию о платеже в личном кабинете; -
Если данные в отправленном запросе верны, но платёж невозможно провести напрямую, то UnonaPay API возвращает ответ со статусом pending и данные формы для перенаправления покупателя на сайт платежной системы. Используя полученные данные, магазину необходимо создать форму, после отправки которой пользователь будет перенаправлен на сайт электронной платёжной системы, где он завершит платеж. Пока пользователь находится на сайте платёжной системы и совершает платёж - UnonaPay ничего не делает и ждёт от платёжной системы уведомления о статусе совершаемого платежа.
-
В тот момент, когда статус платежа принимает окончательное значение, на переданный в запросе notification_url (при его наличии) делается обратный вызов, содержащий информацию о завершённом платеже. Если параметр
notification_url
отсутствует, обратный вызов не делается и результаты выполнения запроса на совершение платежа можно получить, запросив статус оплаты по uid. -
После завершения платежа на сайте платежной системы пользователь возвращается в UnonaPay и перенаправляется на ваш сайт или приложение на адрес, переданный в
return_url
. -
При обработке вышеуказанных URL ваш магазин должен запросить статус оплаты по uid и, в зависимости от полученного статуса, вывести пользователю информацию об её успешности или неуспешности. Если UnonaPay API возвращает статус запроса pending, это означает что пользователь ещё не завершил платёж на сайте платёжной системы и запрос о статусе платежа необходимо повторить через какое-то время.
Более подробную информацию о формате запросов и ответов можно найти в разделе документации UnonaPay API по операциям, доступным при работе с альтерантивными платежными методами.