Некоторые типы пополнения счета работают асинхронно. Приложение отправляет запрос на выполнение операции, а затем периодически обращается на сервер, чтобы проверить статус запрошенной операции. Асинхронно работает ребилл по кредитным картам и мобильная коммерция. При инициализации асинхронных операций сервер возвращает приложению «тикет» и «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"
}