Принцип работы СМС-шлюза

Схема работы проста: абонент, заинтересованный в покупке товара или услуги, отправляет СМС на короткий номер, набирая в начале сообщения уникальный текст (префикс) указанный при регистрации проекта.

Платформа «SMSRENT» обрабатывает запрос. Обработка СМС включает в себя определение принадлежности запроса клиенту «SMSRENT» (на основе префикса) и отправку HTTP-запроса на URL-обработчик проекта.

После окончания операции Вашему клиенту высылается заказанный товар (текстовая информация в ответном СМС сообщении, которую вернул Ваш обработчик) или оказывается услуга (как примеры: активация аккаунта, пополнение внутреннего баланса посетителя Вашего сайта и т.п., - всё это, по сути, результат обработки HTTP-запроса Вашим обработчиком).

Передаваемые к обработчику параметры

Для использования СМС биллинга на Вашей стороне потребуется написать скрипт URL-обработчик СМС запросов.

Суть скрипта обработчика заключается в приеме и обработке данных о СМС, передаваемых системой биллинга в виде параметров HTTP-запроса на адрес Вашего URL-обработчика.

Способ передачи (GET или POST), кодировка (UTF-8 или WINDOWS-1251) и имена переменных определяются настройками Вашего проекта (рис.1.).

Рис.1. Окно настройки проекта СМС-шлюз

Список переменных (имена по умолчанию)

Имя переменной

Тип, длина

Описание

msg

varchar(160)

Текст сообщения абонента в оригинале (так как был набран). Текст передается вместе с префиксом.

msg_trans

varchar(160)

Текст сообщения абонента переведенный в транслит. Рекомендуется использовать эту переменную, если в логике обработчика анализируется префикс или есть проверка на его соответствие. Текст передается вместе с префиксом.

num

varchar(10)

Короткий номер, на который абонент отправил СМС.

operator_id

varchar(15)

Кодовое имя оператора. Соответствует соответствующему значению кода оператора из таблицы: http://smsrent.ru/tariffs/

operator

varchar(255)

Имя оператора. Передается в кодировке, которая указана в настройках проекта.

user_id

varchar(15)

Номер телефона абонента в международном формате без плюса.

price

float()

Стоимость СМС сообщения для абонента. Стоимость указывается в валюте, которая передана в параметре valute (см. ниже). Дробная часть отделяется точкой.

valute

varchar(3)

Кодовое обозначение валюты, в которой передано значение параметра price, в соответствии с  международным стандартом ISO-4217 (http://ru.wikipedia.org/wiki/ISO_4217). Примеры обозначений: RUR, USD, UAH, BEL, KZT, EUR, MKD, PLN, LAT, AMD и т.д.

cost

float()

Ваш доход в рублях. Дробная часть отделяется точкой.

smsid

integer()

Уникальный идентификатор СМС сообщения в платформе «СМСРЕНТ». В случае повторов обращения к URL-обработчику (по таймауту), параметр smsid повторяет ранее переданные значения для каждого СМС сообщения.

mt

integer()

Параметр, указывающий, какой тип тарификации абонента используется. Принимает значение 1 при MT-тарификации (деньги снимаются со счета абонента при получении СМС), принимает значение 0 или переменная отсутствует при MO-тарификации (деньги снимаются со счета абонента при отправке СМС).

skey

varchar(32)

Защитный ключ, параметр безопасности. Значение рассчитывается исходя из выбранного типа шифрования:

  • без шифрования;
  • шифровать в md5;
  • md5 подпись данных ключом (высокая степень защиты).

Алгоритмы расчета представлены на странице настройки проекта в Вашем кабинете.

easymt

integer()

Параметр указывает на то, что данный запрос обработан по алгоритму easyMT (имеет значение 1). Если easyMT не используется, то параметр в обработчик не передается.

test

integer()

Тестовый запрос. Наличие значения отличного от нуля означает, что запрос тестовый (отправлен через эмулятор). Как правило, в рабочем СМС данный параметр отсутствует.

 

МТ-тарификация, Особенности оказания услуг

При MT-тарификации абонента в сервисе партнера необходимо предусмотреть откат оказанной услуги, т.к. при MT-тарификации абоненту отправляется СМС с запрошенной услугой и только после этого со счета абонента снимаются средства за услугу.

При отсутствии средств на счету абонента сервис партнера может осуществить откат оказанной услуги. Для оповещения партнера о результатах доставки СМС абоненту при MT-тарификации, на URL обработчика партнера системы отправляется повторный запрос, содержащий параметры:

Имя переменной

Тип, длина

Описание

action

varchar(15)

Передаётся значение mt_status, что обозначает передачу МТ статуса.

smsid

integer()

Уникальный идентификатор СМС сообщения в платформе «СМСРЕНТ».

status

integer()

Результат оплаты СМС абонентом. Принимает значение 1, если сообщение оплачено, или 0 - если не оплачено

 

Функция easyMT

Платформа «СМСРЕНТ» предоставляет возможность обработки МТ статуса на своей стороне (функция easyMT), тем самым позволяет вести обработку запросов от абонентов с МТ-тарификацией, аналогично запросам стандартной тарификации (МО). Данная функция активируется в настройках проекта (рис.2).

Рис.2. Активация функции easyMT

Включение easyMT актирует дополнительное поле «Текст СМС для абонента» (поле «URL-обработчик статусов МТ-тарификации» будет заблокировано). Данный текст будет отправлен абоненту до запроса на URL-обработчик (когда факт оплаты оператором еще не подтвержден).

Когда статус оплаты будет подтвержден, на Ваш обработчик будет отправлен стандартный HTTP-запрос (как и при МО-тарификации). Текст, полученный от обработчика, будет так же отправлен абоненту (дополнительное СМС сообщение).

Отправка данного сообщения платная для Вас. Стоимость СМС 30 коп. (зона Россия) или 95 коп. (зона СНГ), будет удержана из Вашего вознаграждения. Если полученный текст более 70 символов для кириллицы или 160 символов для латиницы, то отправляется составное СМС сообщение. Оплата производится за каждую часть по тарифу зоны направления.

 

Формат ответа

URL-обработчик после обработки данных должен обязательно вернуть ответ не более 480 символов в кодировке UTF-8.

В ответе запрещено использование тегов html-разметки (символы < и >).