Статусные сообщения в СМЭВ 3 - это сообщения, содержащие информацию о статусе обработки сообщения в СМЭВ 3.
Сведения могут быть:
- О непрохождении синхронной или асинхронной проверки в СМЭВ,
- О постановке отправленного сообщения в очередь получателя,
- О доставке сообщения получателю,
- Об архивации сообщения,
- Об истечении срока хранения сообщения, отправленного в адрес ИС.
Сообщения с ошибками возвращаются в том случае, если в ходе синхронной или асинхронной стадий обработки в СМЭВ были выявлены несоответствия требованиям Методических рекомендаций. Например, ошибки могут быть связаны с:
- Электронной подписью (истек срок действия сертификата, отозван или недействителен),
- Приложенными файлами (недопустимый размер, количество файлов или информация о вложении),
- Не найден получатель по виду сведений,
- Доступ к ВС запрещен,
- Непрохождение форматно-логического контроля - несоответствие сообщения схеме ВС или схеме СМЭВ,
- и пр.
С полным перечнем возвращаемых ошибок и причинами возникновения каждой из них можно ознакомиться в статье Описание типовых возвращаемых ошибок.
И если ошибка возникла на асинхронной стадии, тогда в конверте SendRequestResponse для запроса или SendResponseResponse для ответа будут содержаться не сведения о получении сообщения, а сведения о типовой ошибке.
Например, неуспешный результат прохождения асинхронной проверки вложений:
<st3:AsyncProcessingStatus> |
где OriginalMessageId - идентификатор сообщения, сформированный отправителем сообщения, которого касается статусное,
StatusCategory – категория статуса,StatusDetails - описание статуса сообщения,
SmevFault – элемент, содержащий Code – код ошибки и Description – описание ошибки. Данный элемент присутствует только в статусных с ошибкой.
Если по сообщению получено статусное с типовой ошибкой СМЭВ, значит оно не доставлено получателю. Необходимо исправить ошибку и повторить отправку вновь.
Остальные статусные сообщения носят информационный характер, оповещают о переходе в определенный статус.
Так, статусное о постановке отправленного сообщения в очередь получателя говорит о том, что сообщение SendRequestRequest (для запросов) или SendResponseRequest (для ответов) успешно прошло все проверки СМЭВ и размещено в очереди ИС получателя.
Пример:
<st3:AsyncProcessingStatus> <st3:OriginalMessageId>54e0c789-aad0-21ed-bbe7-00505680ab76</st3:OriginalMessageId> <st3:StatusCategory>requestIsAcceptedBySmev</st3:StatusCategory> <st3:StatusDetails>Successfully queued</st3:StatusDetails> </st3:AsyncProcessingStatus> |
Если необходимо получать информацию о факте вычитки из очереди и подтверждения получателем, тогда в этом помогут статусные о доставке сообщения получателю.
Пример:
<st3:AsyncProcessingStatus> <st3:OriginalMessageId>54e0c789-aad0-11ed-bbe7-00505680ab76</st3:OriginalMessageId> <st3:StatusCategory>messageIsDelivered</st3:StatusCategory> <st3:StatusDetails>Сообщение доставлено</st3:StatusDetails> </st3:AsyncProcessingStatus> |
Статусное сообщение об архивации говорит о том, что получатель не вычитал адресованное ему сообщение в течение положенных 15 дней, поэтому оно было переведено в архив. В таком случае потребуется повторно отправить сообщение.
Пример статусного сообщения:
<ns2:AsyncProcessingStatus> <ns2:OriginalMessageId>8dc1654e-a096-11ed-bbd8-09b18de6a3ed</ns2:OriginalMessageId> <ns2:StatusCategory>messageIsArchived</ns2:StatusCategory> <ns2:StatusDetails>Сообщение архивировано</ns2:StatusDetails> </ns2:AsyncProcessingStatus> |
При этом получатель также может принимать сведения о том, что сообщения, адресованные ему, пролежали в очереди слишком долго и были заархивированы.
Пример статусного об истечении срока хранения сообщения, отправленного в адрес ИС:
<ns2:AsyncProcessingStatus> <ns2:OriginalMessageId>0b3da56c-a09a-11ed-abea-795a78884942</ns2:OriginalMessageId> <ns2:StatusCategory>cancelled</ns2:StatusCategory> <ns2:StatusDetails>Сообщение архивировано</ns2:StatusDetails> </ns2:AsyncProcessingStatus> |
Статусные сообщения СМЭВ настраиваются в ЛК УВ. Причем для каждой информационной системы индивидуально. Можно их отключить совсем или выбрать, о каких статусах хочется получать информацию.
Для этого необходимо авторизоваться в ЛК УВ и перейти в карточку информационной системы во вкладку Настройки статусных сообщений (Рисунок 1).
Рисунок 1 – Настройка статусных сообщений для ИС в ЛК УВ.
Здесь можно галочками выбрать, о каких статусах СМЭВ получать сведения. А также отключить получение всех статусных сообщений, в том числе сообщений об ошибках в ходе проверки в СМЭВ, переключением ползунка Статусные сообщения.
Но важно помнить, сведения о типовых ошибках – важная информация, которая помогает участникам проконтролировать себя на наличие возможных несоответствий требованиям МР СМЭВ. Знание о возникших ошибках поможет вовремя их исправить, тем самым поддерживая качественные взаимодействия между участниками. Поэтому будьте внимательны в выборе вариантов.
Все статусные сообщения размещаются в очереди ответов ИС. Основным механизмом доставки статусных сообщений об ошибках обработки становятся системные ответы СМЭВ, получаемые методом GetResponse.
Помимо статусных сообщений от СМЭВ также бывают сообщения от поставщика о статусе обработки им запроса. Данный статус содержится в ответе. Подобных статусов-ответов может быть неограниченное количество, и все они расписываются в руководстве пользователя вида сведений, по которому осуществляется обмен. Но применимы они не для всех ВС.
Статус обработки на стороне ответчика содержится в элементе //GetResponseResponse/ResponseMessage/Response/SenderProvidedResponseData/RequestStatus.
Статус может также содержать отказ. В таком случае он будет размещаться в элементе //GetResponseResponse/ResponseMessage/Response/SenderProvidedResponseData/RequestRejected и содержать причину отклонения запроса.
Примеры со статусными сообщениями содержатся в эталонных сообщениях ВС (в карточке версии ВС в ЛК УВ).