Отправка SMS-сообщений через сервис MobilGroup с помощью PHP и cURL

Отправка SMS-сообщений через сервис MobilGroup с помощью PHP и cURL

18.02.2023
355
Данный код позволяет отправить SMS-сообщения с помощью API сервиса sms.mobilgroup.ru. Это может быть полезно для различных целей, например, для уведомлений пользователей о событиях или для рассылки информации.

Отправка SMS-сообщений с помощью API сервиса sms.mobilgroup.ru

Данный код позволяет отправить SMS-сообщения с помощью API сервиса sms.mobilgroup.ru. Это может быть полезно для различных целей, например, для уведомлений пользователей о событиях или для рассылки информации.

Для того чтобы отправить SMS-сообщение, необходимо выполнить следующие шаги:

  1. Создать массив $params с данными для отправки сообщения. В этом массиве вы должны указать следующие параметры:
    • 'user_id' – ваш ID-номер в сервисе;
    • 'user' – номер телефона, который вы используете в сервисе;
    • 'pwd' – ваш пароль в сервисе;
    • 'command' – тип события (в данном случае – отправка SMS);
    • 'phone' – номер телефона получателя;
    • 'message' – текст сообщения;
    • 'id' – уникальный идентификатор сообщения (может быть сгенерирован с помощью функции time());
    • 'sender' – название отправителя (не более 11 символов);
    • 'rus_sms' – флаг, указывающий на необходимость использования русского текста в сообщении (1 – на русском языке, 0 – на английском);
    • 'schedule' – дата и время отправки сообщения (если не указано, сообщение будет отправлено немедленно).
  1. Сформировать XML-запрос на основе массива $params. Для этого создайте строку $xml, которая будет содержать следующие элементы:
    • Первой строкой должен идти XML-заголовок: <?xml version="1.0" encoding="UTF-8"?>.
    • Затем следует открывающий тег <request>.
    • Далее идут элементы массива $params в виде <название_элемента>значение</название_элемента>.
    • Закрывающий тег </request>.
  1. Создать новый сеанс cURL с помощью функции curl_init() и настроить его параметры:
    • CURLOPT_URL – адрес, куда будет отправлен запрос;
    • CURLOPT_POST – указывает на то, что запрос будет отправлен методом POST;
    • CURLOPT_POSTFIELDS – содержит XML-запрос, который мы создали ранее;
    • CURLOPT_RETURNTRANSFER – указывает на то, что результат запроса будет возвращен в виде строки;
    • CURLOPT_HTTPHEADER – содержит заголовок запроса, который указывает на тип содержимого (application/xml).
  1. Выполнить запрос с помощью функции curl_exec() и сохранить результат в переменную $response.
  1. Закрыть сеанс cURL с помощью функции curl_close().

Код имеет простую структуру и может быть легко адаптирован для отправки SMS-сообщений в вашем приложении или на вашем сайте.

Подробнее о шагах

Создание массива $params

Для начала необходимо создать массив $params, который будет содержать параметры для отправки SMS-сообщения. В этом массиве вы должны указать следующие параметры:

  • 'user_id' – ваш ID-номер в сервисе;
  • 'user' – номер телефона, который вы используете в сервисе;
  • 'pwd' – ваш пароль в сервисе;
  • 'command' – тип события (в данном случае – отправка SMS);
  • 'phone' – номер телефона получателя;
  • 'message' – текст сообщения;
  • 'id' – уникальный идентификатор сообщения (может быть сгенерирован с помощью функции time());
  • 'sender' – название отправителя (не более 11 символов);
  • 'rus_sms' – флаг, указывающий на необходимость использования русского текста в сообщении (1 – на русском языке, 0 – на английском);
  • 'schedule' – дата и время отправки сообщения (если не указано, сообщение будет отправлено немедленно).

Пример создания массива $params:

