3.2.6. Обработка ошибок
|
|
Такском-Доклайнз Web API предусматривает сообщения об ошибках при вызове методов: CertificateLogin, GetMessageList, SendMessage и GetMessage. Ошибки делятся на:
•
|
Синхронные, когда ошибка возвращается как JSON сообщение на HTTP-запрос;
|
•
|
Асинхронные, когда сообщение об ошибке размещено в поле ErrorMessage в контейнере Такском.
|
Пример синхронной ошибки
Например, если card.xml не соответствует XSD-схеме, это выявляется синхронно, и ошибка отобразится а HTTP-ответе на вызов метода SendMessage:
{"Details":"Файл карточки имеет некорректную структуру (Card.xml has invalid structure)",
"AdditionalData":"The 'EernalIdentifier' attribute is not declared.",
"ApiErrorCode":2112,
"CommonDescription":"Некорректный транспортный контейнер (Transport container is invalid)",
"StatusCode":400}
ПРИМЕЧАНИЕ: Текст ошибки не ориентирован на конечного пользователя, главная цель - информировать разработчика системы.
Пример асинхронной ошибки
Пример асинхронной ошибки: тарифный счётчик равен нулю. Ошибка проявляется, если счётчик не проверялся перед отправкой документа. При такой ситуации система Такском-Доклайнз не обрабатывает отправляемый документ и возвращает следующее сообщение:
<?xml version="1.0" encoding="windows-1251"?>
<ошибка xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<кодОшибки>3201</кодОшибки>
<описание>Контейнер не может быть отправлен в связи с ограничениями тарификации (Transport container with invoice cannot be sent due to tariff restrictions)</описание>
</ошибка>
В ответе метода GetMessageList эта ошибка отображается так:
<?xml version="1.0" encoding="utf-8"?>
<ContainerDescription RequestDateTime="2012-12-13 16:46:10.206" IsLast="True"
LastRecordDateTime="2012-12-13 16:46:03.607" xmlns="http://api-invoice.taxcom.ru/meta">
<DocFlow Id="b35ddf02-33a8-4de1-ae8c-cad96b518682">
<Documents>
<Document ReglamentCode="Invoice" TransactionCode="ErrorMessage">
<Definition>
<Identifiers InternalId="cc322a2d-f556-4d75-ae7c-4f7f5b26877e" ParentDocumentInternalId="82cecc5e-1e2e-46e3-b2a9-c71844ff3490" />
<Type />
</Definition>
</Document>
</Documents>
</DocFlow>
</ContainerDescription>
В Приложении 2. Коды ошибок приведен полный список ошибок, диагностируемых Такском-Доклайнз Web API.