Отправка SMS с сайта на PHP — часто очень важный элемент технического задания, который может поставить в тупик, без определённой подготовки.

Заказчику он нужен для информирования клиентов сайта, менеджеров магазина и т.д.

Для того, чтобы отправлять SMS с сайта на PHP используют специальные SMS-гейты.

О том, как отправить SMS с сайта на PHP с помощью одного из таких SMS-гейтов (turbosms) и пойдет речь.

К вашему вниманию класс на PHP для отправки SMS с сайта на PHP.

class SMS{

  public static $sender='ALPHA_SENDER';
  public static $login='LOGIN';
  public static $pwd='PASSWORD';    
  /**
   *  $r - Recipient
   *  $m - Message
   *  $d - Date, default "NOW()"
   */     
  public static function send($r,$m,$d=false){
    try{
    	$pdo = new PDO ("mysql:host=77.120.116.10;dbname=users",SMS::$login,SMS::$pwd);
    	$pdo->query("SET NAMES utf8;");
	    if($d==false)
	      $pdo->query("INSERT INTO `{SMS::$login}` (`number`,`message`,`sign`) VALUES ('$r','$m','{SMS::$sender}')");
	    else
	      $pdo->query("INSERT INTO `{SMS::$login}` (`number`,`message`,`sign`,`send_time`) VALUES ('$r','$m','{SMS::$sender}','$d')");
    }catch(Exception $e){
			$client = new SoapClient ('http://turbosms.in.ua/api/wsdl.html'); 
			$auth = array( 
				'login' => SMS::$login, 
		        'password' => SMS::$pwd 
        	); 
        	$res=$client->Auth($auth);
        	$sms = array( 
        		'sender' => SMS::$sender, 
        		'destination' => $r, 
		        'text' => $m
        	);
        	$res=$client->SendSMS($sms); 
    }
  }
}

В этом классе вы можете прописать заданные параметры:
1) альфанумерическое имя отправителя (то, что будет написано «от кого» в SMS).
2) логин
3) пароль

Далее в классе есть всего одна функция, которая попытается отправить смс через запись в базу данных SMS-гейта, и если не выйдет — через Soap клиент.

Всё очень просто.

Параметров у функции отправки SMS всего 3:
Номер телефона получателя ($r)
Текст SMS ($m)
Дата отправки (если не задавать этот параметр SMS отправится моментально, если задать — то в заданное время). Формат даты MySQL (yyyy-mm-dd hh:ii:ss, где yyyy — год, mm — месяц, dd — день, hh — часы, ii — минуты, ss — секунды).

Вроде всё должно быть просто и понятно.

Отправка SMS с сайта на PHP:

SMS будет доставлено под бой курантов:

require_once('sms.php');
SMS::send('+7xxxxxxxxxx','Hello World', '2013-12-31 23:59:59');

или моментально:

require_once('sms.php');
SMS::send('+7xxxxxxxxxx','Hello World');

Если будут вопросы — задавайте в комментариях.

Класс доступен на GitHub:
[dl url=’https://github.com/kozachenko/TurboSMS-API’ title=’Отправка SMS с сайта на PHP’ desc=’через SMS-гейт turbosms.ua’ type=’link’]