API
Описание отсылки сообщений через протокол HTTP в системе.
Для работы с классом требуется PHP5
| Адрес обращения | https://service.qtelecom.ru/public/http/ |
| Тип авторизации | PLAIN (открытым текстом) |
| Формат входных данных | Content-Type: application/x-www-form-urlencoded; charset=UTF-8 (по умолчанию) |
| Другие кодировки | При использовании другой кодировки, отличной от UTF-8, требуется указать её в заголовке Content-Type запроса. Например: Content-Type: application/x-www-form-urlencoded; charset=windows-1251Результат : Content-Type: text/xml (UTF-8); content-encoding: gzip |
| Login/password | Совпадают с login/password на web-сайт |
| Максимальная длина сообщений | 480 символов |
Авторизация требуется при каждом подключении к серверу независимо от дальнейших действий.
| user | Логин для входа в систему на сайте go.qtelecom.ru |
| pass | Пароль для входа в систему на сайте go.qtelecom.ru |
| gzip=none | Не использовать content-encoding: gzip |
| HTTP_ACCEPT_LANGUAGE | переменная клиента, предпочтение относительно языка (необязательный параметр) |
| CLIENTADR | IP адрес клиента (необязательный параметр) |
| comment | описание подключения (необязательный параметр; до 512 символов) |
SMS сообщение
Для отправки SMS необходимо вызвать методом GET или POST адрес:
https://service.qtelecom.ru/public/http/?action=post_sms&user=<user>&pass=<password>&target=<phones>&message=<message>
Описание обязательных параметров, передаваемых Серверу:
| Параметр | Значение |
|---|---|
| action | post_sms |
| user | Логин |
| password | Пароль |
| target | Список адресатов через запятую. (Пример: «+70010001212, 80009990000»).(Разрешается использование только или «target», или «phl_codename») |
| phl_codename | Кодовое имя контакт-листа в системе https://go.qtelecom.ru. (Разрешается использование только или «target» или «phl_codename») Также можно использовать параметр gender — фильтр по полу получателя. Значение: M / F (мужской / женский) |
| message | текст сообщения |
Описание дополнительных параметров, передаваемых Серверу:
| Параметр | Значение | По умолчанию |
|---|---|---|
| sender | имя отправителя, зарегистрированного для вас, в системе (NULL — имя отправителя по умолчанию) | имя по умолчанию |
| post_id | пользовательский ID рассылки, необязательный параметр, возвращается обратно в неизменном виде. | — |
| period | Время жизни сообщения в секундах. Необязательный параметр. Максимальное время, в течение которого сообщение должно быть доставлено на телефон. Если в течение этого времени доставка не возможна (например абонент не в зоне действия сети), сообщение не будет доставлено вовсе. Внимание, данная функция может не работает для некоторых направлений, например для CDMA телефонов. | — |
| time_period | Период отправки сообщения в формате «HH:mm-HH:mm(час:мин-час:мин)», в течение которого сообщение должно быть доставлено получателям (например 10:00-21:00). Опция позволяет запретить доставку сообщений, например, в ночное время. Для указанного периода времени можно уточнить часовой пояс в time_local | 00:00-00:00 |
| time_local | Выбор часового пояса для опции time_period. 1 — по местному время получателя, 0 — по часовому поясу, выбранному в личном кабинете отправителя. | 0 |
| autotrimtext | on — обрезать все пробелы и переводы строк в начале и конце сообщения. | off |
| sms_type | Тип SMS. Пустое значение: Простое SMS W: Wap push сообщение F: Flash SMS сообщение | Пустое значение |
| wap_url | HTTP ссылка с текста сообщения (https://…..). Используется только для sms_type = W, то есть Wap push сообщения. | — |
| wap_expires | Дата и время, когда истекает срок доставки Wap push сообщения. (Формат: dd.mm.yyyy hh:ii:ss (дд.мм.гггг чч:ми:сс)) | — |
Данный вариант позволяет получать статусы сообщений в реальном времени. Для настройки укажите в Личном кабинете → Услуги «URL скрипта для приёма статуса отправленных SMS». Как только система получает статус сообщения, она немедленно пересылает вам его по HTTP протоколу с помощью POST запроса.
Формат данных:
| ORDID | Номер сообщения (номер соответствует значению атрибута ID тэга SMS, возвращаемого при отправке сообщения) |
| CNRID | ID контрагента |
| RESCOUNT | Количество для тарификации |
| STATUS | Код статуса (расшифровка кодов ниже) |
| FINALTIME | Время получения финального статуса в UTC |
Коды статуса:
Три варианта получения статусов для сообщений:
| sms_id | Данные по одному сообщению |
| sms_group_id | Данные по всем сообщениям за одну отсылку |
| date_from, date_to, smstype | Данные по всем сообщениям за период времени от date_from до date_to по типу сообщений smstype. (Формат date_from, date_to: dd.mm.yyyy hh:ii:ss (дд.мм.гггг чч:ми:сс)) |
Возможные варианты:
| sib_num | Номер входящего ящика (Обязательный параметр, соответствует значению «ID ящика» в закладке «Настройки») |
| new_only | Статус сообщений:
|
| date_from, date_to | Данные по всем сообщениям за период времени от date_from до date_to (Формат date_from, date_to: dd.mm.yyyy hh:ii:ss (дд.мм.гггг чч:ми:сс)) |
Запрос
POST= (
[user] => userX
[pass] => ***
[action] => post_sms
[message] => Привет
[target] => +79999999991, +79999999992, +7999999999999
[post_id] => x124127456
[period] => 600
[CLIENTADR] => 127.0.0.1
[HTTP_ACCEPT_LANGUAGE] => ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
)
Результат XML
<output>
<result>
<sms post_id="x124127456" id="99991" smstype="SENDSMS" phone="+79999999991" sms_res_count="1"><![CDATA[Привет]]></sms>
<sms post_id="x124127456" id="99992" smstype="SENDSMS" phone="+79999999992" sms_res_count="1"><![CDATA[Привет]]></sms>
</result>
<errors>
<error code="-20117" post_id="x124127456">Неправильный номер телефона: +7999999999999</error>
</errors>
</output>
Использование PHP-класса
<?php
Include('QTSMS.class.php');
// Отправка SMS сообщения по списку адресатов
$sms_text='Привет';
$target='+79990001212, 80009990000';
$sender='vasya';
$period=600;
$sms= new QTSMS('userX.Y','пароль');
$result=$sms->post_message($sms_text, $target, $sender, 'x124127456',$period);
// результат XML
echo $result;
// Отправка SMS по кодовому имени контакт листа
$sms_text='Привет';
$phl_codename='druzya';
$result=$sms->post_message_phl($sms_text, $phl_codename, $sender, 'x124127456',$period);
header("Content-Type: text/xml; charset=UTF-8");
// результат XML
echo $result;
?>
Запрос
POST= (
[action] => status
[sms_id] => 6666
[user] => userX
[pass] => ***
[CLIENTADR] => 127.0.0.1
[HTTP_ACCEPT_LANGUAGE] => ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
)
Результат XML
<output>
<MESSAGES>
<MESSAGE SMS_ID="6666" SMSTYPE="SENDSMS">
<CREATED>24.12.07 15:57:45</CREATED>
<AUL_USERNAME>userX.Y</AUL_USERNAME>
<AUL_CLIENT_ADR>127.0.0.1</AUL_CLIENT_ADR>
<SMS_SENDER>SenderName</SMS_SENDER>
<SMS_TARGET>89999991111</SMS_TARGET>
<SMS_RES_COUNT>1</SMS_RES_COUNT>
<SMS_TEXT>
<![CDATA[ Привет ]]>
</SMS_TEXT>
<SMSSTC_CODE>wait</SMSSTC_CODE>
<SMS_STATUS>Сообщение в процессе доставки</SMS_STATUS>
<SMS_CLOSED>0</SMS_CLOSED>
<SMS_SENT>0</SMS_SENT>
</MESSAGE>
</MESSAGES>
</output>
Использование PHP-класса
<?php
// Получение статуса SMS сообщений
Include('QTSMS.class.php');
$sms= new QTSMS('userX.Y','пароль');
// данные о сообщении SMS_ID=6666
$r_xml1=$sms->status_sms_id(6666);
// данные о сообщениях отправки SMS_GROUP_ID=110
$r_xml2=$sms->status_sms_group_id(110);
// Получить данные сообщений отправленных с 18.12.2007 00:00:00 по 23.12.2007 23:00:00
$r_xml3=$sms->status_sms_date('18.12.2007 00:00:00','23.12.2007 23:00:00');
header("Content-Type: text/xml; charset=UTF-8");
echo $r_xml1; // результат XML
//echo $r_xml2;
//echo $r_xml3;
?>
Запрос
POST= (
[data] => Array (
[0] => Array (
[action] => post_sms
[message] => Привет!
[sender] =>
[target] => +79999999999, +79999999992
)
[1] => Array (
[action] => post_sms
[message] => С днём рождения!
[sender] =>
[target] => +79999999991
[post_id] => x425256
)
[2] => Array (
[action] => status
[sms_id] => 6666
)
)
[user] => userX
[pass] => ***
[CLIENTADR] => 127.0.0.1
[HTTP_ACCEPT_LANGUAGE] => ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
)
Результат XML
<output>
<result sms_group_id="996">
<sms id="99991" smstype="SENDSMS" phone="+79999999991" sms_res_count="1"><![CDATA[Привет]]></sms>
<sms id="99992" smstype="SENDSMS" phone="+79999999992" sms_res_count="38"><![CDATA[С днём рождения!]]></sms>
</result>
<errors>
<error code="-20117" post_id="x425256">Неправильный номер телефона: +7999999999999</error>
</errors>
<MESSAGES>
<MESSAGE SMS_ID="6666" SMSTYPE="SENDSMS">
<CREATED>24.12.07 15:57:45</CREATED>
<AUL_USERNAME>userX.Y</AUL_USERNAME>
<AUL_CLIENT_ADR>127.0.0.1</AUL_CLIENT_ADR>
<SMS_SENDER>SenderName</SMS_SENDER>
<SMS_TARGET>89999991111</SMS_TARGET>
<SMS_RES_COUNT>1</SMS_RES_COUNT>
<SMS_TEXT>
<![CDATA[ Привет ]]>
</SMS_TEXT>
<SMSSTC_CODE>wait</SMSSTC_CODE>
<SMS_STATUS>Сообщение в процессе доставки</SMS_STATUS>
<SMS_CLOSED>0</SMS_CLOSED>
<SMS_SENT>0</SMS_SENT>
</MESSAGE>
</MESSAGES>
</output>
Данные по сообщению:
Использование PHP-класса
<?php
// Единый запрос
Include('QTSMS.class.php');
$sms= new QTSMS('userX.Y','пароль');
// !!! Команда на кеширование запросов
$sms->start_multipost();
// Отправка смс
$sms->post_message('Привет', '+79999999991,+79999999992', 'Vasya');
// Отправка смс
$sms->post_message_phl('С днём рождения!', 'druzya', 'Petya', 'x425256');
// данные о сообщении SMS_ID=6666
$sms->status_sms_id(6666);
// данные о сообщениях с SMS_GROUP_ID=110
$sms->status_sms_group_id(110) ;
// !!! отправить всё одним запросом и получить результат в XML
$r_xml=$sms->process();
header("Content-Type: text/xml; charset=UTF-8");
echo $r_xml; // результат XML
?>
Запрос
POST= (
[user] => userX
[pass] => ***
[action] => balance
[CLIENTADR] => 127.0.0.1
[HTTP_ACCEPT_LANGUAGE] => ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
)
Результат XML
<output>
<BALANCE>
<AGT_BALANCE>1000</AGT_BALANCE> [текущее состояние счёта]
<OVERDRAFT>100</OVERDRAFT> [максимальных уход в минус]
</BALANCE>
</output>
Использование PHP-класса
<?php
Include('QTSMS.class.php');
$sms= new QTSMS('XXXXX','пароль');
// получение баланса
$r_xml=$sms->get_balance();
// результат в XML
header("Content-Type: text/xml; charset=UTF-8");
echo $r_xml; // результат XML
?>
Запрос
POST= (
[user] => userX
[pass] => ***
[action] => inbox
[sib_num] => 123
[date_from] => 12.01.2010 00:00:00
[date_to] => 15.01.2010 12:00:00
)
Результат XML
<output>
<RECEIVER AGT_ID="10XXX" DATE_REPORT="08.02.2010 14:10:42"/>
<inbox>
<MESSAGE SMS_ID="10001234235782138" SMSTYPE="RECVSMS">
<CREATED>13.01.2010 18:08:29</CREATED>
<SMS_SENDER>79670413211</SMS_SENDER>
<SMS_TARGET>79037672810</SMS_TARGET>
<SMS_RES_COUNT>1</SMS_RES_COUNT>
<SMS_TEXT>test 1111</SMS_TEXT>
<SMS_STATUS>N</SMS_STATUS>
</MESSAGE>
<MESSAGE SMS_ID="1000123312382134" SMSTYPE="RECVSMS">
<CREATED>14.01.2010 18:03:03</CREATED>
<SMS_SENDER>79670413211</SMS_SENDER>
<SMS_TARGET>79037672810</SMS_TARGET>
<SMS_RES_COUNT>1</SMS_RES_COUNT>
<SMS_TEXT>qwerty 22</SMS_TEXT>
<SMS_STATUS>N</SMS_STATUS>
</MESSAGE>
</inbox>
</output>
Использование PHP-класса
<?php
Include('QTSMS.class.php');
$sms= new QTSMS('XXXXX','пароль');
// получение только новых входящих смс для ящика 134
$r_xml=$sms->inbox_sms(1, 134);
// получение только новых входящих смс
// для ящика 134 c 10.01.2010 00:00:00 до 15.01.2010 00:00:00
// $r_xml=$sms->inbox_sms(0,134,'10.01.2010 00:00:00','15.01.2010 00:00:00');
// результат в XML
header("Content-Type: text/xml; charset=UTF-8");
echo $r_xml; // результат XML
?>
Коды ошибок тэга error:
| 20117 | Неправильный номер телефона. |
| 20170 | Слишком большой текст сообщения. Максимальная длина не должна превышать 160 байт. |
| 20171 | Не пройдена проверка текста сообщения на наличие недопустимых слов и/или фраз. |
| 20158 | Отправитель или получатель в черном списке. |
| 20167 | Сработало ограничение по отправке одинакового текста на один и тот же номер в течение небольшого промежутка времени. Обратитесь в поддержку, если хотите отключить или уменьшить период. |
| 20144 | Нет доступного тарифа для запрашиваемого направления. |
| 20147 | Нет подходящего тарифа у вышестоящего контрагента. |
| 20174 | Политика маршрутизации не найдена. |
| 20154 | Ошибка транспорта. При возникновении этой ошибки обратитесь в службу поддержки. |
| 20148 | Не поддерживаемое направление. |
Для работы с классом требуется PHP5