Пакетная отправка SMS через NotiSend.ru

Пакетные SMS - это отправка одним запросом множество текстов и получателей SMS. В отличие от рассылок, этот метод позволяет отправить разные тексты получателям.

Функция: batch/send

Адрес: https://sms.notisend.ru/api/batch/send

Параметры запроса:

Параметр Описание Обязательный Формат Пример
project Имя API проекта Да Строка web
sender Имя отправителя Да Строка sendertest
messages Телефон и Текст сообщения Да Массив объектов [{id:"1",phone:"+79539214424",text:"текст смс"}, {...}, ...]
sign или apikey Сигнатура или ключ API проекта Да Строка 77b567c71e1fc
test Тестовый запрос? Нет Число 0 или 1

Параметр messages:

Параметр messages - должен быть массивом, в котором лежат объекты с параметрами:

Параметр Описание Обязательный Формат Пример
id Идентификатор Нет Строка "1"
phone Телефон получателя Да Строка "+79539214424"
text Тест сообщения Да Текст "Текст SMS-сообщения"

Пример запроса:


    Допустим, параметр messages содержит:
    Array(
      [0] => Array ( [phone] => 89530000001, [id] => 1, [text] => test, message 1 )
      [1] => Array ( [phone] => 89530000002, [id] => 2, [text] => test, message 2 )
      [2] => Array ( [phone] => 89530000003, [id] => 3, [text] => test, message 3 )
      [3] => Array ( [phone] => 89530000004, [id] => 4, [text] => test, message 4 )
      [4] => Array ( [phone] => 89530000005, [id] => 5, [text] => test, message 5 )
    )
    Тогда, запрос будет таким:
    https://sms.notisend.ru/api/batch/send?project=web
    &messages[0][phone]=89530000001&messages[0][id]=1&messages[0][text]=test,+message+1
    &messages[1][phone]=89530000002&messages[1][id]=2&messages[1][text]=test,+message+2
    &messages[2][phone]=89530000003&messages[2][id]=3&messages[2][text]=test,+message+3
    &messages[3][phone]=89530000004&messages[3][id]=4&messages[3][text]=test,+message+4
    &messages[4][phone]=89530000005&messages[4][id]=5&messages[4][text]=test,+message+5
    &sender=sendertest&test=1&sign=87ad8f7b6e7d645cb6355442cc14c8cf
    

Формирование сигнатуры

В отличие от остальных функций API, данный метод содержит в себе массив объектов в параметре messages. Чтобы сформировать сигнатуру, прежде необходимо склеить через знак запятой значения параметров объекта отсортировав параметры его (id, phone, text) в алфавитном порядке. Затем, склеить полученные тексты объектов в один сплошной текст также через запятую, уже без сортировки, в том порядке, как подаёте параметры в запрос.

Пример: Из предложенного примера запроса выше, должен быть сформирован следующее содержание параметра messages:



    89530000001,1,test, message 1,89530000002,2,test, message 2,89530000003,3,test, message 3,89530000004,4,test, message 4,89530000005,5,test, message 5
    

Далее, сигнатура формируется привычным основным способом, описанным в ведении.

Результат запроса

Параметр Описание Формат Пример/Варианты
id Идентификатор запроса Число 1
status Статус ответа Строка success, error
phones Количество Получателей Число 5
parts Общее количество частей SMS Число 5
cost Общая стоимость Число с точкой 0.75
errors Ошибки Объект {}

Получить Стоимость

Получить стоимость, без отправки сообщений укажите параметр test=1, в этом случае сообщения не будут разосланы.

Готовое решение

Сейчас доступно для данной функции, реализация для PHP Скачать notisend.class.php



    <?php
    // Пример использования Пакетных СМС
    require_once 'notisend.class.php';
    $api = new NotiSend ( 'YOUR_API_PROJECT' , 'YOUR_API_KEY', false, false );
    
    $api->sendBatch( 'sendertest', [
      ["id"=>"1", "phone"=>"+79530000000", "text"=>"Текст сообщения 1" ],
      ["id"=>"2", "phone"=>"+79530000001", "text"=>"Текст сообщения 2" ],
      ["id"=>"3", "phone"=>"+79530000002", "text"=>"Текст сообщения 3" ],
      ["id"=>"4", "phone"=>"+79530000003", "text"=>"Текст сообщения 4" ],
    ]);
    
    $response = $api->getResponse ();
    print_r($response);
    
Поддержка