Initial
This commit is contained in:
187
ervws/old/sms-test.php
Normal file
187
ervws/old/sms-test.php
Normal file
@@ -0,0 +1,187 @@
|
||||
<?php error_reporting(E_ALL);
|
||||
ini_set('display_errors', 1);
|
||||
/* SigmaSMS REST API
|
||||
* https://online.sigmasms.ru/docs/#/api/HTTP-REST
|
||||
*/
|
||||
|
||||
// Универсальная функция отправки
|
||||
function apiRequest($first = false, $data = false, $url_path = false, $token = false, $file = false) {
|
||||
global $token_filename;
|
||||
$api_url = 'https://online.sigmasms.ru/api/';
|
||||
$login = 'kfv.advokat@gmail.com';
|
||||
$pass = 's7NRIb';
|
||||
// Get Token
|
||||
if ($first) {
|
||||
$fields = array(
|
||||
'username' => $login,
|
||||
'password' => $pass,
|
||||
'type' => 'local'
|
||||
);
|
||||
$ch = curl_init();
|
||||
curl_setopt($ch, CURLOPT_URL, $api_url.'login');
|
||||
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json; charset=UTF-8"));
|
||||
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode( $fields ));
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
||||
curl_setopt($ch, CURLOPT_HEADER, 0);
|
||||
$response = curl_exec($ch);
|
||||
curl_close($ch);
|
||||
if (!$response) {
|
||||
$response = json_encode(array('error' => 'true'));
|
||||
} else {
|
||||
file_put_contents($token_filename, $response);
|
||||
}
|
||||
} elseif ($url_path && $token) {
|
||||
$ch = curl_init();
|
||||
curl_setopt($ch, CURLOPT_URL, $api_url.$url_path);
|
||||
if ($file) {
|
||||
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: ".mime_content_type($data['file']), "Content-length: ".filesize($data['file']), "Authorization: ".$token));
|
||||
curl_setopt($ch, CURLOPT_POSTFIELDS, file_get_contents($data['file']));
|
||||
} else {
|
||||
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json;charset=UTF-8", "Accept: application/json", "Authorization: ".$token));
|
||||
if ($data && is_array($data)) {
|
||||
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode( $data ));
|
||||
}
|
||||
}
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
||||
curl_setopt($ch, CURLOPT_HEADER, 0);
|
||||
$response = curl_exec($ch);
|
||||
curl_close($ch);
|
||||
if (!$response) {
|
||||
$response = json_encode(array('error' => 'true'));
|
||||
}
|
||||
}
|
||||
header("Content-Type: application/json;charset=UTF-8");
|
||||
return $response;
|
||||
}
|
||||
// Авторизация и получение токена
|
||||
function apiAuth() {
|
||||
// Название файла для сохранения токена
|
||||
$token_filename = 'sigmatoken.txt';
|
||||
// проверяем токен
|
||||
if (file_exists($token_filename) && (date('Y-m-d H:i:s', filemtime($token_filename)) > date('Y-m-d H:i:s', strtotime('-23 hours')))) {
|
||||
$result = file_get_contents($token_filename, true);
|
||||
} else {
|
||||
$result = apiRequest(true);
|
||||
}
|
||||
//
|
||||
$unjes = json_decode($result);
|
||||
if (isset($unjes->token) && !empty($unjes->token)) {
|
||||
$token = (string) $unjes->token;
|
||||
} else {
|
||||
$token = null;
|
||||
}
|
||||
return $token;
|
||||
}
|
||||
//
|
||||
function clear_phone($phone) {
|
||||
$phone_number = preg_replace('/[() -]+/', '', $phone);
|
||||
return $phone_number;
|
||||
}
|
||||
// Загрузка файла
|
||||
function uploadFile($file_path) {
|
||||
$token = apiAuth();
|
||||
if ($token) {
|
||||
$dataFile = array('file' => dirname(__FILE__).'/'.$file_path);
|
||||
return apiRequest(false, $dataFile, 'storage', $token, true);
|
||||
}
|
||||
}
|
||||
// Отправка одиночного сообщения
|
||||
function sendOneMess($type, $recipient, $sender, $text, $button = null, $image = null) {
|
||||
$token = apiAuth();
|
||||
$token = '27f89492e00973263ff746a655663678fae7203bac8b62919700e489e33b3902';
|
||||
if ($token) {
|
||||
$params = array(
|
||||
"type" => $type,
|
||||
"recipient" => clear_phone($recipient),
|
||||
"payload" => array(
|
||||
"sender" => $sender,
|
||||
"text" => $text,
|
||||
"button" => $button,
|
||||
"image" => $image
|
||||
)
|
||||
);
|
||||
return apiRequest(false, $params, 'sendings', $token);
|
||||
}
|
||||
}
|
||||
// Отправка каскада
|
||||
function sendCascade($data) {
|
||||
$token = apiAuth();
|
||||
if ($token) {
|
||||
return apiRequest(false, $data, 'sendings', $token);
|
||||
}
|
||||
}
|
||||
// Проверка статуса
|
||||
function checkStatus($id) {
|
||||
if ($id) {
|
||||
$token = apiAuth();
|
||||
if ($token) {
|
||||
return apiRequest(false, false, 'sendings/'.$id, $token);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Тесты */
|
||||
$myphone = $_POST['phonenumber'];
|
||||
echo 'Тест СМС: '.PHP_EOL;
|
||||
$sendSms = sendOneMess('sms', $myphone, 'Clientright', 'Код подтверждения: '.$_POST['smscode']);
|
||||
var_dump($sendSms);
|
||||
|
||||
// echo PHP_EOL.'Проверка статуса сообщения: '.PHP_EOL;
|
||||
// var_dump(checkStatus('6035fe28-2f60-4973-8681-jhjh887990087'));
|
||||
|
||||
// echo PHP_EOL.'Загрузка картинки: '.PHP_EOL;
|
||||
// $upload_image = uploadFile('test.png');
|
||||
// var_dump($upload_image);
|
||||
// echo 'Проверить корректность загрузки можно по ссылке: https://online.sigmasms.ru/api/storage/{user_id}/{image_key}'.PHP_EOL;
|
||||
|
||||
// echo PHP_EOL.'Тест Viber: '.PHP_EOL;
|
||||
// $msg_image = json_decode($upload_image);
|
||||
// if (isset($msg_image->key)) {
|
||||
// var_dump(sendOneMess('viber', $myphone, 'X-City', 'Тест сообщения Viber', array('text' => 'Текст кнопки', 'url' => 'https://google.ru'), $msg_image->key));
|
||||
// }
|
||||
|
||||
// echo PHP_EOL.'Каскадная переотправка VK->Viber->SMS: '.PHP_EOL;
|
||||
// $cascadeData = array(
|
||||
// "type" => 'vk',
|
||||
// "recipient" => clear_phone($myphone),
|
||||
// "payload" => array(
|
||||
// "sender" => 'sigmasmsru',
|
||||
// "text" => 'Тест сообщения ВК',
|
||||
// ),
|
||||
// "fallbacks" => [
|
||||
// array(
|
||||
// "type" => 'viber',
|
||||
// "payload" => array(
|
||||
// "sender" => 'X-City',
|
||||
// "text" => 'Тест сообщения Viber',
|
||||
// "image" => $msg_image->key,
|
||||
// "button" => array(
|
||||
// "text" => "Текст кнопки",
|
||||
// "url" => 'https://google.ru',
|
||||
// ),
|
||||
// ),
|
||||
// '$options' => array(
|
||||
// "onStatus" => ["failed"],
|
||||
// "onTimeout" => array(
|
||||
// "timeout" => 120,
|
||||
// "except" => ["delivered", "seen"]
|
||||
// )
|
||||
// )
|
||||
// ),
|
||||
// array(
|
||||
// "type" => "sms",
|
||||
// "payload" => array(
|
||||
// "sender" => "SigmaSMS",
|
||||
// "text" => 'Тест сообщения СМС'
|
||||
// ),
|
||||
// '$options' => array(
|
||||
// "onStatus" => ["failed"],
|
||||
// "onTimeout" => array(
|
||||
// "timeout" => 120,
|
||||
// "except" => ["delivered", "seen"]
|
||||
// )
|
||||
// )
|
||||
// )
|
||||
// ]
|
||||
// );
|
||||
// var_dump(sendCascade($cascadeData));
|
||||
Reference in New Issue
Block a user