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

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

Функция: 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 Тест сообщения Да Текст "Текст смс сообщения"

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


      Допустим, параметр 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 Общее количество частей смс Число 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);
      
Поддержка