Руководство по взаимодействию с сервисом на основе HTTPS протокола, методом GET

Запросы необходимо отправлять в UTF-8 кодировке. Не стоит использовать URL длиной более 2,000 символов. Но этот параметр зависит от многих факторов и может различаться в большую или меньшую сторону. Одинаковые запросы можно отправлять не чаще 1 раза в 1 минуту. В случае ошибки вернется:

error: Попытка отправки более одного одинакового запроса в течение минуты

Запрос на отправку сообщения

Отправляется GET-запрос по адресу:

https://clk.prontosms.ru/sendmessage.php

Пример:

https://clk.prontosms.ru/sendmessage.php?login=ЛОГИН&password=ПАРОЛЬ&phone=ТЕЛЕФОН&send_viber=1&sender_viber=ИМЯ_ОТПРАВИТЕЛЯ_ВАЙБЕР&text_viber=ТЕКСТ_ВАЙБЕР&button_text=ТЕКСТ_КНОПКИ&button_url=ССЫЛКА_КНОПКИ&image_url=ИЗОБРАЖЕНИЕ&send_sms=3&sender_sms=ИМЯ_ОТПРАВИТЕЛЯ_СМС&text_sms=ТЕКСТ_СМС&validity_period_viber=60&finale_viber_read=0&send_vk=2&templateId=100&templateData={"Name":"Имя","Where":"Москва"}

Где:

В данном примере, первым будет попытка отправки VIBER сообщения, и в случае недоставки, будет попытка инициализация отправки VK сообщения, далее SMS;

В случае успешной отправки сообщения

Возвращается ID сообщения в plainText. Пример:

1179038981

В случае отправки на несколько номеров возращается ID сообщения через запятую в plaintText. Пример:

1178440060,1178440061

В случае ошибки

В случае возникновения ошибки возращается текст ошибки в plainText.

Проверка статуса сообщения

Отправляетя GET-запрос по адресу:

https://clk.prontosms.ru/sendmessage.php

Пример:

https://clk.prontosms.ru/sendmessage.php?login=ЛОГИН&password=ПАРОЛЬ&id_message=ID_СООБЩЕНИЯ

Где: login – Логин пользователя; password – Пароль; * id_message – ID сообщения.

В случае успешного запроса

В случае успешного запроса возращается статус сообщения в plainText:

Пример:

deliver

В случае ошибки

В случае возникновения ошибки возвращается текст ошибки в plainText.

Руководство по взаимодействию с сервисом на основе JSON документов, методом POST

Общие принципы отправки

На определенный адрес сервера отправляются JSON документы (описание JSON документов, их назначение и адреса сервера приведены ниже). При этом используется POST метод.

Заголовки отправляемых данных должны содержать:

Content-Type: application/json; charset=utf-8

Кодировка JSON документов UTF-8.

Пример передачи JSON документа на php

$param = array(
    'login' => 'ЛОГИН',
    'password' => 'ПАРОЛЬ'
);
$param_json = json_encode($param);
// JSON-документ
$href = 'https://имя_хоста/sendmessagejson.php'; // адрес сервера
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json','charset=utf-8','Expect:'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $param_json);
curl_setopt($ch, CURLOPT_TIMEOUT, 600);
curl_setopt($ch, CURLOPT_URL, $href);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0);
$res = curl_exec($ch);
$result = json_decode($res, true);
curl_close($ch);
print_r($result);

Отправка сообщения

Адрес сервера:

https://clk.prontosms.ru/sendmessagejson.php

JSON-документ:

