+7 (812) 326 10 75 Санкт-Петербург
8 800 333 10 75 Бесплатно по России

Примеры реализации взаимодействия на языке PHP

 ВНИМАНИЕ

Для использования данного вида интеграции Вам необходимо зарегистрироваться на серверной платформе Stream Telecom по адресу http://web.szk-info.ru, либо зарегистрироваться через менеджера компании. При регистрации Вы получаете логин и пароль, а так же имя отправителя, которое необходимо запросить и использовать отличное от "SMS Info". Т.е. при регистрации нового пользователя Вам присваивается тестовое имя отправителя (SMS Info) и его нужно сменить на любое другое для начала отправки по протоколу интеграции.

Руководство по взаимодействию с сервисом отправки сообщений через PHP.pdf Библиотека функций и пример реализации на PHP.zip

Функции

Функция формирования и отправки get-запроса на сервер через cURL

function GetConnect($href){

        $ch = curl_init();

        curl_setopt($ch, CURLOPT_URL,$href);

        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

        $result = curl_exec($ch);

            curl_close($ch);

            return $result;

        }

Наименование поля

Описание

 $href

Передаваемый запрос.


Функция формирования и отправки post-запроса на сервер через cURL

function PostConnect($src, $href){

        $ch = curl_init();

        curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/x-www-form-

urlencoded');

        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

        curl_setopt($ch, CURLOPT_CRLF, true);

        curl_setopt($ch, CURLOPT_POST, true);

        curl_setopt($ch, CURLOPT_POSTFIELDS, $src);

        curl_setopt($ch, CURLOPT_URL, $href);

        $result = curl_exec($ch);

            return $result;

            curl_close($ch);

        }

Наименование поля

Описание

 $src

Передаваемый запрос.

 $href

Адрес для подключения.



GET

function GetSessionId_Get($server,$login,$password){

        $href = $server.'Session/?login='.$login.'&password='.$password;

        $result = $this -> GetConnect($href);

        return json_decode($result,true);

        }

POST

function GetSessionId_Post($server,$login,$password){ 

        $href = $server.'Session/session.php';

$src = 'login='.$login.'&password='.$password;

        $result = $this -> PostConnect($src,$href);

        return json_decode($result,true);

        }

Наименование поля

