| Передача статусов и сообщений на обработчик КлиентаВ личном кабинете Клиента в "Настройках пользователя" имеется возможность
указания http(s)-адреса (URL) скрипта для обработки статусов доставки сообщений, входящих SMS-сообщений,
а также служебных сообщений (при использовании услуги "Подтверждение номера с помощью звонка") на стороне Клиента. Указанный скрипт будет вызываться Сервером после каждого получения статуса доставки ранее отправленного Клиентом сообщения, после получения входящего SMS-сообщения от абонента или звонка от абонента (при использовании услуги "Подтверждение номера с помощью звонка").
В адресе обработчика можно указать параметр charset для выбора кодировки передаваемых параметров:
?charset=utf-8
?charset=koi8-r
?charset=windows-1251
По умолчанию используется кодировка windows-1251.
Для защиты передаваемых данных от подмены в адресе обработчика дополнительно можно указать любой из параметров md5, sha1, crc32,
определяющих алгоритм подсчета контрольного параметра с хешем строки:
"id:phone:status:<секретная строка>" − для статуса доставки
"phone:mes:to:<секретная строка>" − для входящего сообщения
"phone:ts:<секретная строка>" − для подтверждения номера с помощью звонка
в виде:
?md5=<секретная строка>
?sha1=<секретная строка>
?crc32=<секретная строка>
В качестве символов секретной строки можно использовать латинские буквы, цифры, минус и подчеркивание.
Обработчику будет передан соответствующий параметр, в котором секретная строка будет заменена на значение хеша передаваемых данных.
Все параметры передаются методом POST.
Передаваемые параметры для статуса SMS-сообщения:
Параметр | Значение
|
---|
id | Идентификатор сообщения.
|
---|
phone | Номер телефона.
|
---|
status | Статус сообщения.
|
---|
time | Время изменения статуса (или доставки SMS-сообщения абоненту).
Формат: DD.MM.YY hh:mm:ss (по часовому поясу, указанному в настройках).
|
---|
ts | Время изменения статуса в виде штампа в секундах.
|
---|
err | Код ошибки, если сообщение не может быть доставлено (список). Передается, если не равен нулю.
|
---|
syserr | Дополнительная ошибка от оператора, присутствует не всегда.
|
---|
cnt | Количество частей (при отправке SMS-сообщения) либо 5-секундных блоков (при голосовом сообщении (звонке)).
|
---|
type | Тип сообщения (0 – SMS, 1 – Flash-SMS, 2 – Бинарное SMS, 3 – Wap-push, 4 – HLR-запрос, 5 – Ping-SMS, 6 – MMS, 7 –
Звонок, 10 – Viber).
|
---|
cost | Стоимость сообщения.
|
---|
flag | Флаг, содержащий дополнительную информацию по сообщению.
|
---|
sender | Имя отправителя, отображаемое в телефоне получателя.
|
---|
dtmf | Последовательность символов, набираемая абонентом на цифровой клавиатуре во время прослушивания голосового сообщения (звонка).
|
---|
md5 | MD5-хеш строки "id:phone:status:<секретная строка>". Передается, если был указан в качестве дополнительного параметра
в http(s)-адресе обработчика.
|
---|
sha1 | sha1-хеш строки "id:phone:status:<секретная строка>". Передается, если был указан в качестве дополнительного параметра
в http(s)-адресе обработчика.
|
---|
crc32 | Контрольная сумма crc32 строки "id:phone:status:<секретная строка>". Передается, если был указан в качестве дополнительного параметра
в http(s)-адресе обработчика.
|
---|
Дополнительные параметры для HLR-запросов
|
---|
imsi | Уникальный код IMSI SIM-карты абонента.
|
---|
msc | Номер сервис-центра оператора, в сети которого находится абонент.
|
---|
mcc | Числовой код страны абонента.
|
---|
mnc | Числовой код оператора абонента.
|
---|
cn | Название страны регистрации абонента.
|
---|
net | Название оператора регистрации абонента.
|
---|
rcn | Название роуминговой страны абонента при нахождении в чужой сети.
|
---|
rnet | Название роумингового оператора абонента при нахождении в чужой сети.
|
---|
Передаваемые параметры для входящего SMS-сообщения:
Параметр | Значение
|
---|
id | Уникальный идентификатор входящего сообщения, назначаемый Сервером автоматически.
|
---|
sms_id | Идентификатор сообщения, на которое получен ответ. Данный параметр отсутствует, если сообщение от абонента пришло не в качестве ответа (такие входящие сообщения возможны при использовании Клиентом выделенного входящего номера либо при указании абонентом префикса "логин, двоеточие и пробел").
|
---|
phone | Номер телефона абонента.
|
---|
mes | Текст SMS-сообщения.
|
---|
to | Входящий номер телефона, на который было отправлено сообщение абонентом.
|
---|
smsc | SMS-центр оператора, от которого было получено входящее сообщение.
|
---|
sent | Время отправки сообщения абонентом в виде штампа в секундах.
|
---|
time | Время получения сообщения Сервером в виде штампа в секундах.
|
---|
md5 | MD5-хеш строки "phone:mes:to:<секретная строка>". Передается, если был указан в качестве дополнительного параметра
в http(s)-адресе обработчика.
|
---|
sha1 | sha1-хеш строки "phone:mes:to:<секретная строка>". Передается, если был указан в качестве дополнительного параметра
в http(s)-адресе обработчика.
|
---|
crc32 | Контрольная сумма crc32 строки "phone:mes:to:<секретная строка>". Передается, если был указан в качестве дополнительного параметра
в http(s)-адресе обработчика.
|
---|
Передаваемые параметры при использовании услуги "Подтверждение номера с помощью звонка":
Параметр | Значение
|
---|
waitcall | 1 – признак служебного сообщения для услуги "Подтверждение номера с помощью звонка".
|
---|
phone | Номер телефона абонента, с которого поступил звонок.
|
---|
ts | Время звонка.
|
---|
md5 | MD5-хеш строки "phone:ts:<секретная строка>". Передается, если был указан в качестве дополнительного параметра
в http(s)-адресе обработчика.
|
---|
sha1 | sha1-хеш строки "phone:ts:<секретная строка>". Передается, если был указан в качестве дополнительного параметра
в http(s)-адресе обработчика.
|
---|
crc32 | Контрольная сумма crc32 строки "phone:ts:<секретная строка>". Передается, если был указан в качестве дополнительного параметра
в http(s)-адресе обработчика.
|
---|
Помимо описанных выше стандартных параметров Сервер также будет передавать методом POST все параметры,
указанные в http(s)-адресе обработчика после знака "?".
Для различия статуса сообщения, входящего SMS-сообщения или служебного сообщения (при использовании услуги "Подтверждение номера с помощью звонка") в одном обработчике можно выполнить проверку на наличие параметра mes (для входящего сообщения) и waitcall (для услуги подтверждения номера):
if (isset($_POST["mes"])) { // message } elseif (isset($_POST["waitcall"])) { // confirmation } else { // status }
Пересылка статусов на обработчик Клиента осуществляется только при отправке сообщений
по протоколам HTTP/HTTPS, SMTP или SMPP. При отправке сообщений с личного кабинета передача статусов на обработчик Клиента
не происходит.
В случае если от обработчика Клиента вернется ответ с кодом ошибки, отличным от 200 или 404, то Сервер с определенной периодичностью будет повторять запрос на обработчик. |