{
    "login":"login",
    "password":"password",
    "message":[
        {
            "send_viber":"1",
            "send_vk" => "2",
            "send_sms":"3",
            "name_delivery":"НАЗВАНИЕ_РАССЫЛКИ",
            "time_send":"ВРЕМЯ_ОТПРАВКИ",
            "sender_viber":"ИМЯ_ОТПРАВИТЕЛЯ_ВАЙБЕР",
            "text_viber":"ТЕКСТ_ВАЙБЕР",
            "button_text":"ТЕКСТ_КНОПКИ",
            "button_url":"ССЫЛКА_КНОПКИ",
            "image_url":"ИЗОБРАЖЕНИЕ",
            "validity_period_viber":"ВРЕМЯ_ЖИЗНИ_ВАЙБЕР_СООБЩЕНИЯ",
            "finale_viber_read":"ФИНАЛЬНЫЙ_СТАТУС_ДОСТАВКИ_КАК_ПРОЧИТАНО",
            "sender_sms":"ИМЯ_ОТПРАВИТЕЛЯ_СМС",
            "text_sms":"ТЕКСТ_СМС",
            "templateId" => "100",
            "templateData" => {
                "Name":"Имя",
                "Where":"Москва"
            },
            "phones":[
                {"phone":"79801234567","client_id_message":"111"},
                {"phone":"79800000001","client_id_message":"112"}
            ]
        },
        {
            "send_viber":"1",
            "name_delivery":"НАЗВАНИЕ_РАССЫЛКИ_2",
            "sender_viber":"ИМЯ_ОТПРАВИТЕЛЯ_ВАЙБЕР_2",
            "text_viber":"ТЕКСТ_ВАЙБЕР_2",
            "phones":[
                {"phone":"79800000002","client_id_message":"113"}
            ]
        },
        {
            "name_delivery":"НАЗВАНИЕ_РАССЫЛКИ_3",
            "sender_viber":"ИМЯ_ОТПРАВИТЕЛЯ_ВАЙБЕР_3",
            "text_viber":"ТЕКСТ_ВАЙБЕР_3",
            "phones":[
                {"phone":"79800000003"}
            ]
        }
    ]
}

PHP-данные:

$param = array(
    'login' => 'login',
    'password' => 'password',
    'message' => array(
        array(
            'send_viber' => '1',
            'send_vk' => '2',
            'send_sms' => '3',
            'name_delivery' => 'НАЗВАНИЕ_РАССЫЛКИ',
            'time_send' => 'ВРЕМЯ_ОТПРАВКИ',
            'sender_viber' => 'ИМЯ_ОТПРАВИТЕЛЯ_ВАЙБЕР',
            'text_viber' => 'ТЕКСТ_ВАЙБЕР',
            'button_text' => 'ТЕКСТ_КНОПКИ',
            'button_url' => 'ССЫЛКА_КНОПКИ',
            'image_url' => 'ИЗОБРАЖЕНИЕ',
            'validity_period_viber' => 'ВРЕМЯ_ЖИЗНИ_ВАЙБЕР_СООБЩЕНИЯ',
            'finale_viber_read' => '1',
            'sender_sms' => 'ИМЯ_ОТПРАВИТЕЛЯ_СМС',
            'text_sms' => 'ТЕКСТ_СМС',
            'templateId' => '100',
            'templateData' => array(
                'Name' => 'Имя',
                'Where' => 'Москва'
            ),
            'phones' => array(
                array('phone' => '79801234567', 'client_id_message' => '111'),
                array('phone' => '79800000001', 'client_id_message' => '112')
            )           
        ),
        array(
            'send_viber' => '1',
            'name_delivery' => 'НАЗВАНИЕ_РАССЫЛКИ_2',
            'sender_viber' => 'ИМЯ_ОТПРАВИТЕЛЯ_ВАЙБЕР_2',
            'text_viber' => 'ТЕКСТ_ВАЙБЕР_2',
            'phones' => array(
                array('phone' => '79800000002', 'client_id_message' => '113')
            )
        ),
        array(
            'name_delivery' => 'НАЗВАНИЕ_РАССЫЛКИ_3',
            'sender_viber' => 'ИМЯ_ОТПРАВИТЕЛЯ_ВАЙБЕР_3',
            'text_viber' => 'ТЕКСТ_ВАЙБЕР_3',
            'phones' => array(
                array('phone' => '79800000003')
            )
        )
    )
);

