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