provideOutMessageDlvStatus­Response

Пакет 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, а также параметров, вложенных в outMessageoutMessageDlvStatus и outMessageSegment.

Общие параметры

ПараметрТипОписание
codestring (required)Результат обработки пакета, передается в виде кода ответа платформы

Параметры, вложенные в outMessage

ПараметрТипОписание
providerIdstring (required)Уникальный идентификатор сообщения на стороне платформы. Глобально уникален на протяжении всего времени взаимодействия между клиентом и провайдером
codestring (required)Код обработки статуса сообщения
outMessageDlvStatusstruct (required)Структура, внутри которой содержатся данные о статусе доставки сообщения

Параметры, вложенные в outMessageDlvStatus

ПараметрТипОписание
dlvStatusstring (required)Текущий статус доставки сообщения. Указывается, если запрос на статус доставки сообщения с данным идентификатором обработан успешно   Если сообщение состоит из нескольких сегментов и хотя бы у одного сегмента статус undelivered (или unknown или любой другой статус, отличный от успешной доставки), то и у всего сообщения в dlvStatus будет статус undelivered.
dlvStatusAtstring (required)Дата и время получения статуса сообщения
dlvErrorstring (optional)Причина, по которой сообщение не было доставлено
outMessageSegmentstruct (optional)Структура, внутри которой содержатся данные по сегментам сообщения в случае, если сообщение при доставки было разбито на сегменты. При превышении текста сообщения максимальной длины оно разбивается на сегменты, каждый из которых обрабатывается как отдельное сообщение. Если исходящее сообщение не превышало максимальный размер и было отправлено как единое SMS, то значения outMessageSegment в ответе не будет.

Параметры, вложенные в outMessageSegment

ПараметрТипОписание
totalinteger (required)Общее количество сегментов, на которое было разбито исходное сообщение
sentinteger (required)Количество сегментов, успешно отправленных платформой
deliveredinteger (required)Количество сегментов, доставленных адресату
undeliveredinteger (required)Количество сегментов, недоставленных адресату
unknowninteger (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>

provideOutMessageDlvStatus­Request