Пример кода для отправки смс через PHP

смс авторизацияНаш скрипт используется для интеграции смс сервиса на сайтах более 10000 компаний, начиная от небольших стартапов до государственных учреждений всероссийского масштаба. Наш смс сервис поддерживает смс уведомления в разные страны мира. Полный перечень стран и тарифов доступен здесь.

Инструкция по тестированию скрипта отправки смс сообщений на PHP

Вам потребуется всего пять минут, чтобы настроить отправку первого смс сообщений с подписью через наш API с вашего сайта.

  • Зарегистрируйтесь на сайте
  • Сразу после регистрации добавьте свою уникальную подпись в личном кабинете.
  • Пока подпись активируется нашей службой поддержки, Вы можете скопировать функцию send, а в функции вызова подставить login и password, которые Вы указали при регистрации.
  • 				<?php 
    				/* использование функции передачи сообщения	*/
    				echo send("api.smsfeedback.ru", 80, "login", "password", 
    						  "79031234567", "some text here \n perenos stroki", "TEST-SMS");
    				?>
  • После получения смс сообщения об активации подписи Вы можете заменить подпись "TEST-SMS" на Вашу подпись, например, "SMS PHP". Если ваша подпись еще не активна, то можно отправить тестовые смс с подписью "TEST-SMS", которая доступна для вашего аккаунта по умолчанию;
  • Вы можете изменить текст смс "text here \n perenos stroki" или заменить его на переменную "\n" - показано для примера переноса строки, чтобы на экране телефона текст отображался далее с новой строки;
  • Если Вам не хватило тестового баланса для проверки, напишите нам, указав свой логин, и мы бесплатно пополним ваш баланс для дополнительного тестирования.

Функции отправки смс сообщений на PHP


				
				<?php 
					
				/* 
				* использование функции передачи сообщения
				*/
				
				echo send("api.smsfeedback.ru", 80, "login", "password", 
						  "79031234567", "text here \n perenos stroki", "TEST-SMS");
						
				/* 
				* функция передачи сообщения 
				*/
				
				function send($host, $port, $login, $password, $phone, $text, $sender = false, $wapurl = false )
				{
					$fp = fsockopen($host, $port, $errno, $errstr);
					if (!$fp) {
						return "errno: $errno \nerrstr: $errstr\n";
					}
					fwrite($fp, "GET /messages/v2/send/" .
						"?phone=" . rawurlencode($phone) .
						"&text=" . rawurlencode($text) .
						($sender ? "&sender=" . rawurlencode($sender) : "") .
						($wapurl ? "&wapurl=" . rawurlencode($wapurl) : "") .
						"  HTTP/1.0\n");
					fwrite($fp, "Host: " . $host . "\r\n");
					if ($login != "") {
						fwrite($fp, "Authorization: Basic " . 
							base64_encode($login. ":" . $password) . "\n");
					}
					fwrite($fp, "\n");
					$response = "";
					while(!feof($fp)) {
						$response .= fread($fp, 1);
					}
					fclose($fp);
					list($other, $responseBody) = explode("\r\n\r\n", $response, 2);
					return $responseBody;
				}
				

				?>

Функции проверки доставки смс сообщений на PHP


				
				<?php 
				
				/* 
				* функция проверки состояния отправленного сообщения
				*/
				function status($host, $port, $login, $password, $sms_id)
				{
					$fp = fsockopen($host, $port, $errno, $errstr);
					if (!$fp) {
						return "errno: $errno \nerrstr: $errstr\n";
					}
					fwrite($fp, "GET /messages/v2/status/" .
						"?id=" . $sms_id .
						"  HTTP/1.0\n");
					fwrite($fp, "Host: " . $host . "\r\n");
					if ($login != "") {
						fwrite($fp, "Authorization: Basic " . 
							base64_encode($login. ":" . $password) . "\n");
					}
					fwrite($fp, "\n");
					$response = "";
					while(!feof($fp)) {
						$response .= fread($fp, 1);
					}
					fclose($fp);
					list($other, $responseBody) = explode("\r\n\r\n", $response, 2);
					return $responseBody;
				}
				
				/* 
				* использование функции проверки состояния отправленного сообщения
				* например, прри отпраке смс мы получили ответ: accepted;A133541BC
				*/
								
				echo status("api.smsfeedback.ru", 80, "login", "password", "A133541BC");
						
				?>

Функции проверки текущего баланса на PHP


				
				<?php 
						
				/* 
				* функция проверки баланса
				*/
				
				function balance($host, $port, $login, $password)
				{
					$fp = fsockopen($host, $port, $errno, $errstr);
					if (!$fp) {
						return "errno: $errno \nerrstr: $errstr\n";
					}
				   fwrite($fp, "GET /messages/v2/balance/  HTTP/1.0\n");
					fwrite($fp, "Host: " . $host . "\r\n");
					if ($login != "") {
						fwrite($fp, "Authorization: Basic " . 
							base64_encode($login. ":" . $password) . "\n");
					}
					fwrite($fp, "\n");
					$response = "";
					while(!feof($fp)) {
						$response .= fread($fp, 1);
					}
					fclose($fp);
					list($other, $responseBody) = explode("\r\n\r\n", $response, 2);
					return $responseBody;
				}
				
				/* 
				* использование функции поверки баланса
				*/
				
				echo balance("api.smsfeedback.ru", 80, "login", "password");
				?>