Гарантия лучшей цены!
Нашли дешевле? Сделаем дешевле и вернем 10% от разницы.
Узнать подробности
Партнерская программа
Довольны нашим сервисом? Рекомендуйте нас и получайте бонусы.
Узнать подробности

Отправка SMS сообщения

                    $phone = '79999999999'; //Введите свой номер
                    $text = 'Test-text'; //Введите текст сообщения

                    $api_key = 'YOUR API KEY'; //Ваш ключ API
                    $login = 'YOUR LOGIN'; //Ваш логин
                    $sender = 'SENDER NAME'; // Ваше зарегестрированное имя отправителя

                    //Получение временной метки ( ничего менять не нужно )
                    $urlTimeStamp = "http://my.sms34.ru/get/timestamp.php"; 
                    $timeStamp = send($urlTimeStamp);

                    //Генерация подписи
                    $params = [
                        'timestamp' => $timeStamp,
                        'login'     => $login,
                        'phone'     => $phone,
                        'text'      => $text,
                        'sender'    => $sender
                    ];

                    ksort($params);
                    reset($params);

                    $signature = md5(implode($params) . $api_key);

                    $url = sprintf("http://my.sms34.ru/get/send.php?login=%s&signature=%s&phone=%s&text=%s&sender=%s×tamp=%s", $login, $signature, $phone, $text, $sender, $timeStamp);

                    $result = send($url);
                    //Функция отправки сообщения
                    function send($url) {

                        $curl = curl_init();

                        curl_setopt_array($curl, [
                            CURLOPT_URL => $url,
                            CURLOPT_RETURNTRANSFER => true,
                            CURLOPT_ENCODING => "",
                            CURLOPT_MAXREDIRS => 10,
                            CURLOPT_TIMEOUT => 30,
                            CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
                            CURLOPT_CUSTOMREQUEST => "GET",
                            CURLOPT_HTTPHEADER => []
                        ]);

                        $response = curl_exec($curl);
                        $error = curl_error($curl);

                        curl_close($curl);

                        if ($error) {
                            print_r($error);
                        } else {
                            return $response;
                        }
                    }
                      

Отправка Viber сообщения

                      
//Вводим или получаем номер телефона
$phone = $_POST['phone'];
	//Проверяем наличие номера телефона
		if(!$phone) {
				$error_phone = 'Введите номер телефона.';
		}
		//Проводим валидацию номера
		elseif(strpos($phone,'89') !== 0 && strpos($phone,'79') !== 0 && strpos($phone,'+79') !== 0) {
			$phone = preg_replace('/\D+/', '', $_POST['phone']);
			$error_phone = '';
		}
		elseif((strpos($phone,'89') == 0 || strpos($phone,'79') == 0 || strpos($phone,'+79') == 0 ) && in_array(strlen($phone),array(11,12))) {
			if(preg_match('/\+?[7|8]([0-9]{10})/',$phone,$matches)){
						$phone = '7'.$matches[1];
						$error_phone = '';
			}
		else {
				$error_phone = 'Введите правильный номер телефона.';
		}
}


$text = 'ТЕКСТ ВАШЕГО СООБЩЕНИЯ'; //ТЕКСТ СООБЩЕНИЯ

$api_key = 'API ключ';
$login = 'Ваш логин';
$sender = 'Имя отправителя (одно из одобренных на вашем аккаунте)';


		$urlTimeStamp = "http://my.webcom.mobi/external/get/timestamp.php";
//Генерируем КУРЛ запрос
		$curl = curl_init();
	    curl_setopt_array($curl, [
	        CURLOPT_URL => $urlTimeStamp,
	        CURLOPT_RETURNTRANSFER => true,
	        CURLOPT_ENCODING => "",
	        CURLOPT_MAXREDIRS => 10,
	        CURLOPT_TIMEOUT => 30,
	        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
	        CURLOPT_CUSTOMREQUEST => "GET",
	        CURLOPT_HTTPHEADER => []
	    ]);

	    $response = curl_exec($curl);
	    $error = curl_error($curl);

	    curl_close($curl);


		$timeStamp = $response;

		function Signature( $params, $api_key )
		{
		    ksort( $params );
		    reset( $params );

		    return md5( $params . $api_key );
		}

		$params = [
		    'timestamp' => $timeStamp,
		    'login'     => $login,
		    'phone'     => $phone,
		    'sender'    => $sender,
		    'text'      => $text

		];

		ksort($params);
		reset($params);
		$params = implode('',array_values($params));

		$signature = Signature($params, $api_key);

		$url = 'http://my.webcom.mobi/external/get/send.php?login='.$login.'&signature='.$signature.'&phone='.$phone.'&text='.urlencode($text).'&sender='.urlencode($sender).'&'.'timestamp='.$timeStamp;
		function send($url) {

		    $curl = curl_init();

		    curl_setopt_array($curl, [
		        CURLOPT_URL => $url,
		        CURLOPT_RETURNTRANSFER => true,
		        CURLOPT_ENCODING => "",
		        CURLOPT_MAXREDIRS => 10,
		        CURLOPT_TIMEOUT => 30,
		        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
		        CURLOPT_CUSTOMREQUEST => "GET",
		        CURLOPT_HTTPHEADER => []
		    ]);

		    $response = curl_exec($curl);
		    $error = curl_error($curl);

		    curl_close($curl);

		    if ($error) {
		        // print_r($error);
		    } else {
		        return $response;
		    }
		}

			 $result = send($url);
			 return $result;


                    

