Отправка пакета СМС

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

Функция: 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

Параметр messages:

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

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