Где:

В ответ может быть выдан один из следующих JSON-документов:

В случае возникновения ошибки в отправляемом JSON-документе

JSON:

{
    "error":"текст ошибки"
}

PHP (массив, полученный через php функцию json_decode):

array ('error' => 'текст ошибки')

В случае получения правильного JSON-документа:

JSON:

{
    "message":[
        [
            {"id_message":"ID сообщения в системе для проверки статуса","client_id_message":"ID сообщения на стороне клиента","phone":"Номер телефона получателя сообщения","count_message":"Количество частей в сообщении","id_viber":"ID VIBER сообщения","id_sms":"ID SMS","id_vk":"ID VK сообщения"},
            {"client_id_message":"ID сообщения на стороне клиента","phone":"Номер телефона получателя сообщения","error":"Ошибка в отправке сообщения на указанный номер"}
        ],
        [
            {"id_message":"ID сообщения в системе для проверки статуса","client_id_message":"ID сообщения на стороне клиента","phone":"Номер телефона получателя сообщения","count_message":"Количество частей в сообщении","id_viber":"ID VIBER сообщения","id_sms":"ID SMS","id_vk":"ID VK сообщения"}
        ],
        {"error":"Текст ошибки"}
    ]
}

PHP (массив, полученный через php функцию json_decode):

Array(
    [message] => Array(
        [0] => Array ( 
             [0] => Array ( [id_message] => ID сообщения в системе для проверки статуса [client_id_message] => ID сообщения на стороне клиента [phone] => Номер телефона получателя сообщения [count_message] => Количество сообщений [id_viber] => ID VIBER сообщения [id_sms] => ID SMS [id_vk] => ID VK сообщения ),
             [1] => Array ( [client_id_message] => ID сообщения на стороне клиента [phone] => Номер телефона получателя сообщения [error] => Ошибка в отправке сообщения на указанный номер )
        ),
        [1] => Array ( 
            [0] => Array ( [id_message] => ID сообщения в системе для проверки статуса [client_id_message] => ID сообщения на стороне клиента [phone] => Номер телефона получателя сообщения [count_message] => Количество сообщений [id_viber] => ID VIBER сообщения [id_sms] => ID SMS [id_vk] => ID VK сообщения )
        )
        [2] => Array ( 
            [error] => Текст ошибки
        )
    )
)

Где:

Получение статуса сообщения

Адрес сервера:

https://clk.prontosms.ru/sendmessagejson.php

JSON-документ:

{
    "login":"login",
    "password":"password",
    "state":[
        {"id_message":"111"},
        {"id_message":"112"}
    ]
}

PHP-данные:

$param = array(
    'login' => 'login',
    'password' => 'password',
    'state' => array(
        array('id_message' => '111'),
        array('id_message' => '112')
    )
);

Где:

В ответ может быть выдан один из следующих JSON-документов:

В случае возникновения ошибки в отправляемом JSON-документе

JSON:

{
    "error":"текст ошибки"
}

PHP (массив, полученный через php функцию json_decode):

array ('error' => 'текст ошибки')

В случае получения правильного JSON-документа:

JSON:

{
    "state":[
        {"id_message":"ID сообщения в системе","time_change_state":"Время последней смены состояния","state":"Общий статус сообщения","state_sms":"Статус SMS","state_viber":"Статус VIBER сообщения","state_vk":"Статус VK сообщения","num_parts_sms":"Количество часте SMS сообщения","price_sms":"Цена SMS сообщение","price_viber":"Цена VIBER сообщение","price_vk":"Цена VK сообщение"},
        {"id_message":"ID сообщения в системе","time_change_state":"Время последней смены состояния","state":"Общий статус сообщения","state_sms":"Статус SMS","state_viber":"Статус VIBER сообщения","state_vk":"Статус VK сообщения","num_parts_sms":"Количество часте SMS сообщения","price_sms":"Цена SMS сообщение","price_viber":"Цена VIBER сообщение","price_vk":"Цена VK сообщение"}
    ]
}