Генерация OTP


$host_db = "";
$user_db = "";
$password_db = "";
$name_db = "";


// Подключаемся к DB
$link = mysql_connect($host_db, $user_db, $password_db);
if (!$link) {
    die('Ошибка соединения: ' . mysql_error());
}
mysql_query("set names utf8");

mysql_query("use ". $name_db);

// Получаем IP адрес отправителя
$address = $_SERVER['REMOTE_ADDR'];

extract($_POST);


// Проверяем есть ли в DB этот клиент и правильный ли IP адрес
$query = "SELECT COUNT(*) AS cnt FROM `clients` WHERE `id_client`='" . $id_client . "' and `address`='" . $address . "'";
$result = mysql_query($query);
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
$cnt = $row[0];
}

// Если есть
if ($cnt == 1) {

// Генерируем код
$code = rand(10000, 99999);
} else {
// Если нет такого пользователя или не верная пара id_client и IP адрес
echo "{'error':'-1','phone':'" . $phone . "'}";
}


// Получаем текущую дату
$date = new DateTime();
$date = $date->modify(" + 1 day");
$lifetime = $date->format("Y-m-d H:i:s");

// Кладем в базу информацию о номере телефона и код
$query = "INSERT INTO `phone` (`id_client`, `phone`, `code`, `datetime`, `lifetime`) VALUES ('" . $id_client . "','" . $phone . "','" . $code . "',now(),'" . $lifetime . "')";
$result = mysql_query($query);


function Signature( $params, $api_key )
{

ksort( $params );
reset( $params );

return md5( implode( $params ) . $api_key );

}

$text = urlencode ($code);


// Отправляем СМС
$api_key = "f233876916be9898bda5b31ab7c02197bb09b991"; 
$timestamp = file_get_contents("http://my.webcom.mobi/external/get/timestamp.php");

$params = array(
'timestamp' => $timestamp,
'login' => 'roman', 
'phone' => $phone, 
'sender' => 'WEBCOM MOBI',
'text' => $text
);



$signature = Signature( $params, $api_key );

$query = "http://my.webcom.mobi/external/get/send.php?timestamp=" . $timestamp . "&login=roman&phone=" . $phone . "&text=" . $text . "&sender=WEBCOM%20MOBI&signature=" . $signature;
$resp = json_decode(file_get_contents($query));

$data = array();

$data['code'] = $code;
$data['phone'] = $phone;



echo json_encode($data);
              

Верификация OTP


$host_db = "";
$user_db = "";
$password_db = "";
$name_db = "";


// Подключаемся к DB
$link = mysql_connect($host_db, $user_db, $password_db);
if (!$link) {
    die('Ошибка соединения: ' . mysql_error());
}
mysql_query("set names utf8");

mysql_query("use ". $name_db);

// Получаем IP адрес отправителя
$address = $_SERVER['REMOTE_ADDR'];

extract($_POST);

// Проверяем есть ли в DB этот клиент и правильный ли IP адрес и получаем установленый 
// максимальное время жизни кода у данного клиента
$query = "SELECT `hour` FROM `clients` WHERE `id_client`='" . $id_client . "' and `address`='" . $address . "'";
$result = mysql_query($query);
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
$hour = $row[0];
}

// Проверяем если верно установлено время жизни кода 
if ($hour > 0) {
$query = "SELECT `lifetime` FROM `phone` WHERE `phone`='" . $phone . "' and `code`='" . $code . "'";
$result = mysql_query($query);
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
$lifetime = $row[0];
}

// Переводим часы в секунды
$hour = $hour * 60;

// Проверяем что время жизни более двух секунд
if (strlen($lifetime) > 2) {
	// Получаем время, прошедшее с момента генерации
	$result = time() - strtotime($lifetime);
	$result = abs($result);
	// Проверяем, живой ли еще код, елсли да, то отправляем подтверждение и номер.
if ($result < $hour) {
	echo "{'access':'true','phone':'" . $phone . "'}";
} else {
	 echo "{'error':'-2','phone':'" . $phone . "'}";
}

}


} else {
echo "{'error':'-1','phone':'" . $phone . "'}";
}