2. Уведомление об оплате счетов


Уведомления о платеже отправляются только по протоколу 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 Ошибка при оплате счёта