PHP (массив, полученный через php функцию json_decode):

Array(
    [state] => Array(
        [0] => Array ( [id_message] => ID сообщения в системе [time_change_state] => Время последней смены состояния [state] => Общий статус сообщения [state_sms] => Статус SMS [state_viber] => Статус VIBER сообщения [state_vk] => Статус VK сообщения [num_parts_sms] => Количество часте SMS сообщения [price_sms] => Цена SMS сообщение сообщения [price_viber] => Цена VIBER сообщение [price_vk] => Цена VK сообщение ),
        [1] => Array ( [id_message] => ID сообщения в системе [time_change_state] => Время последней смены состояния [state] => Общий статус сообщения [state_sms] => Статус SMS [state_viber] => Статус VIBER сообщения [state_vk] => Статус VK сообщения [num_parts_sms] => Количество часте SMS сообщения [price_sms] => Цена SMS сообщение сообщения [price_viber] => Цена VIBER сообщение [price_vk] => Цена VK сообщение )
    )
)

Где:

Руководство по взаимодействию с сервисом на основе XML документа, методом POST

Общие принципы отправки

На определенный адрес сервера отправляются XML документы (описание XML документов, их назначение и адреса сервера приведены ниже). При этом используется POST метод.

Заголовки отправляемых данных должны содержать:

Content-type: text/xml; charset=utf-8

Кодировка XML документов UTF-8. Передаваемый XML документ не должен содержать переводов строки. Переводы строк в самих данных должны быть заменены на "\n".

Пример передачи XML документа на php

$src = '<?xml version="1.0" encoding="utf-8"?>
<request>
<security>
<login value="логин" />
<password value="пароль" />
</security>
</request>';
// XML-документ
$href = 'https://clk.prontosms.ru/script.php'; // адрес сервера
$ch = curl_init();
curl_setopt ($ch, CURLOPT_HTTPHEADER, array ('Content-type: text/xml','charset=utf-8','Expect:'));
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt ($ch, CURLOPT_CRLF, true);
curl_setopt ($ch, CURLOPT_POST, true);
curl_setopt ($ch, CURLOPT_POSTFIELDS, $src);
curl_setopt ($ch, CURLOPT_URL, $href);
$result = curl_exec($ch);
curl_close($ch);
echo $result;

Отправка сообщения

Адрес сервера:

https://clk.prontosms.ru/xml/message.php

XML-документ:

<?xml version="1.0" encoding="utf-8" ?>
<request>
<security>
    <login value="логин" />
    <password value="пароль" />
</security>
<message>
    <send_viber>1</send_viber>
    <send_vk>2</send_vk>
    <send_sms>3</send_sms>
    <name_delivery>НАЗВАНИЕ_РАССЫЛКИ</name_delivery>
    <time_send>ВРЕМЯ_ОТПРАВКИ</time_send>
    <sender_viber>ИМЯ_ОТПРАВИТЕЛЯ_ВАЙБЕР</sender_viber>
    <text_viber>ТЕКСТ_ВАЙБЕР</text_viber>
    <button_text>ТЕКСТ_КНОПКИ</button_text>
    <button_url>ССЫЛКА_КНОПКИ</button_url>
    <image_url>ИЗОБРАЖЕНИЕ</image_url>
    <validity_period_viber>ВРЕМЯ_ЖИЗНИ_ВАЙБЕР_СООБЩЕНИЯ</validity_period_viber>
    <finale_viber_read>1</finale_viber_read>
    <sender_sms>ИМЯ_ОТПРАВИТЕЛЯ_СМС</sender_sms>
    <text_sms>ТЕКСТ_СМС</text_sms>
    <templateId>100</templateId>
    <templateData>
        <Name>Имя</Name>
        <Where>Москва</Where>
    </templateData>
    <abonent phone="79801234567" client_id_message="111" />
    <abonent phone="79800000001" client_id_message="112" />
