Описание отсылки сообщений через протокол HTTP в системе «Quick Telecom».
Для работы с классом требуется PHP5
Content-Type: application/x-www-form-urlencoded; charset=UTF-8 (по умолчанию)Content-Type: application/x-www-form-urlencoded; charset=windows-1251Content-Type: text/xml (UTF-8); content-encoding: gzip Авторизация требуется при каждом подключении к серверу независимо от дальнейших действий.
SMS сообщение
| Параметр | Значение | По умолчанию |
|---|---|---|
| action | post_sms | - |
| message | текст сообщения | - |
| sender | имя отправителя, зарегистрированного для вас, в системе (NULL - имя отправителя по умолчанию) | имя по умолчанию |
| post_id | пользовательский ID рассылки, необязательный параметр, возвращается обратно в неизменном виде. | - |
| period | Время жизни сообщения в секундах. Необязательный параметр. Максимальное время, в течение которого сообщение должно быть доставлено на телефон. Если в течение этого времени доставка не возможна (например абонент не в зоне действия сети), сообщение не будет доставлено вовсе. Внимание, данная функция может не работает для некоторых направлений, например для CDMA телефонов. | - |
Данный вариант позволяет получать статусы сообщений в реальном времени. Для настройки укажите в Личном кабинете → Услуги «URL скрипта для приёма статуса отправленных SMS». Как только система получает статус сообщения, она немедленно пересылает вам его по HTTP протоколу с помощью POST запроса.
Формат данных:
Коды статуса:
Три варианта получения статусов для сообщений:
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
)
<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 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
)
<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 // Получение статуса 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
)
<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 // Единый запрос 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
)
<output> <BALANCE> <AGT_BALANCE>1000</AGT_BALANCE> [текущее состояние счёта] <OVERDRAFT>100</OVERDRAFT> [максимальных уход в минус] </BALANCE> </output>
<?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
)
<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 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:
Для работы с классом требуется PHP5