При обработке ответа необходимо анализировать код ответа HTTP и статус объекта (при наличии).
- HTTP 200 со статусом объекта
succeeded
, с аналогичным финальным статусом или с объектом без статуса — операция успешна. - HTTP 200 со статусом объекта
pending
— результат выполнения операции пока неизвестен. Дожидайтесь входящего уведомления об изменении статуса. Если у этого объекта нет уведомлений, повторите запрос с теми же данными и с тем же ключом идемпотентности или запросите информацию об объекте методом GET. Если статус объекта не изменится, повторяйте запрос с возрастающим разумным интервалом (например, можно использовать последовательность Фибоначчи). - HTTP 200 со статусом объекта
canceled
или аналогичным финальным статусом — операция неуспешна. Проанализируйте причину, из-за которой операция не прошла. При необходимости запросите у пользователя новые данные, повторите запрос с новым ключом идемпотентности и новыми данными. - HTTP 200 со статусом, отличным от
succeeded
,canceled
,pending
— запрос успешно обработан. Ваши действия зависят от значения полученного статуса. - HTTP 4XX — операция неуспешна. Проанализируйте причину, из-за которой операция не прошла. При необходимости повторите запрос с новым ключом идемпотентности и новыми данными.
- HTTP 500 — результат обработки запроса пока не известен. Повторите запрос с теми же данными и с тем же ключом идемпотентности или запросите информацию об объекте методом GET. Если статус объекта не изменится, повторяйте запрос с возрастающим разумным интервалом (например, можно использовать последовательность Фибоначчи).
Неуспешные платежиВходящие уведомления