Пакетные смс - это отправка одним запросом множество текстов и получателей смс. В отличии от рассылок, этот метод позволяет отправить разные тексты получателям.
Функция: batch/send
Адрес: https://payforsms.ru/api/mainsms/batch/send
Тип запроса: POST
Параметр | Описание | Обязательный | Формат | Пример |
---|---|---|---|---|
project | Имя API проекта | Да | Строка | web |
sender | Имя отправителя | Да | Строка | sendertest |
messages | Телефон и Текст сообщения | Да | Массив объектов | [{id:"1",phone:"+79539214424",text:"текст смс"}, {...}, ...] |
sign или apikey | Сигнатура или ключ API проекта | Да | Строка | 77b567c71e1fc |
test | Тестовый запрос? | Нет | Число | 0 или 1 |
- должен быть массивом, в котором лежат объекты с параметрами:
Параметр | Описание | Обязательный | Формат | Пример |
---|---|---|---|---|
id | Идентификатор | Нет | Строка | "1" |
phone | Телефон получателя | Да | Строка | "+79539214424" |
text | Тест сообщения | Да | Текст | "Текст смс сообщения" |
Пример запроса
curl -X POST http://payforsms.ru/api/mainsms/batch/send \
-H 'Accept: application/json' \
-F test=1 \
-F project=mainsms \
-F sender=sendertest \
-F messages[0][id]=1 \
-F messages[0][phone]="+79530000001" \
-F messages[0][text]="Текст сообщения 1" \
-F messages[1][id]=2 \
-F messages[1][phone]="+79530000002" \
-F messages[1][text]="Текст сообщения 2" \
-F messages[2][id]=3 \
-F messages[2][phone]="+79530000003" \
-F messages[2][text]="Текст сообщения 3" \
-F messages[3][id]=4 \
-F messages[3][phone]="+79530000004" \
-F messages[3][text]="Текст сообщения 4" \
-F sign=c3f57ea5755f25c07cd85741120409de
В отличии от остальных функций API, данный метод содержит в себе массив объектов в параметре messages
. Для формирования сигнатуры, прежде необходимо склеить через знак запятой значения параметров объекта отсортировав его параметры(id
, phone
, text
) в алфавитном порядке. Затем, склеить полученные тексты объектов в один сплошной текст также через запятую, уже без сортировки, в том порядке, как подаёте параметры в запрос.
Пример: Из предложенного примера запроса выше, должен быть сформирован следующее содержание параметра messages:
1,+79530000001,Текст сообщения 1,2,+79530000002,Текст сообщения 2,3,+79530000003,Текст сообщения 3,4,+79530000004,Текст сообщения 4
Далее, сигнатура формируется основным способом, описанным в ведении.
Параметр | Описание | Формат | Пример/Варианты |
---|---|---|---|
id | Идентификатор запроса | Число | 1 |
status | Статус ответа | Строка | success, error |
phones | Количество Получателей | Число | 5 |
parts | Общее количество частей смс | Число | 5 |
cost | Общая стоимость | Число с точкой | 0.75 |
errors | Ошибки | Объект | {} |
Получить стоимость, без отправки сообщений укажите параметр test=1
, в этом случае сообщения не будут разосланы.
Сейчас доступно для данной функции, реализация для PHP Скачать mainsms.class.php
<?php
// Пример использования Пакетных СМС
require_once 'mainsms.class.php';
$api = new MainSMS ( '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);