Если вы хотите мгновенно узнавать о поступлении денег и сразу идентифицировать каждый перевод, включите HTTP-уведомления.
Адрес для получения HTTP-уведомлений можно прописать в разделе МАГАЗИН, закладка Расширенные настройки. Там же можно протестировать отправку уведомлений на него.
Обратите внимание, что если вы укажете адрес для уведомлений в настройках, то вам не нужно будет каждый раз передавать его с параметром success_url в платежных кнопках и формах. Однако, если вы его передадите и он будет отличаться от указанного в настройках, то уведомление будет отправлено на него.
Формат уведомления
При каждом событии, как то создание нового счета, изменение статуса платежа (оплачен, подтверждается, отменен) Криптонатор передает POST уведомление на указанный URL
- метод — POST;
- каждый параметр уведомления указывается парой ключ/значение;
- MIME-тип — application/x-www-form-urlencoded;
- кодировка символов — UTF-8.
Криптонатор делает пять попыток доставить уведомление: сразу при событии, затем — через 1 минуту, через 5 минут, через 30 минут и последняя — через час.
Уведомление считается принятым, если получатель ответил на запрос кодом HTTP 200 OK.
Хотя уведомления можно принимать и по HTTP-протоколу, мы рекомендуем использовать протокол HTTPS. В этом случае ваш SSL/TLS сертификат должен быть действителен и должным образом подписан. На сертификаты с истекшим сроком действия или некорректно подписанные сертификаты уведомления не отправляются. Получить бесплатный SSL/TLS сертификат можно на сайте https://letsencrypt.org/
Параметры уведомления |
Значения |
Описание |
merchant_id |
<UUID> |
ID вашего магазина |
invoice_id |
<UUID> |
ID счета |
invoice_created |
<timestamp> |
Дата и время создания счета, в формате UTC |
invoice_expires |
<timestamp> |
Дата и время до которого счета действителен, в формате UTC |
invoice_amount |
<decimal> |
Сумма к оплате в валюте счета |
invoice_currency |
<string> |
Валюта счета |
invoice_status |
<string> |
Статус счета |
invoice_url |
<string> |
URL счета |
order_id |
<string> |
Номер заказа в вашей системе учета |
checkout_address |
<string> |
Криптовалютный адрес, на который ожидается оплата |
checkout_amount |
<decimal> |
Сумма к оплате в криптовалюте |
checkout_currency |
<string> |
Криптовалюта, в которой ожидается оплата |
date_time |
<timestamp> |
Дата и время изменения статуса счета в формате UTC |
secret_hash |
<string> |
Проверочный хэш
sha1(string&secret) |
Пример уведомления при создании нового счета
merchant_id=0dd0cf6fd32308b34c6e8b9cb578251f&invoice_id=baf37c414289a5a07095990e536ca958&invoice_created=1457641674&invoice_expires=1457642874&invoice_amount=0.07000000&invoice_currency=usd&invoice_status=unpaid&invoice_url=https://www.cryptonator.com/merchant/invoice/baf37c414289a5a07095990e536ca95&order_id=00001&checkout_address=D5atzDQ6Dipp2cp7Z4tHDLHBTAWHCH4F9D&checkout_amount=292.14880000&checkout_currency=dogecoin&date_time=1457641674&secret_hash=96557e2334cf656287417fe0c85e4581e6815dfc
Расчет и проверка secret_hash
Проверочный хэш secret_hash содержит значение хэш-функции SHA-1 от свертки ВСЕХ параметров уведомления совместно с секретным словом, которое находится в разделе МАГАЗИН, закладка Расширенные настройки.
secret_hash = sha1(string&secret)
Чтобы проверить целостность и подлинность уведомления, рассчитайте хэш по алгоритму, приведенному ниже. Сравните полученные данные со значением параметра secret_hash в уведомлении.
Формат строки
merchant_id&invoice_id&invoice_created&invoice_expires&invoice_amount&invoice_currency&invoice_status&invoice_url&order_id&checkout_address&checkout_amount&checkout_currency&date_time&secret
Пример строки
0dd0cf6fd32308b34c6e8b9cb578251f&baf37c414289a5a07095990e536ca958&1457641674&1457642874&0.07000000&usd&unpaid&https://www.cryptonator.com/merchant/invoice/baf37c414289a5a07095990e536ca95&00001&D5atzDQ6Dipp2cp7Z4tHDLHBTAWHCH4F9D&292.14880000&dogecoin&1457641674&334cf656287417fe0c85e4
Если у одного из полученных параметров нет значения, то в строке он должен быть представлен просто как &
Всегда проверяйте значение параметра secret_hash. Это нужно, чтобы удостовериться в целостности данных уведомления и в том, что уведомление отправлено Криптонатором.