HTTP-уведомления

Если вы хотите мгновенно узнавать о поступлении денег и сразу идентифицировать каждый перевод, включите 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>

unpaid – не оплачен
confirming - подтверждается
paid – оплачен
cancelled - отменен
mispaid - сумам оплаты меньше суммы счета

Статус счета

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. Это нужно, чтобы удостовериться в целостности данных уведомления и в том, что уведомление отправлено Криптонатором.