$params = array(
    'first_line' => '?xml version="1.0" encoding="UTF-8"?',
    'wrapper' => 'request',
    'body' => array(
        'user_id' => 1234, // ID учетной записи в сервисе
        'user' => '71111111111', // телефон  в сервисе
        'pwd' => 'xxxxxxxxxxx', // пароль в сервисе
        'command' => 'send', // тип события Отправка СМС
        'phone' => '71111111111', // номер получателя
        'message' => 'Интернет-магазин Лаптянки, Ваш код 1234', // текст СМС
        'id' => time().rand(1111,9999), // ID для СМС, уникален для каждого сообщения
        'sender' => 'Lapty', // название отправителя в смс
        'rus_sms' => 1, // установить 1 если нужен русский текст в сообщении
        'schedule' => date("Y-m-d H:i")
    )
);

Формирование XML-запроса

После создания массива $params необходимо сформировать XML-запрос для отправки SMS-сообщения. Для этого создайте строку $xml, которая будет содержать следующие элементы:

  • Первой строкой должен идти XML-заголовок: <?xml version="1.0" encoding="UTF-8"?>.
  • Затем следует открывающий тег <request>.
  • Далее идут элементы массива $params в виде <название_элемента>значение</название_элемента>.
  • Закрывающий тег </request>.

Пример формирования XML-запроса:

$xml  = '<'.$params['first_line'].'>';
$xml .= '<'.$params['wrapper'].'>';
    foreach ($params['body'] as $name => $value) {
        $xml .= "<" . $name . ">" . $value . "</" . $name . ">";
    }
$xml .= '</'.$params['wrapper'].'>';

Отправка запроса

После создания XML-запроса необходимо отправить его на сервер через API сервиса sms.mobilgroup.ru. Для этого создайте новый сеанс cURL с помощью функции curl_init() и настройте его параметры:

  • CURLOPT_URL – адрес, куда будет отправлен запрос;
  • CURLOPT_POST – указывает на то, что запрос будет отправлен методом POST;
  • CURLOPT_POSTFIELDS – содержит XML-запрос, который мы создали ранее;
  • CURLOPT_RETURNTRANSFER – указывает на то, что результат запроса будет возвращен в виде строки;
  • CURLOPT_HTTPHEADER – содержит заголовок запроса, который указывает на тип содержимого (application/xml).

Полный пример для отправки запроса:

$params = array(
    'first_line' => '?xml version="1.0" encoding="UTF-8"?',
    'wrapper' => 'request',
    'body' => array(
        'user_id' => 1234, // ID учетной записи в сервисе
        'user' => '71111111111', // телефон  в сервисе
        'pwd' => 'xxxxxxxxxxx', // пароль в сервисе
        'command' => 'send', // тип события Отправка СМС
        'phone' => '71111111111', // номер получателя
        'message' => 'Интернет-магазин Лаптянки, Ваш код 1234', // текст СМС
        'id' => time().rand(1111,9999), // ID для СМС, уникален для каждого сообщения
        'sender' => 'Lapty', // название отправителя в смс
        'rus_sms' => 1, // установить 1 если нужен русский текст в сообщении
        'schedule' => date("Y-m-d H:i")
    )
);

$xml  = '<'.$params['first_line'].'>';
$xml .= '<'.$params['wrapper'].'>';
    foreach ($params['body'] as $name => $value) {
        $xml .= "<" . $name . ">" . $value . "</" . $name . ">";
    }
$xml .= '</'.$params['wrapper'].'>';

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, '<https://sms.mobilgroup.ru/extxml.php>');
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $xml);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
    'Content-type: application/xml'
));
$response = curl_exec($curl);
curl_close($curl);

Преимущества использования API сервиса sms.mobilgroup.ru

SMS-рассылка с помощью API сервиса sms.mobilgroup.ru имеет ряд преимуществ:

  • Большое количество возможных получателей;
  • Отправка сообщений в любую точку мира;
  • Высокая скорость отправки сообщений;
  • Надежность и безопасность передачи данных.

Заключение

Отправка SMS-сообщений с помощью API сервиса sms.mobilgroup.ru – это простой и удобный способ связи с вашими пользователями. Благодаря API сервиса, вы можете легко и быстро отправлять SMS-сообщения в любую точку мира.