Некоторые типы пополнения счета работают асинхронно. Приложение отправляет запрос на выполнение операции, а затем периодически обращается на сервер, чтобы проверить статус запрошенной операции. Асинхронно работает ребилл по кредитным картам и мобильная коммерция. При инициализации асинхронных операций сервер возвращает приложению «тикет» и «ID заказа», используя которые приложение может проверять статус операции.
ID функции
r_check_order
Кто может вызывать
Авторизованный пользователь.
Авторизованное приложение.
Принимаемые параметры
order_id – номер заказа на пополнение счета.
Возвращаемые значения
orders – массив содержащий один элемент со значениями:
- id – подтверждение номера запрошенного заказа на пополнение счета;
- state – текущий статус запрошенного заказа. Может принимать следующие значения:
- unknown – заказ не опознан, ошибка;
- closed_ok – заказ успешно «закрыт», счет пополнен;
- failed – заказ был отвергнут процессингом;
- pending – статус заказа пока не известен, процессинг еще не прислал ЛитРес уведомления об успехе или неуспехе транзакции;
- error_code – необязательный параметр, добавляется в ответ при возникновении ошибки на стороне процессинга. Возможные значения:
- 1 – техническая проблема на стороне платежного сервиса. Возможно, что запрошенная операция пройдет успешно при отправке запроса спустя некоторое время;
- 2 – провести платеж невозможно, плательщику стоит воспользоваться другим способом оплаты;
- 3 – переданы корректные данные, но платеж с переданными параметрами отклонен платежной системой. Например, банк-эмитент карты запретил платеж через интернет, мобильный телефон принадлежит корпоративному тарифу и не может провести списание и т. п. Плательщику стоит либо связаться с системой, проводящей платежи (например, позвонить в банк) и выяснить подробности, либо передать новые параметры для оплаты;
- 4 – время жизни переданного order_id истекло (время жизни 45 мин);
- 76 - ордер завершился ошибкой по причине того, что платежная система не поддерживает карту. Значение берется из таблицы с ордерами.
Возможные ошибки
error_code | error_message | Описание |
|---|---|---|
101125 | Невалидный номер заказа | Переданный в параметрах order_id истек либо неверен (протух или не в списке выданных) |
Пример запроса на сервер
{
"app": "1",
"time": "2014-11-07T16:21:02+03:00",
"sha": "b79d8e9993d20da6abe78838d3c7fbf640a4c52956569bef3c685d3453316b5c",
"sid": "f121e02084344f06da1a5213999e8fcG",
"requests": [
{
"func": "r_check_order",
"id": "check_order",
"param": {
"order_id": "100500",
}
}
]
}
Пример ответа сервера
{
"success": true,
"time": "2014-11-07T16:21:02+03:00",
"check_order": {
"orders" : [
{
"state" : "pending",
"id" : "896720627",
"account" : 0
}
],
"success" : true
}
}
Пример ответа с ошибкой
{
"check_order" : {
"orders" : [
{
"error_code" : "76",
"id" : "1187804837",
"state" : "failed"
}
],
"success" : true
},
"success" : true,
"time" : "2022-12-09T14:33:42+03:00"
}