Анализ ответов на запросы в API

From PonyExpress API Wiki
Jump to: navigation, search

Ответ на запрос типа OrderRequest режим Order

Заказ успешно создан в API

В случае успешного создания заказа в API в ответе в теге <StatusList> будет статус с кодом Processing.

<OrderStatus>
  <Description>Order is in processing</Description>
  <Date>2017-01-24T15:33:35.603</Date>
  <Code>Processing</Code>
</OrderStatus>

Заказ отклонен или аннулирован API

В случае, если в заказе присутствуют некорректные данные (но структура заказа верная), то ответе в теге <StatusList> будет статус с кодом Declined (заказ отклонён) или Annulled (заказ аннулирован).

<OrderStatus>
  <Description>Договор указан неверно!</Description>
  <Date>2017-01-24T15:04:29.713</Date>
  <Code>Declined</Code>
  <ErrorCode>C1011</ErrorCode>
</OrderStatus>

Текст ошибки будет размещен в теге <Description>.
Код ошибки отображается в теге <ErrorCode>. Описание кодов ошибок см. ниже в этом разделе.

В запросе есть ошибки

Для вывода ошибок уровня запроса (например, некорректный формат Xml-запроса) предусмотрен тег <ResponceMessage>. В случае наличия ошибки в теге <IsError> будет значение true

<ResponceMessage>
  <IsError>true</IsError>
  <Text>Ошибка структуры XML! Сообщение:Name cannot begin with the '1' character, hexadecimal value 0x31. Line 3, position 4.</Text>
  <ErrorCode>C0004</ErrorCode>
</ResponceMessage>

Код ошибки также отображается в теге <ErrorCode>.

Предупреждающие и информационные сообщения в ответе

Для вывода предупреждающих и информационных сообщений также предусмотрен тег <ResponceMessage>. В этом случае в теге <IsError> будет значение false

<ResponceMessage>
  <IsError>false</IsError>
  <Text>Город отправителя не найден для заказа test9087967109. Причины: "По индексу и по 3м символам названия УП не найден! Латиница: В файле не передано название района."</Text>
  <ErrorCode>U1006</ErrorCode>
</ResponceMessage>

Код сообщения также отображается в теге <ErrorCode>.


Ответ на запрос типа OrderRequest режим Status

Не найден номер заказа или накладная

В случае если не найден номер заказа или накладная, то в ответе в теге <ResponceMessage> придет сообщение с ошибкой

<ResponceMessage>
  <IsError>false</IsError>
  <Text>Заказ test90879000 не найден. Заказ пропущен</Text>
  <ErrorCode>C0057</ErrorCode>  
</ResponceMessage>

Список типичных ошибок API

Типы ошибок

Тип ошибки Пример Описание
Server Application Error S0006 можно послать заказ повторно через некоторое время
Client Application Error C0001 нужно внести исправления в код клиентского приложения
User Input Error U0015 вывести сообщение об ошибке пользователю, оформившему заказ, или внести исправления в код клиентского приложения
Information Message I0000 запрос выполнен успешно
Total Error T0032 информация о количестве ошибок в запросе, далее нужно смотреть код ошибки по каждому заказу

Список ошибок

Описание кодов ошибок доступно по ссылке: Список типичных ошибок API