Получи 15 дней теста бесплатно!
ПРИМЕР ИСПОЛЬЗОВАНИЯ JSON ИНТЕРФЕЙСА НА ЯЗЫКЕ PHP
Пример использования класса
$access_point = 'https://api.iqsms.ru'; $login = 'test'; $password = '123456'; $api = new JsonSmsApi($access_point, $login, $password); // узнаем текущий баланс var_dump($api->balance()); // получаем список доступных подписей var_dump($api->senders()); // // отправляем пакет sms // $messages = array( // array( // "clientId" => "1", // "phone"=> "71234567890", // "text"=> "first message", // "sender"=> "TEST" // ), // array( // "clientId" => "2", // "phone"=> "71234567891", // "text"=> "second message", // "sender"=> "TEST", // ), // array( // "clientId" => "3", // "phone"=> "71234567892", // "text"=> "third message", // "sender"=> "TEST", // ), // ); // var_dump($api->send($messages, 'testQueue')); // // получаем статусы для пакета sms // $messages = array( // array("clientId"=>"1","smscId"=>11255142), // array("clientId"=>"2","smscId"=>11255143), // array("clientId"=>"3","smscId"=>11255144), // ); // var_dump($api->status($messages)); // // получаем статусы из очереди 'testQueue' // var_dump($api->statusQueue('testQueue', 10)); class JsonSmsApi { const ERROR_EMPTY_ACCESS_POINT = 'Empty access point not allowed'; const ERROR_EMPTY_API_LOGIN = 'Empty api login not allowed'; const ERROR_EMPTY_API_PASSWORD = 'Empty api password not allowed'; const ERROR_EMPTY_RESPONSE = 'errorEmptyResponse'; protected $_apiLogin = null; protected $_apiPassword = null; protected $_access_point = null; protected $_packetSize = 200; protected $_results = array(); public function __construct($access_point, $apiLogin, $apiPassword) { $this->_setAccessPoint($access_point); $this->_setApiLogin($apiLogin); $this->_setApiPassword($apiPassword); } private function _setAccessPoint($access_point) { if (empty($access_point)) { throw new Exception(self::ERROR_EMPTY_ACCESS_POINT); } $this->_access_point = $access_point; } private function _setApiLogin($apiLogin) { if (empty($apiLogin)) { throw new Exception(self::ERROR_EMPTY_API_LOGIN); } $this->_apiLogin = $apiLogin; } private function _setApiPassword($apiPassword) { if (empty($apiPassword)) { throw new Exception(self::ERROR_EMPTY_API_PASSWORD); } $this->_apiPassword = $apiPassword; } public function getAccessPoint() { return $this->_access_point; } private function _sendRequest($uri, $params = null) { $url = $this->_getUrl($uri); $data = $this->_formPacket($params); $client = curl_init($url); curl_setopt_array($client, array( CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true, CURLOPT_HEADER => false, CURLOPT_HTTPHEADER => array('Host: ' . explode('//', $this->getAccessPoint())[1]), CURLOPT_POSTFIELDS => $data, // CURLOPT_VERBOSE => true, )); $body = curl_exec($client); curl_close($client); if (empty($body)) { throw new Exception(self::ERROR_EMPTY_RESPONSE); } $decodedBody = json_decode($body, true); if (is_null($decodedBody)) { throw new Exception($body); } return $decodedBody; } private function _getUrl($uri) { echo $this->getAccessPoint(); return $this->getAccessPoint() . '/messages/v2/' . $uri . '.json'; } private function _formPacket($params = null) { $params['login'] = $this->_apiLogin; $params['password'] = $this->_apiPassword; foreach ($params as $key => $value) { if (empty($value)) { unset($params[$key]); } } $packet = json_encode($params); return $packet; } public function getPacketSize() { return $this->_packetSize; } public function send($messages, $statusQueueName = null, $scheduleTime = null) { $params = array( 'messages' => $messages, 'statusQueueName' => $statusQueueName, 'scheduleTime' => $scheduleTime, ); return $this->_sendRequest('send', $params); } public function status($messages) { return $this->_sendRequest('status', array('messages' => $messages)); } public function statusQueue($name, $limit) { return $this->_sendRequest('statusQueue', array( 'statusQueueName' => $name, 'statusQueueLimit' => $limit, )); } public function balance() { return $this->_sendRequest('balance'); } public function senders() { return $this->_sendRequest('senders'); } }
Решения для всех сфер бизнеса
- Автосалоны, автодилеры, сервисные центры
- Банки и кредитные организации
- Ночные клубы, рестораны, кафе
- Страховые компании, страховые брокеры
- Торговые сети, гипермаркеты
- Интернет-торговля и Web 2.0
- Кинотеатры и спортивно-развлекательные центры
- Провайдеры связи, Интернет, VoIP, IPTV
- Туризм, Туроператоры, турфирмы
- Спортивные, фитнес клубы
60 дней бесплатного тестирования
Для получения доступа к сервису введите свой номер телефона
Для получения доступа к сервису введите свой номер телефона