Если Вы хотите использовать рекуррентные платежи или хотите оказывать услугу пользователю частично (например, пополнять внутренний счёт в зависимости от средств, которые внёс пользователь), то Вам может быть интересна возможность получать дополнительные параметры об оплате. Для этого Вам необходимо в настройках сервиса установить чекбокс «Получать дополнительные параметры об оплате» и указать «URL скрипта для получения дополнительных параметров оплаты». Если URL указан, а чекбокс не включен, то скрипт вызываться не будет.
Система повторов аналогична стандартному webhook механизму.
Пример параметров передаваемых дополнительным обработчиком:
Параметр | Версия нотификаций | Описание |
tid | 1.0, 1.1, 2.0 | ID транзакции |
name | 1.0, 1.1, 2.0 | Название товара или услуги |
comment | 1.0, 1.1, 2.0 | Комментарий платежа. Вы можете передавать через него любую свою информацию. |
partner_id | 1.0, 1.1, 2.0 | ID партнера, то есть ваш ID |
service_id | 1.0, 1.1, 2.0 | ID сервиса |
order_id | 1.0, 1.1, 2.0 | ID заказа. Должен быть уникальным. |
type | 1.0, 1.1, 2.0 | Тип платежа |
cost | 1.0, 1.1, 2.0 | Общая сумма заказа |
income_total | 1.0, 1.1, 2.0 | Общая сумма, заплаченная покупателем |
income | 1.0, 1.1, 2.0 | Сумма полученная в данном вызове |
partner_income | 1.0, 1.1, 2.0 | Сумма в рублях вашего дохода по данному платежу |
system_income | 1.0, 1.1, 2.0 | Сумма в рублях, заплаченная абонентом |
command | 1.0, 1.1, 2.0 | Текущее действие: command=process – вызывается при любой (в том числе частичной) оплате сервиса command=cancel – получен отказ от платежного канала, расшифровка причины в поле resultStr command=success – вызывается при полной оплате сервиса command=recurrent_cancel – вызывается в случае, если держатель карты оменил на рекуррентные платежи. command=recurrent_expire – вызывается когда истёк срок рекуррента. command=refund – вызывается в результате выполнения операции отмены платежа. В поле result=ok или fail. А в resultStr – причина отказа. command=authorize_payment – вызывается при использовании двойной авторизации при платеже command=funds_blocked – вызывается при использовании двух этапной оплаты (BLOCK + CHARGE). Описание в разделе “Двух-этапные платежи (предавторизация)”. ВАЖНО: в случае полной оплаты сервиса придут и success и process. |
result | 1.0, 1.1, 2.0 | Только для command=refund, значения ‘ok’ или ‘fail’ |
resultStr | 1.0, 1.1, 2.0 | Текст уведомления. |
version | 1.0, 1.1, 2.0 | Версия протокола уведомления. (На данный момент: 1.0) |
phone_number | 1.0, 1.1, 2.0 | Опционально, номер телефона |
1.0, 1.1, 2.0 | Опционально, email | |
date_created | 1.0, 1.1, 2.0 | дата создания транзакции |
recurrent_order_id | 1.0, 1.1, 2.0 | ID заказа (order_id), который был передан при первом вызове рекуррентного платежа (только для рекуррентных операций) |
card | 1.0, 1.1, 2.0 | v 1.0 Маскированный номер карты, в случае если проведенный платеж является рекуррентным (только для рекуррентных операций) v 1.1 и 2.0 заполнено всегда когда есть поле card |
cardholder | 1.0, 1.1, 2.0 | Имя держателя карты если присутствует в транзакции |
test | 1.0, 1.1, 2.0 | Значение 1 (только для тестовых платежей) |
check | 2.0 | Алгоритм формирования описан в приложении №1. |
check | 1.0, 1.1 | MD5 хеш от параметров: tid + name + comment + partner_id + service_id + order_id + type + cost + income_total + income + partner_income + system_income + command + phone_number + email + result + resultStr + date_created + version + card + recurrent_order_id + test + secret_key Где secret_key – секретный ключ сервиса. |
Все параметры участвуют в формировании подписи check. Подпись формируется как md5 от всех параметров, сцепленных в строку без пробелов + добавленный в конце секретный ключ сервиса
1 | $param['check'] == md5($param['tid'].$param['name'].$param['comment'].$param['partner_id'].$param['service_id'].$param['order_id'].$param['type'].$param['cost'].$param['income_total'].$param['income'].$param['partner_income'].$param['system_income'].$param['command'].$param['phone_number'].$param['email'].$param['result'].$param['resultStr'].$param['date_created'].$param['version'].$secretKey); |
Внимание: для рекуррентных платежей добавляются два поля card и recurrent_order_id и строка для подписи формируется следующим образом:
tid + name + comment + partner_id + service_id + order_id + type + cost + income_total + income + partner_income + system_income + command + phone_number + email + resultStr + date_created + version +card + recurrent_order_id + secret_key
Значение дополнительных параметров:
Следует отметить, что в случае полной оплаты сервиса будут сформированы два вызова – success и process.