Описание

 $server

 Адрес для подключения (http://gateway.api.sc/rest/).  Обязательный.

 $login

 Логин пользователя. Обязательный.

 $password

 Пароль пользователя. Обязательный.

В случае передачи в функцию неверных параметров, Вам вернется код возникшей ошибки


GET

function GetBalance_Get($server,$session){

        $href = $server.'Balance/?sessionId='.$session;

        $result = $this -> GetConnect($href);

        return json_decode($result,true);

        }

POST

function GetBalance_Post($server,$session){

        $href = $server.'Balance/balance.php';

$src ='sessionId='.$session;

        $result = $this -> PostConnect($src,$href);

        return json_decode($result,true);

        }

Наименование поля

Описание

 $server

 Адрес для подключения (http://gateway.api.sc/rest/).  Обязательный.

 $session

 Идентификатор сессии. Обязательный.

В случае передачи в функцию неверных параметров, Вам вернется код возникшей ошибки

function GetStatistic($server,$session,$startDateTime,$endDateTime){

        $href = $server.'Statistic/?sessionId='.$session.

'&startDateTime='.$startDateTime.'&endDateTime='.$endDateTime;

        $result = $this -> GetConnect($href);

        return json_decode($result,true);

        }

Наименование поля

Описание

 $server

 Адрес для подключения (http://gateway.api.sc/rest/).  Обязательный.

 $session

 Идентификатор сессии. Обязательный.

 $startDateTime

 Дата и время начала периода, за который необходимо получить  статистику, например 2012-01-18T00:00:00. Обязательный.

 $endDateTime

 Дата и время конца периода, за который необходимо получить  статистику, например 2012-01-18T23:59:00. Обязательный.

В случае передачи в функцию неверных параметров, Вам вернется код возникшей ошибки

function GetIncomingSms($server,$session,$minDateUTC,$maxDateUTC){

        $href = $server.'Incoming/?sessionId='.$session.'

&minDateUTC='.$minDateUTC.'&maxDateUTC='.$maxDateUTC;

        $result = $this -> GetConnect($href);

$result = $this -> ChangeFormateDate(json_decode($result,true));

        return json_decode($result,true);

        }

Наименование поля

Описание

 $server

 Адрес для подключения (http://gateway.api.sc/rest/).  Обязательный.

 $session

 Идентификатор сессии. Обязательный.

 $minDateUTC

 Минимальное значение периода за который происходит  выборка  входящих сообщений (пример 2010-06-01T19:14:00).  Обязательный.

 $maxDateUTC

 Максимальное значение периода за который происходит  выборка  входящих сообщений (пример 2010-06-02T19:14:00).  Обязательный.



GET

function GetState_Get($server,$session,$messageId){

        $href = $server.'State/?sessionId='.$session.'&messageId='.$messageId;

        $result = $this -> GetConnect($href);

$result = $this -> ChangeFormateDate(json_decode($result,true));

        return $result;

        }

POST

function GetState_Post($server,$session,$messageId){

        $href = $server.'State/state.php';

$src ='sessionId='.$session.'&messageId='.$messageId;

        $result = $this -> PostConnect($src,$href);

  $result = $this -> ChangeFormateDate(json_decode($result,true));

        return $result;

        }

Наименование поля

Описание

 $server

 Адрес для подключения (http://gateway.api.sc/rest/).  Обязательный.

 $session

 Идентификатор сессии. Обязательный.

 $messageId

 Статус отправленного сообщения. Обязательный.


function SendSms($server,$session,$sourceAddress,$destinationAddress,$data,

$validity,$sendDate = ' '){

$href = $server.'Send/SendSms/';

if($sendDate != ' ')

$sendDate = '&sendDate='.$sendDate;

$src = 'sessionId='.$session.'&sourceAddress='.$sourceAddress.'&destinationAddress='.

$destinationAddress.'&data='.$data.'&validity='.$validity.$sendDate;

        $result = $this -> PostConnect($src,$href);

        return json_decode($result,true);

        }

Наименование поля

Описание

 $server

 Адрес для подключения (http://gateway.api.sc/rest/).  Обязательный.

 $session

 Идентификатор сессии. Обязательный.

 $sourceAddress

 Имя отправителя. До 11 латинских символов или до  15  цифровых. Примечание: Передаваемое значение в адресе  отправителя, должно в точности соответствовать ранее  зарегистрированному. Если установлена функция  динамической  смены адреса, то значение может быть любым. Обязательный.

 $destinationAddress

 Номер получателя, в международном формате: код  страны + код  сети + номер телефона. Пример:  79031234567. Обязательный.

 $data

 Текст сообщения. Обязательный.

 $validity

 Время жизни сообщения, указывается в минутах, по умолчанию  1440. Необязательный.

 $sendDate

 Время передачи сообщения. Необязательный.

В случае передачи в функцию неверных параметров, Вам вернется код возникшей ошибки

Функция отправки сообщений на несколько номеров (без учета часового пояса получателя)

function SendBulk($server,$session,$sourceAddress,$destinationAddresses,$data,$validity){

    $href = $server.'Send/SendBulk/';

$src = 'sessionId='.$session.'&sourceAddress='.$sourceAddress.'&destinationAddresses='.

$destinationAddresses.'&data='.$data.'&validity='.$validity;

$result = $this -> PostConnect($src,$href);

  return json_decode($result,true);

  }

Наименование поля

Описание

 $server

Адрес для подключения (http://gateway.api.sc/rest/).  Обязательный.

 $session

Идентификатор сессии. Обязательный.

 $sourceAddress

Имя отправителя. До 11 латинских символов или до 15 цифровых. Примечание: Передаваемое значение в адресе отправителя, должно в точности соответствовать ранее зарегистрированному. Если установлена функция динамической смены адреса, то значение может быть любым. Обязательный.

 $destinationAddresses

Список номеров получателей, в международном формате: код страны + код сети + номер телефона. Пример: 79031234567, номера вводятся через запятую. Обязательный.

 $data

Текст сообщения. Обязательный.

 $validity

Время жизни сообщения, указывается в минутах, по умолчанию 1440. Необязательный.

В случае передачи в функцию неверных параметров, Вам вернется код возникшей ошибки

Отправка единичного SMS-сообщения (с учетом часового пояса получателя)

function SendByTime($server,$session,$sourceAddress,$destinationAddresses,$data,$validity){

    $href = $server.'Send/SendByTime/';

$src = 'sessionId='.$session.'&sourceAddress='.$sourceAddress.'&destinationAddress='.

$destinationAddress.'&data='.$data.'&validity='.$validity.$sendDate;

        $result = $this -> PostConnect($src,$href);

  return json_decode($result,true);

  }

Наименование поля

Описание

 $server

Адрес для подключения (http://gateway.api.sc/rest/). Обязательный.

 $session

Идентификатор сессии. Обязательный.

 $sourceAddress

Имя отправителя. До 11 латинских символов или до 15 цифровых. Примечание: Передаваемое значение в адресе отправителя, должно в точности соответствовать ранее зарегистрированному. Если установлена функция динамической смены адреса, то значение может быть любым. Обязательный.

 $destinationAddress

Список номеров получателей, в международном формате: код страны + код сети + номер телефона. Пример: 79031234567, номера вводятся через запятую. Обязательный.

$data

Текст сообщения. Обязательный.

 $validity

Время жизни сообщения, указывается в минутах, по умолчанию 1440. Необязательный.

 $sendDate

Время передачи сообщения. Обязательный.

В случае передачи в функцию неверных параметров, Вам вернется код возникшей ошибки

function SendBulkPacket($server,$session,$sourceAddress,$phone_data,$validity){

        $href = $server.'Send/SendBulkPacket/';

$src = 'sessionId='.$session.'&sourceAddress='.$sourceAddress.'&phone_data='.

$phone_data.'&validity='.$validity;

        $result = $this -> PostConnect($src,$href);

        return json_decode($result,true);

        }

Наименование поля

Описание

 $server

 Адрес для подключения (http://gateway.api.sc/rest/).  Обязательный.

 $session

 Идентификатор сессии. Обязательный.

 $sourceAddress

 Имя отправителя. До 11 латинских символов или до  15  цифровых. Примечание: Передаваемое значение в адресе  отправителя, должно в точности соответствовать ранее  зарегистрированному. Если установлена функция динамической  смены адреса, то значение может быть любым. Обязательный.

 $post_data

 Тексты сообщений и номера получателей. Обязательный.

 $validity

 Время жизни сообщения, указывается в минутах, по умолчанию  1440 Необязательный.

В случае передачи в функцию неверных параметров, Вам вернется код возникшей ошибки

REST error code

HTTP status code

Описание

 -

 200

 OperationComplete

 1

 400

 ArgumentCanNotBeNullOrEmpty

 2

 400

 InvalidArgument

 3

 400

 InvalidSessionID

 4

 401

 SessionID expired

 5

 403

 NotEnoughCredits

 6

 400

 InvalidOperation

 7

 403

 Forbidden

 8

 500

 GatewayError

 9

 500

 InternalServerError

 10

 400

 Flood SMS

State

Описание

Тип статуса

 -1

 Отправлено (передано в мобильную сеть)

 Промежуточный

  0

 Доставлено абоненту

 Окончательный

 42

 Не доставлено

 Окончательный

 46

 Просрочено (истек срок жизни сообщения) 

 Окончательный

* Все функции могут быть доработаны на усмотрение разработчиков, внедряющих службы SMS в систему 1С.