Интегрированные решения 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);

Вы можете скачать этот пример.