Отправка 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)
?>
Документация по получению статусов на свой сервер по ссылке