Интегрированные решения XML: отправка сообщений
Для того, чтобы отправить SMS, необходимо сделать запрос на адрес http://kazinfoteh.org:809/api. Мы принимаем запросы, отправленные методом POST, в формате XML.
Например:
<?xml version="1.0" encoding="utf-8" ?>
<package login="demo" password="demo">
<message>
<default sender="INFO_KAZ"/>
<msg id="1" recipient="77771234567" sender="TEXT_MSG">Test</msg>
</message>
</package>
Параметры запроса:
Кодировка XML обязательно должна быть UTF-8.
Параметр package |
Назначение |
|---|---|
| login | логин |
| password | пароль |
Параметр msg |
Назначение |
|---|---|
| default | тег, определяющий общие атрибуты для msg по умолчанию |
| msg | тег, определяющий отправляемое сообщение; содержит текст отправляемого сообщения |
Обязательные атрибуты default и msg:
| Атрибут | Назначение |
|---|---|
| recipient | номер телефона получателя сообщения |
Дополнительные атрибуты default и msg:
| Атрибут | Назначение |
|---|---|
| id | пользовательский числовой идентификатор сообщения |
| sender | отправитель сообщения |
| date_beg | дата отправки сообщения |
| datetime | date_end дата, после которой сообщение теряет актуальность |
| type | тип SMS |
При использовании пользовательского идентификатора сообщения, вы должны гарантировать уникальность данного идентификатора в пределах своей учетной записи (логина).
Формат даты и времени:
YYYY-MM-DD HH:mm:ss
GMT+0600 (Asia/Almaty)
Допустимые типы SMS:
| Тип | Назначение |
|---|---|
| 0 | обычное сообщение |
| 1 | флеш сообщение |
Параметры в ответе:
| Тег | Назначение |
|---|---|
| msg | тег, определяющий отправляемое сообщение; содержит код статуса SMS |
| Атрибут | Назначение |
|---|---|
| id | пользовательский числовой идентификатор сообщения, необязательный атрибут, возвращается при указании данного атрибута в запросе |
| sms_id | числовой идентификатор сообщения, присвоенный шлюзом |
| sms_count | реальное количество SMS к отправке |
Пример ответа:
<?xml version="1.0" encoding="utf-8" ?>
<package>
<message>
<msg id="1" sms_id="1" sms_count="1">201</msg>
</message>
</package>
Коды статусов SMS:
Статусы сообщений:
| Код | Значение |
|---|---|
| 100 | SCHEDULED |
| 101 | ENROUTE |
| 102 | DELIVERED |
| 103 | EXPIRED |
| 104 | DELETED |
| 105 | UNDELIVERABLE |
| 106 | ACCEPTED |
| 107 | UNKNOWN |
| 108 | REJECTED |
| 109 | DISCARDED |
Вы можете самостоятельно проверять обновления в статусах сообщений, используя дополнительный запрос.
Статусы 100 SCHEDULED и 106 ACCEPTED являются промежуточными и могут быть изменены в ходе обработки. Остальные статусы являются конечными и дополнительного запроса по изменению статуса не требуют.
Cтатусы ошибок:
| Код | Значение |
|---|---|
| 200 | UNKNOWN |
| 201 | ID |
| 202 | SENDER |
| 203 | RECIPIENT |
| 204 | LENGTH |
| 205 | USER_DISABLE |
| 206 | BILLING |
| 207 | OVERLIMIT |
Пример реализации на PHP:
// Логин и пароль, полученные при регистрации:
define('LOGIN', 'demo');
define('PASSWORD', 'demo');
// Адрес сервера:
define('URL', 'http://kazinfoteh.org:809/api');
// XML для отправки:
$XML = '<?xml version="1.0" encoding="utf-8" ?>
<package login="demo" password="demo">
<message>
<default sender="INFO_KAZ"/>
<msg id="1" recipient="77771234567" sender="TEXT_MSG">Test</msg>
</message>
</package>';
// Инициализация cURL:
$REQUEST = curl_init();
curl_setopt_array($REQUEST, array(
CURLOPT_URL => URL,
CURLOPT_POST => TRUE,
CURLOPT_RETURNTRANSFER => FALSE,
CURLOPT_POSTFIELDS => $XML,
CURLOPT_HEADER => array(
'POST /api HTTP/1.1',
'Host: http://kazinfoteh.org:809',
'Content-Type: text/xml; charset=utf-8',
'Content-Length: '.strlen($XML),
),
));
echo curl_exec($REQUEST);
curl_close($REQUEST);
Вы можете скачать этот пример.