Payin Classic
Статус операции
/topup_status — lifecycle статусов операции.
/topup_status
Проверка статуса ранее созданной операции пополнения.
Раньше чем через 5 минут после создания операции нет смысла дёргать
/topup_status.Запрос
{
"Datetime": "2009-11-10T23:01:02+03:00",
"Payload": {
"RegisteredUid": "1234567"
}
}
RegisteredUid — тот же, что вернул /prepare_topup.
Ответ
{
"SuccessCall": true,
"Datetime": "2009-11-10T23:01:02+03:00",
"Payload": {
"Status": "finalSuccess",
"sum": 100500.01
}
}
Lifecycle статусов
| Статус | Что означает |
|---|---|
awaitingConfirmTopupation | После /prepare_topup, но до /confirm_topup. Операция подготовлена, но не запущена. |
pending | Операция выполняется. |
finalSuccess | Операция завершена, платёж успешен. Пополняйте баланс пользователя. |
finalFailed | Операция завершена, платёж не прошёл. |
Статусы с префиксом final не изменяются.
Поле sum
- Присутствует, когда значение известно (ненулевое); при нулевом значении поле опускается (
omitempty). До завершения операции это эхоDesireSum, приfinalSuccess— фактически зачисленная сумма. Само наличиеsumне означает успех — зачисляйте баланс пользователя только по статусуfinalSuccess. - Фактическая сумма может отличаться от
DesireSum, которую вы передавали в/prepare_topup— приfinalSuccessориентируйтесь именно наsum.
Webhook о смене статуса (опционально)
Если в /prepare_topup передан WebhookStatusUrl, то при каждой смене статуса операции мы отправляем на этот URL POST-запрос с телом:
{
"OrderID": "123456",
"Status": "finalSuccess",
"sum": 100500.01
}
| Поле | Описание |
|---|---|
OrderID | Идентификатор операции (тот же, что и RegisteredUid). Регистр важен. |
Status | Значения те же, что в таблице выше: awaitingConfirmTopupation, pending, finalSuccess, finalFailed. Регистр важен. |
sum | Фактическая сумма. Присутствует, когда уже известна (ненулевая), и отсутствует, пока неизвестна; может отличаться от DesireSum. Решение о зачислении принимайте по Status, а не по наличию sum. |
- Webhook шлётся только при фактической смене статуса — один и тот же статус повторно не отправляется.
- URL должен быть валидным
http/https— иначе/prepare_topupвернёт ошибку. - Webhook — это дополнение к polling, а не замена: гарантию даёт
/topup_status.
Повторы
При ошибочном ответе запрос можно повторить через 5 секунд.