Примеры реализации взаимодействия на языке PHP
ВНИМАНИЕ
Для использования данного вида интеграции Вам необходимо зарегистрироваться на серверной платформе Stream Telecom, либо зарегистрироваться через менеджера компании. При регистрации Вам присваивается логин, и тестовое имя отправителя SMS Info, которое будет автоматически удалено, после того как Вы запросите новое имя.
Пароль для интеграции задается в настройках пользователя во вкладке Настройки API.
Функции
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 |
Пароль для api (задается в личном кабинете во вкладке Настройка > Безопасность) Обязательный. |
В случае передачи в функцию неверных параметров, Вам вернется код возникшей ошибки
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 |
Просрочено (истек срок жизни сообщения) |
Окончательный |