Уведомления по Callback URL
Мерчант будет получать уведомления на Callback URL с окончательным ответом по платежу, который содержит статус транзакции и соответствующие детали (например, qrStatus
, payId
, amount
, etc).
На основании этих уведомлений мерчант должен обеспечить доставку услуги или товара покупателю.
Уведомление считается успешно полученным, если сервер мерчанта отвечает кодом HTTP 200 OK.
Структура уведомления (Пример)
Проверка подписи
Для проверки целостности и подлинности полученных данных необходимо проверить подпись (signature
) из объекта result
, используя следующий алгоритм:
Все поля объекта
result
, за исключением поляsignature
, сортируются в алфавитном порядке.Поля со значением
null
или пустой строкой (""
) полностью игнорируются при формировании подписи, как будто они отсутствуют.Поля, содержащие суммы (
amount
,commission
), форматируются с точностью до двух знаков после запятой (например:0.50
,2.31
) до объединения.Значения оставшихся параметров объединяются в строку, используя двоеточие (
:
) в качестве разделителя, в отсортированном порядке.В конец полученной строки добавляется ключ подписи (Signature Key), доступный в настройках проекта в платформе maibmerchants.
Из полученной строки формируется бинарный хеш по алгоритму SHA-256.
Полученный хеш кодируется в формате Base64 (или другом, указанном в официальной документации QR MIA).
Сгенерированная подпись сравнивается со значением поля
signature
, полученного в уведомлении.
Если значения совпадают, подпись считается действительной, а данные — подлинными и неизменёнными.
Пример проверки подписи
Рекомендации
Убедитесь, что ваш сервер доступен с IP-адресов maib для получения уведомлений.
Отвечайте кодом HTTP 200 OK только после успешной проверки подписи.
В случае ошибок или недействительной подписи отвечайте кодом, отличным от 200, чтобы инициировать повторную отправку уведомления.
Last updated