Взаимодействие с СМС шлюзом по протоколу HTTP
Данный документ содержит описание механизма взаимодействия ПО клиента (в дальнейшем Клиент) и нашего СМС сервиса по протоколу HTTP.
Пример реализации протокола работы с СМС-шлюзом на PHP
Отправка SMS
Адрес запроса: http://api.infosmska.ru/interfaces/SendMessages.ashx
Параметры(передаются методом GET или POST, чувствительны к регистру):
Наименование поля
|
Описание
|
login |
Логин клиента |
pwd |
Пароль клиента или MD5-хеш пароля |
phones |
Номер или разделенный запятой список номеров сотовых телефонов в международном формате, на которые отправляется сообщение. Номера передаются без знака "+". Можно передавать до 1000 номеров.
|
message |
Текст отправляемого сообщения в кодировке utf-8. При запросе методом GET, сообщение должно быть представлено в escape последоватльности.
Например, слово "привет" будет выглядеть так: %D0%BF%D1%80%D0%B8%D0%B2%D0%B5%D1%82.
Максимальный размер 800 символов.
Сообщение при необходимости будет разбито на несколько SMS, отправленных абоненту и оплаченных по отдельности.
Подробнее о размере SMS читайте здесь.
|
sender |
Имя отправителя, отображаемое в телефоне получателя(от кого).
Имя должено быть создано в личном кабинете и проверено администратором.
Для создания имени отправителя, зайдите на страницу создания новой рассылки в личном кабинете и нажмите на ссылку "создать/удалить" в поле "адрес отправителя".
По умолчанию всем клиентам доступно имя отправителя SMS. Обратите внимание, имя чувствительно к регистру.
|
translit |
Eсли этот параметр не пустой, сервер автоматически транслитерирует(заменит русские буквы латинскими) сообщение.
|
msglife |
Время жизни сообщения на сервере в минутах.
В течении этого времени сервер будет пытаться его доставить.
Максимальное значение - 10080, оно является значением по умолчанию.
Параметр можно не указывать.
|
getcost |
Если этот параметр не пустой, сервер вернёт стоимость сообщения, при этом отправлено оно не будет.
|
tf |
Если этот параметр не пустой, при отправки сообщений будет учитываться разрешённый для отправки интервал времени.
Задаётся в настройках личного кабинета. По умолчанию интервал не учитывается.
|
Ответ: в случае успешной постановки сообщений в очередь, сервер вернёт ответ, начинающийся с Ok:. Далее следуют
цифровые идентификаторы созданных сообщений. Порядок идентификаторов совпадает с порядком телефонных номеров в запросе.
Если что-то пойдёт не так, сервер вернёт ответ, начинающийся с Error:, далее будет следовать описание ошибки.
Нехватка баланса не является препятствием для постановки сообщения в очередь,
но отправлено оно будет, когда на балансе окажется достаточное кол-во средств.
Пример запроса:
http://api.infosmska.ru/interfaces/SendMessages.ashx?login=mylogin&pwd=12345&phones=79139111111,79139111112&message=test&sender=sms
Пример ответа: Ok:12445;12446;
Запрос статуса СМС
Адрес запроса: http://api.infosmska.ru/interfaces/GetMessagesState.ashx
Параметры(передаются методом GET или POST, чувствительны к регистру):
Наименование поля
|
Описание
|
login |
Логин клиента |
pwd |
Пароль клиента или MD5-хеш пароля |
ids |
Идентификаторы сообщений разделённые запятыми |
Ответ: строка, начинающаяся с Ok:, далее будут следовать цифровые статусы сообщений.
Порядок следования статусов совпадает с порядком следования идентификаторов в запросе.
Расшифровка статусов:
0 - в очереди
-1 - удалено
-2 - неверный адресат
-3 - сообщение не доставлено
-4 - сообщение не отправлено по причине отсутствия необходимого тарифа
-10 - СМСЦ не передал информацию о статусе
1 - передано в СМС центр
2 - частично доставлено
3 - доставлено
-100 - сообщение не найдено
Пример запроса: http://api.infosmska.ru/interfaces/GetMessagesState.ashx?login=mylogin&pwd=12345&ids=12445,12446
Пример ответа: Ok:1;3;
Запрос баланса
Адрес запроса: http://api.infosmska.ru/interfaces/getbalance.ashx
Параметры(передаются методом GET или POST, чувствительны к регистру):
Наименование поля
|
Описание
|
login |
Логин клиента |
pwd |
Пароль клиента или MD5-хеш пароля |
Ответ: число, десятичная дробь с двумя знаками после запятой. Разделитель ".".
Пример запроса: http://api.infosmska.ru/interfaces/getbalance.ashx?login=mylogin&pwd=12345
Пример ответа: 205.44
Пример реализации протокола работы с СМС-шлюзом на PHP