Callback
Callback - сервис для отправки системой Any.Money результата работы метода и сообщения о финализации статуса ордера на заданный url-адрес.
Для использования сервиса Callback необходимо передать в запросе выполнения метода ссылку на url-адрес (в параметре callback_url, если он предусмотрен во входящих аргументах). После завершения метода по переданному адресу будет отправлен запрос, содержащий результаты его работы и статус ордера.
Формирование callback-запроса
Сообщения от сервиса Callback формируются в виде запросов, имеющих
следующие параметры:
- метод запроса - POST;
- в заголовках запрос обязательно содержит время создания запроса
(x-utc-now-ms, в миллисекундах) и хэш-подпись
x-signature, удостоверяющую его подлинность:
Пример заголовков callback-запроса:
- x-signature
- 9a45aefaaab16f5414f533b238037a6ddb24c8c1160304a0fa7bd793a26f07a89368f8f103a1f404e9ba03290525b4 f7df9d59786177bc0fe5abb3d4deb4fcfe
- x-utc-now-ms
- 1575228754418
- x-merchant
- 1234
- тело запроса передается в формате JSON, в нем будет размещен результат выполнения метода:
Пример ответа метода, включенного в callback-запрос:
{
tp: invoice,
lid: 135735,
ref: T7f3RvtjZHxKOABY5aQVtOZeycPPUBDwDIQMSEvhr4GxwlLoy17mHEIshRhpMlrOyB09,
tgt: null,
rate: null,
ctime: 1571402123375,
ftime: 1575228754418,
owner: 220,
token: LSoUUp0KIdfCXrgBsBHMawlSXWS6H8iwz5ZbJP00lMhwMN1bdeTFiN5CQ5Rk8k1oSh9Q,
status: fail,
in_curr: USD,
out_curr: USD,
uaccount: null,
userdata: {
},
in_amount: 11,
externalid: in_862021412136317,
out_amount: 11,
orig_amount: 11,
payway_name: perfect,
renumeration: 0,
in_fee_amount: 3,
account_amount: 8,
out_fee_amount: 3
}
Репрезентация callback-сообщения
Для ордеров большинства типов на заданный callback URL в callback-сообщении возвращается стандартная репрезентация параметров ордера системы Any.Money.
Для ордеров, пополняемых криптовалютой, в callback-сообщении возвращается сокращённая репрезентация параметров ордера.
Ожидание подтверждения получения, повторная отправка callback сообщений
После отправки callback-сообщения сервис ожидает получения ответа с
HTTP-статусом 200 OK в течении пяти секунд.
Если за первые пять секунд ответ со статусом 200 OK не будет получен, то сервис
Callback повторит отправку запроса еще только пять раз с такими интервалами:
- вторая через 25 с после предыдущей;
- третья - через 2 мин. 5 с;
- четвертая - через 10 мин. 25 с;
- пятая - через 52 мин. 5 с.
После каждого повтора сервис Callback будет ожидать ответ со
статусом 200 OK.