Уведомления о платеже отправляются только по протоколу HTTPS. Сертификат должен быть выдан доверенным центром сертификации (напр., Comodo, Verisign, Thawte и т.п.)
Уведомление представляет собой входящий POST-запрос на notify_url, предоставляемый мерчантом.
Тело запроса содержит JSON-данные счета:
{
"status": "PAID",
"transaction_id": "123456789",
"bill_id": 70440,
"signature": "1f6df66ecf41280a6c66fc2076db19862dcc0f4c6bd76a7ab811feddc05ae2d8"
}
{
"status": "DECLINED",
"transaction_id": "123456790",
"bill_id": 70441,
"signature": "1f6df66ecf41280a6c66fc2076db1sdjisd390f4c6bd76a7ab811feddc05ae2d8"
}
{
"status": " PAY_ERROR",
"transaction_id": "123456791",
"bill_id": 70442,
"signature": "1f6df66ecf41280a6c66fc2076db19862dcc0f4c6bd76a7ab811feddc05a59y5"
}
После получения входящего уведомления необходимо проверить подлинность уведомления. Для этого используется механизм цифровой подписи. Подпись уведомления отправляется в параметре "signature".
Объединить значения параметров в одну строку с разделителем ":"
parameters = {transaction_id}:{bill_id}:{status}
Вычислить хэш алгоритмом хэширования sha256:
signature = sha256( sha256( {secret_token}:{merchant_id} ):{parameters} )
Статусы счетов:
Статус | Описание |
---|---|
PAID | Счет оплачен |
DECLINED | Счет отклонен |
PAY_ERROR | Ошибка при оплате счёта |