Обработка ошибок
Общая схема ответа с ошибкой
Code
| Имя | Описание |
|---|---|
| status | Статус ошибки. Описание статусов и причины ошибок в разделе ниже |
| errorMessage | Описание ошибки |
| errorId | Идентификатор ошибки в формате UUID. Может отсутствовать |
| httpStatusCode | HTTP-код ошибки |
Коды и статусы ошибок
| Код ответа HTTP | Status в теле ответа | Причина | Можно повторять запрос |
|---|---|---|---|
| 200 | TransactionAlreadyProcessed | Операция уже была успешно обработана | Нет |
| 200 | ValidationError | Ошибка в данных введенных, клиентом | Нет |
| 400 | ProtocolError | Ошибка в запросе | Нет |
| 401 | ProtocolError | Отсутствуют данные для авторизации | Нет |
| 403 | ProtocolError | Неправильные данные авторизации | Нет |
| 404 | Отсутствует | Неправильный url запроса | Нет |
| 429 | ProtocolError | Превышен лимит вызова одной операции в день | Нет |
| 500 | InternalServerError | Временная недоступность Mindbox | Да |
| 502 | Отсутствует | Временная недоступность Mindbox | Да |
| 503 | InternalServerError | Временная недоступность Mindbox | Да |
| 504 | Отсутствует | Временная недоступность Mindbox | Да |
Операция уже была успешно обработана
Code
Означает, что транзакция с переданным уникальным идентификатором уже была обработана.
Если вы реализовали очередь запросов и повторяете запрос до тех пор пока он не обработается, то это нормальная ситуация. Если вы не повторяете запросы, то такой ответ означает, что вы передали неуникальный идентификатор транзакции.
Ошибка в данных, введенных клиентом
Code
Возвращается в случае ошибок в данных, введенных клиентом.
Если вы полагаетесь на валидацию данных на стороне Mindbox, необходимо отобразить клиенту сообщение с ошибкой:
- Если заполнен тег location, сообщение об ошибке можно показать рядом с соответствующим ему полем. В location пишется xpath поля, с которым связана ошибка.
- Если тег location отсутствует, сообщение об ошибке относится к запросу в целом и его стоит отображать где-то в общей части.
Автоматически повторять тот же запрос в случае таких ошибок нельзя. Нужно отправить новый запрос после того, как клиент поправит ошибки в введенных данных.
Неправильный вызов операции
Code
httpStatusCode дублирует код ответа HTTP.
В случае возникновениях таких ошибок, надо исправлять интеграцию. Уточните у менеджера, что именно надо поправить.
Автоматически повторять тот же запрос в случае таких ошибок нельзя. Если важно не потерять данные, стоит сохранить данные запроса, чтобы можно было его поправить и выполнить исправленную версию.
Временная недоступность Mindbox
Code
Ошибка связана с временными проблемами на стороне mindbox или проблемами на уровне сети. Подробности можно уточнить у менеджера.
В случае подобной ошибки можно повторить запрос:
- Если он не меняет данные (например, запрос получения данных клиента)
- Если в запросе передается уникальный идентификатор транзакции (при повторе надо передавать тот же идентификатор, что и при первом запросе)