Пакет provideOutMessageDlvStatusResponse
является ответом на запрос provideOutMessageDlvStatusRequest
‑ запрос статусов доставки исходящих сообщений.
Раздел payload
пакета содержит code
– код ответа платформы и outMessageList
– список исходящих сообщений:
- Если код ответа содержит ошибку, то запрос статуса доставки ни по одному из сообщений не обработан.
- Если код ответа не содержит ошибку, то
outMessageList
содержит список значенийoutMessage
, соответствующихoutMessage
из пакетаprovideOutMessageDlvStatusRequest
.
В каждом элементе outMessage
указан код ответа провайдера на запрос по каждому исходящему сообщению:
- Если код содержит ошибку, то запрос статуса доставки обработан с ошибкой.
- Если код не содержит ошибку, то в
outMessageDlvStatus
передан статус доставки сообщенияdlvStatus
. Если сообщение состояло из нескольких сегментов, то дополнительно внутриoutMessageDlvStatus
передается значениеoutMessageSegment
, где указано общее количество сегментов и разбивка сегментов по статусу доставки. Подробнее см. описание параметровprovideOutMessageDlvStatusResponse
ниже.
Структура пакета
<provideOutMessageDlvStatusResponse> <header/> <payload> <code>ok</code> <outMessageList> <outMessage providerId="44702283"> <code>ok</code> <outMessageDlvStatus> <dlvStatus>delivered</dlvStatus> <dlvStatusAt>2019-07-15 01:02:45</dlvStatusAt> <outMessageSegment> <total>7</total> <sent>7</sent> <delivered>7</delivered> <undelivered>0</undelivered> <unknown>0</unknown> </outMessageSegment> </outMessageDlvStatus> </outMessage> <outMessage providerId="44702285"> <code>ok</code> <outMessageDlvStatus> <dlvStatus>undelivered</dlvStatus> <dlvStatusAt>2019-07-15 01:02:45</dlvStatusAt> <outMessageSegment> <total>6</total> <sent>6</sent> <delivered>5</delivered> <undelivered>1</undelivered> <unknown>0</unknown> </outMessageSegment> </outMessageDlvStatus> </outMessage> </outMessageList> </payload> </provideOutMessageDlvStatusResponse>
Описание параметров пакета
Ниже представлены таблицы с описанием общего параметра code
, а также параметров, вложенных в outMessage
, outMessageDlvStatus
и outMessageSegment
.
Общие параметры
Параметр | Тип | Описание |
code | string (required) | Результат обработки пакета, передается в виде кода ответа платформы |
Параметры, вложенные в outMessage
Параметр | Тип | Описание |
providerId | string (required) | Уникальный идентификатор сообщения на стороне платформы. Глобально уникален на протяжении всего времени взаимодействия между клиентом и провайдером |
code | string (required) | Код обработки статуса сообщения |
outMessageDlvStatus | struct (required) | Структура, внутри которой содержатся данные о статусе доставки сообщения |
Параметры, вложенные в outMessageDlvStatus
Параметр | Тип | Описание |
dlvStatus | string (required) | Текущий статус доставки сообщения. Указывается, если запрос на статус доставки сообщения с данным идентификатором обработан успешно Если сообщение состоит из нескольких сегментов и хотя бы у одного сегмента статус undelivered (или unknown или любой другой статус, отличный от успешной доставки), то и у всего сообщения в dlvStatus будет статус undelivered . |
dlvStatusAt | string (required) | Дата и время получения статуса сообщения |
dlvError | string (optional) | Причина, по которой сообщение не было доставлено |
outMessageSegment | struct (optional) | Структура, внутри которой содержатся данные по сегментам сообщения в случае, если сообщение при доставки было разбито на сегменты. При превышении текста сообщения максимальной длины оно разбивается на сегменты, каждый из которых обрабатывается как отдельное сообщение. Если исходящее сообщение не превышало максимальный размер и было отправлено как единое SMS, то значения outMessageSegment в ответе не будет. |
Параметры, вложенные в outMessageSegment
Параметр | Тип | Описание |
total | integer (required) | Общее количество сегментов, на которое было разбито исходное сообщение |
sent | integer (required) | Количество сегментов, успешно отправленных платформой |
delivered | integer (required) | Количество сегментов, доставленных адресату |
undelivered | integer (required) | Количество сегментов, недоставленных адресату |
unknown | integer (required) | Количество сегментов, статус доставки которых неизвестен |
Пример пакета
<?xml version="1.0" encoding="utf-8"?> <provideOutMessageDlvStatusResponse> <header/> <payload> <code>ok</code> <outMessageList> <outMessage providerId="101"> <code>ok</code> <outMessageDlvStatus> <dlvStatus>undelivered</dlvStatus> <dlvStatusAt>2007-10-29 00:00:00</dlvStatusAt> <dlvError>unknown-subsciber</dlvError> </outMessageDlvStatus> </outMessage> <outMessage providerId="102"> <code>ok</code> <outMessageDlvStatus> <dlvStatus>sent</dlvStatus> <dlvStatusAt>2007-10-29 23:59:59</dlvStatusAt> </outMessageDlvStatus> </outMessage> <outMessage providerId="103"> <code>error-out-message-provider-id-unknown</code> </outMessage> </outMessageList> </payload> </provideOutMessageDlvStatusResponse>