Отправка SMS на PHP

Примеры скрипта для отправки SMS на PHP

Инструкции для API шлюза

Протестируйте API бесплатно, Вам будет начислен тестовый баланс — 50 руб., создайте аккаунт на платформе и следуйте инструкциям ниже

Как начать?

  1. Зарегистрируйте аккаунт на платформе
  2. Добавьте необходимый отправитель в личном кабинете в разделе "Отправители".
  3. Привяжите Ваш номер телефона в личном кабинете в разделе "Настройки" - "Контактная информация и общие настройки"
  4. Активируйте API шлюз. Как включить?
  5. Протестируйте отправку SMS, воспользуйтесь одним из готовых модулей или примеров, либо напишите свой обработчик, для этого используйте документацию.
Отправка SMS сводиться к обычному (GET или POST) http запросу на API сервиса, ответ в JSON или XML.

Адрес сервера: ssl.bs00.ru
Порт (протокол): 443 (HTTPS)
Метод: GET или POST
Кодировка для запроса: UTF-8

Список всех параметров можно посмотреть в таблице

Пример GET HTTP запроса, который Вы можете выполнить в браузере

https://ssl.bs00.ru/?method=push_msg&key=YOUR_API_KEY&text=SMS_TEXT&phone=SMS_PHONE_NUMBER_OF_THE_RECIPIENT&sender_name=MyBrandName

где
YOUR_API_KEY – API Key
SMS_TEXT – Текст SMS сообщения
SMS_PHONE_NUMBER_OF_THE_RECIPIENT – Номер телефона получателя SMS, в любом формате
MyBrandName – Буквенное имя отправителя, добавленное в раздел "Отправители".
Список кодов ошибок, которые возвращает параметр err_code можно посмотреть по ссылке

Пример скрипта отправки SMS на PHP
Скопируйте в свой PHP скрипт

<?php
$key = 'Dfr7GHkkd83Fldffe4Dfe36j'; // API key запросите в поддержке при активации SMS шлюза
$phone = '79050550000'; // Номер телефона в любом формате 89050550000, 9050550000, 8(905)055-00-00 и т.д.
$sender_name = 'MyBrandName'; // Отправитель, предварительно должен быть добавлен в раздел Отправители в личном кабинете
$text = 'Тест смс'; // Текст SMS

$sms_params["method"] = 'push_msg';
$sms_params["format"] = 'json'; // формат ответа (json, xml)
$sms_params["key"] = $key;	
$sms_params["phone"] = $phone;
$sms_params["sender_name"] = $sender_name;
$sms_params["text"] = urlencode($text);
$sms_params["priority"] = 2; // Приоритет (1,2,3,4). Подробнее в документации.

$url = "https://ssl.bs00.ru/?"; // URL API сервиса

$tmp = array();
foreach ($sms_params as $key => $val)
	$tmp[] = $key."=".$val;
$url .= implode("&", $tmp);

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);

$out = curl_exec($ch);
$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);		
var_dump($out);
?>
Документация по отправке SMS по ссылке

Пример скрипта получения статусов
Скопируйте в свой PHP скрипт

<?php
// Получить статус СМС сообщения можно 2 способами:
// 1 - Самостоятельно запросить статус методом get_msg_report (Подробнее в документации)
// 2 - Прописать в личном кабинете, в разделе "НАСТРОЙКА" - "API и интеграция" URL Вашего сайта или системы
// на который SMS шлюз будет самостоятельно передавать статусы сообщений по мере их получения
// от оператора связи
//--------------------------------------------------------------------
 
// 1-й способ мы не будем описывать, Вы можете самостоятельно посмотреть все необходимые параметры 
// в Документации (ссылка ниже)
// 
 
 
// 2-й способ
// Вы прописываете в ЛК URL на который необходимо прислать статус, далее наша платформа будет
// делать GET запросы к этому URL со следующими параметрами
 
// Предлагаемый вариант скрипта, который получает статусы
 
$sms_id = @$_GET["id_sms"]; // ID SMS
 
$state = @$_GET["state"]; //ID статуса сообщения
// 1-доставлено, 2-не доставлено, 4-в очереди на SMSC оператора, 8-доставлено в SMSC оператору, 16-отклонено оператором
 
$last_update = @$_GET["last_update"]; // Время доставки смс сообщения абоненту 
// (время определяется по часовому поясу
// операторского СМС шлюза и может отличаться
// от часового пояса Москвы)
// (передается в формате UNIX_TIME)
 
$state_date = @$_GET["state_date"]; // Время поступления статуса от оператора связи
// (время определяется по часовому поясу операторского СМС шлюза и может 
// отличаться от часового пояса Москвы)
// (передается в формате UNIX_TIME) 
 
$phone = @$_GET["phone"]; // Номер Абонента
 
// Получив эти данные, Вы можете сохранить их себе в БД.
// Мы рекомендуем делать UPDATE данных в БД (а не INSERT)
?>
Документация по получению статусов на свой сервер по ссылке