Пакетные 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 - должен быть массивом, в котором лежат объекты с параметрами:
Параметр | Описание | Обязательный | Формат | Пример |
---|---|---|---|---|
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);