</message>
<message>
    <send_viber>1</send_viber>
    <name_delivery>НАЗВАНИЕ_РАССЫЛКИ_2</name_delivery>
    <sender_viber>ИМЯ_ОТПРАВИТЕЛЯ_ВАЙБЕР_2</sender_viber>
    <text_viber>ТЕКСТ_ВАЙБЕР_2</text_viber>
    <abonent phone="79800000002" client_id_message="113" />
</message>
<message>
    <name_delivery>НАЗВАНИЕ_РАССЫЛКИ_3</name_delivery>
    <sender_viber>ИМЯ_ОТПРАВИТЕЛЯ_ВАЙБЕР_3</sender_viber>
    <text_viber>ТЕКСТ_ВАЙБЕР_3</text_viber>
    <abonent phone="79800000003" />
</message>
</request>

Где:

В ответ может быть выдан один из следующих XML-документов:

В случае возникновения ошибки в отправляемом XML-документе

<?xml version="1.0" encoding="utf-8"?>
<response>
    <error>текст ошибки</error>
</response>

error

В случае получения правильного XML-документа

<?xml version="1.0" encoding="utf-8" ?>
<response>
<message>
    <information id_message="ID сообщения в системе для проверки статуса" client_id_message="ID сообщения на стороне клиента" id_sms="ID SMS" id_viber="ID VIBER сообщения" id_vk="ID VK сообщения" phone="Номер телефона получателя сообщения">Статус/сообщение об ошибке</information>
    <information client_id_message="ID сообщения на стороне клиента" phone="Номер телефона получателя сообщения">Статус/сообщение об ошибке</information>
</message>
<message>
    <information id_message="ID сообщения в системе для проверки статуса" client_id_message="ID сообщения на стороне клиента" id_sms="ID SMS" id_viber="ID VIBER сообщения" id_vk="ID VK сообщения" phone="Номер телефона получателя сообщения">Статус/сообщение об ошибке</information>
</message>
<message>
    <error>Текст ошибки</error>
</message>
</response>

Где:

Получение статуса сообщения

Адрес сервера:

https://clk.prontosms.ru/xml/state_message.php

XML-документ:

<?xml version="1.0" encoding="utf-8" ?>
<request>
<security>
    <login value="логин" />
    <password value="пароль" />
</security>
<state>
    <id_message>111</id_message>
    <id_message>112</id_message>
    <id_message>113</id_message>
</state>
</request>

Где

В ответ может быть выдан один из следующих XML-документов:

В случае возникновения ошибки в отправляемом XML-документе:

<?xml version="1.0" encoding="utf-8"?>
<response>
    <error>текст ошибки</error>
</response>

error

В случае получения правильного XML-документа:

<?xml version="1.0" encoding="utf-8" ?>
<response>
    <state id_message="ID сообщения в системе" time_change_state="Время последней смены состояния" state_sms="Статус SMS" state_viber="Статус VIBER сообщения" state_vk="Статус VK сообщения" num_parts_sms="Количество часте SMS сообщения" price_sms="Цена SMS сообщение" price_viber="Цена VIBER сообщение" price_vk="Цена VK сообщение">Статус</state>
    <state id_message="ID сообщения в системе" time_change_state="Время последней смены состояния" state_sms="Статус SMS" state_viber="Статус VIBER сообщения" state_vk="Статус VK сообщения" num_parts_sms="Количество часте SMS сообщения" price_sms="Цена SMS сообщение" price_viber="Цена VIBER сообщение" price_vk="Цена VK сообщение">Статус</state>
    <state id_message="ID сообщения в системе" time_change_state="Время последней смены состояния" state_sms="Статус SMS" state_viber="Статус VIBER сообщения" state_vk="Статус VK сообщения" num_parts_sms="Количество часте SMS сообщения" price_sms="Цена SMS сообщение" price_viber="Цена VIBER сообщение" price_vk="Цена VK сообщение">Статус</state>
</response>

Где: