Сам справлюсь (sms-шлюз, sms-транспорт, API)
|
![]() |
|||||||||
Техническое описаниеДанная услуга, по сути, является СМС-шлюзом, что позволяет программисту на стороне партнера создать собственный скрипт обработки смс сообщений. В случае использования данной услуги, наш сервер выступает в роли транзитного, что позволяет партнеру отправлять собственное сообщение в ответном смс пользователю. Суть работы услуги заключается в том, что все смс сообщения приходящие на наш сервер передаются на скрипт партнера вместе со всеми сопутствующими данными, а возвращаемый скриптом партнера текст, отсылается в виде смс сообщения обратно пользователю. Название услуги обусловлено тем, что весь алгоритм обработки сообщений должен создать программист партнера сам, что достаточно трудоемко и требует специальной подготовки и знаний одного из скриптовых языков. В рамках смс биллинга используются префиксы партнеров. |
Сфера применения
|
Описание протокола и передаваемые параметры
Работа строится следующим образом: партнер размещает у себя на сайте информацию о том, какой текст смс необходимо отправить абоненту и на какой номер. Текст смс будет зависеть от корневого префикса номера и выглядеть например так: 218<префикс партнера> для номеров с корневым префиксом 218. Префикс партнера может быть как числовым так и буквенным - по желанию партнера.
В некоторых странах существует дополнительный префикс, например RRR, GET, dx. Дополнительный префикс пишется перед корневым префиксом платформы. Т.е. вот так: RRR 915, GET 915, dx012. Следует помнить, что дополнительный префикс передается на сервер партнера отдельно от тела смс - в отдельном параметре. Это удобно при организации работы обработчика партнера.
Если нужно в теле смс передать какие либо дополнительные параметры, например ID пользователя, то данную информацию нужно отделить от статического идентификатора например символом "*" , "-", "+" или каким либо еще. Тогда, если например нужно передать ID пользователя равным 123, префикс партнера 3, а разделитель "+", то текст смс будет вида 2183+123.
После того как абонент отправляет смс, оно, через оператора, попадает на нашу систему. Мы определяем партнера и далее это смс вместе передается методом POST на указанный партнером URL.
Передаваемые параметры
sms_id - уникальный идентификатор смс сообщения;
sms_body - текст сообщения абонента;
site_service_id - id услуги под которым создана услуга "Сам справлюсь" в личном кабинете;
user_num - номер телефона абонента вида 380949965236;
num - короткий номер, на который абонент отправил смс;
cpref - дополнительный префикс. Параметр пустой если данный короткий номер не содержит дополнительного префикса. Сдержит номер дополнительный префикс или нет можно узнать из XML файла либо на станице Тарифов;
operator_id - идентификатор оператора;
operator_name - имя оператора;
sms_price - стоимость смс сообщения для абонента c НДС;
sms_currency - кодовое обозначение валюты, в которой передано значение параметра price, в соответствии с международным стандартом ISO-4217 Примеры обозначений: RUB, USD, UAH, т.д.;
partner_cost - доход партнера.
partner_currency - валюта дохода партнера;
secret_word - этот параметр посылается как функция md5('Секретное слово'), где 'Секретное слово' - это некая комбинация символов указанная партнером у себя в личном кабинете.
secret_key - это контрольное значение, вычисленное на основе основных параметров, а также значения secret_word. Служит для проверки валидности запроса. Формула вычисления контрольного значения:
secret_key = md5(sms_id + sms_body + site_service_id + operator_id + num + sms_price + 'Секретное слово').В этом выражении знак "+" означает операцию конкатенации.
Если в течение 30 сек наша платформа не получила ответ от сервера партнера, абоненту отсылается сообщение о недоступности сервера партнера.
Параметры ответа
После передачи параметров, система ожидает ответ от сервера партнера в формате:
sms_id:уникальный идентификатор смс сообщения "\n";
response:ответ партнера в формате UTF-8 "\n";
error:0 либо 1; - параметр, который указывает, что абонент, отославший смс, допустил ошибку в сообщении - например неправильно указал код покупаемого продукта. Параметр принимает значение "1" - если в поле response пересылается сообщение об ошибке. Если параметру будет присвоен "0", то сообщение считается обычным ответом. Указание "error=1" сообщению об ошибке является обязательным условием.
Допустимое кол-во символов в ответе партнера 70 Кириллица либо 160 Латиница.
Пример формирования ответа в обработчике на PHP:
<?php
echo "sms_id:$_POST['sms_id']\n";
echo "response:Текст ответа\n";
echo "error:0";
?>
После обработки и отправки партнером ответного сообщения абоненту, партнеру формируется сообщение со статусом доставки, которое может быть «1» (если сообщение доставлено и оплачено) или «0» (если не доставлено или у абонента недостаточно денег на счету). Данную проверку производит оператор на своей стороне. В случае если у абонента недостаточно денег на счету, сообщение ему не доставляется оператором. В замен отправленного смс, оператор посылает абоненту свое стандартное смс с текстом "У вас не достаточно денег на счету", либо абоненту вообще не передается ни каких сообщений.
Параметры статуса доставки и оплаты
sms_id - уникальный идентификатор смс;
status - результат оплаты смс абонентом. Принимает значение 1, если сообщение доставлено и оплачено, или 0 - если не оплачено либо не доставлено;
user_num - номер телефона абонента вида 380949965236;
site_service_id - id услуги под которым создана услуга "Сам справлюсь" в личном кабинете.
Партнер обязан проверять статус т.к. если, к примеру, пришло сообщение с параметром status=0, то услуга не должна быть предоставлена абоненту, т.к. смс не оплачена и партнеру не будет начислен партнерский заработок. При разработке алгоритма, следует проверять status и предусмотреть алгоритм "отката" услуги если смс не оплачено.
ВАЖНО: отвечать на этот запрос - не нужно. Информация в запросе исключительно для вас. Наш обработчик уже не будет ждать от вас никаких ответов.
![]() Получи пароль |
![]() Время пошло! |
![]() Помогите кто может |
![]() Смс объявление |





