SMS-платежи: как это работает

от автора

Почему SMS-платежи?

Сейчас никого не удивишь возможностью оплаты услуг путём отправки SMS-сообщения на определённый «короткий номер». Даже самый далёкий от интернетов человек мог услышать по телевизору: «Отправьте SMS на номер XXXX, чтобы проголосовать за YYYY», а внизу экрана увидеть надпись: «* стоимость отправки 30руб». Ниже я рассажу, как это работает.

Плюсы

Чем же этот способ оплаты так хорош? Вот основные, на мой взгляд, аргументы:

  1. Удобство оплаты
    Сегодня мобильный телефон есть почти у каждого жителя страны, а значит и возможность такого способа оплаты есть практически у каждого. Для использования требуется минимум телодвижений: взять телефон и набрать небольшой текст, а если оплата происходит из мобильного приложения (например, игры), то обычно пользователю остаётся только пару раз нажать кнопочку «ОК» — приложение само сформирует и отошлёт SMS-сообщение.
    Несмотря на то, что бОльшая часть той суммы, что списывается со счёта абонента, уходит в карман оператору, размер доступной аудитории с лихвой покрывает эту разницу: даже если предположить, что продавец получает одну треть от стоимости SMS, ему достаточно иметь всего лишь в три раза большую аудиторию, чем требуется, чтобы зарабатывать те же суммы, используя прямые (без комиссии) способы оплаты.
  2. Удобство обработки платежей
    Обработка SMS-платежей может быть полностью автоматизирована. А если предоставление продаваемой услуги также может быть автоматизировано, то это означает возможность полной автоматизации всего процесса.
Минусы

  1. Небольшой процент
    К сожалению, в лучшем (для продавца) случае 40% от стоимости SMS уходит оператору, а поскольку между продавцом и оператором может быть еще несколько посредников (об этом ниже), то, в конечном счёте, продавец может получать, скажем, всего 10-20% стоимости.
  2. Фиксированная стоимость
    Стоимость отправки SMS-сообщения на короткий номер определяется заранее на уровне оператора, поэтому единственная возможность дифференцировать размер оплаты – использовать несколько коротких номеров с разными стоимостями.

Жизненный цикл SMS-сообщения

Виды тарификации

Существует два вида тарификации:

  • МО-тарификация («Mobile Originated»)
    Стоимость списывается со счёта абонента в момент отправки SMS-сообщения на определенный короткий номер.
  • МТ-тарификация («Mobile Terminated»)
    Стоимость списывается со счёта абонента в момент получения SMS-сообщения.
    Точнее, сначала пользователь отсылает SMS на короткий номер (деньги за это не взимаются), затем проверяется, достаточно ли у абонента денег, чтобы оплатить услугу, и готов ли продавец данную услугу предоставить. Если все хорошо, то абоненту отсылается сообщение, за которое и взимается плата.

Какой именно вид тарификации используется в конкретном случае, зависит от страны, оператора, короткого номера.

Жизненный цикл SMS в МО
Жизненный цикл SMS в МТ

Агенты платёжной сети

  1. Операторы
    Ясное дело, это те, кто предоставляет абонентам услуги связи. Для предоставления услуг каждый оператор выделяет у себя ряд коротких номеров, которые он сдаёт в аренду. Короткий номер имеет отношение только к тому оператору, к которому подключен данный абонент, т.е. SMS-сообщение на короткий номер обрабатывается только данным оператором связи. Оператор «отщипывает» себе львиную долю от стоимости SMS.
  2. Агрегаторы
    Операторам обычно не интересно иметь дело с индивидуальными продавцами, поскольку им нужен постоянный и большой SMS-трафик, поэтому операторы договариваются с агрегаторами, которые являются посредниками между ними и продавцами.
    Агрегатору желательно чтобы SMS-сообщения на короткий номер XXXX доходили до него независимо от того, какой у абонента оператор (иначе придется заставлять абонента выяснять, какой у него оператор и самостоятельно выбирать соответствующий короткий номер), поэтому он отдельно договаривается с каждым оператором и берет у них в аренду номер XXXX. Естественно, если какой-то из популярных операторов не хочет сдавать в аренду нужный номер, то агрегатору выгоднее поискать другой номер, на который согласятся большинство операторов.
    Оператор и агрегатор договариваются о стоимости коротких номеров между собой и о доле каждого в стоимости SMS. Естественно, агрегатору надо, чтобы стоимость одного и того же короткого номера у разных операторов, была хотя бы примерно одинакова, однако небольшая разница всегда будет. У одного оператора один и тот же короткий номер может стоить, например, 150 рублей, а у другого – 165.
  3. Субагрегаторы
    Агрегаторам, на самом деле, тоже не всегда выгодно работать напрямую с продавцами, поэтому они могут договариваться с субагрегаторами.
    Субагрегатор обычно с одной стороны договаривается с одним или несколькими агрегаторами (например, потому что у разных агрегаторов может быть разное покрытие по странам и разные тарифные сетки), а с другой – с продавцами. Например, субагрегатором может быть какая-либо партнёрская система, которая осуществляет продажи не самостоятельно, а через своих партнёров. Субагрегатор и агрегатор договариваются между собой, как они делят стоимость SMS, оставшуюся после того, как свою долю забрал оператор.
    Конечно, ничто не мешает существованию суб-субагрегаторов и т.д., но поскольку на каждом этапе от остаточной стоимости SMS «отщипывается» значительный кусок, этому процессу имеется разумное ограничение.
  4. Продавцы
    Собственно — те, кто непосредственно предоставляет услуги, конечное звено цепи. Продавцы договариваются с (суб-)агрегатором на свою долю от SMS.
Способы определения стоимости и адресата SMS-платежа

Обычно стоимость и агрегатор-адресат SMS-сообщения определяются только коротким номером, на который оно было отправлено, но на самом деле так происходит не всегда. В некоторых случаях она выясняется по содержимому текста SMS. Агрегатор может договориться с оператором, что стоимость SMS на данный номер будет определяться по так называемому «префиксу» — заранее оговорённому сочетанию символов в начале текста SMS. Например, может быть решено, что данному агрегатору уходят все SMS на номер XXXX, начинающиеся с текста «AGREG1» или «AGREG2», причём первые будут стоить $1 а вторые — $2.

Поскольку у агрегатора ограниченное число номеров, он обычно договаривается с субагрегатором, что тому уходят SMS, с определенных коротких номеров и начинающиеся с привязанного к нему префикса, например, «SUB». В случае, когда стоимость устанавливается по префиксу, он может быть двусложный, например «AGREG1 SUB» (далее идет текст существенный для субагрегатора).

В свою очередь субагрегатор может так же вычислять продавца по префиксу следующего уровня («AGREG1 SUB SELLER1»), либо как-то еще зашифровывать идентификатор продавца в теле SMS.

Полная идентификация адресата и стоимости SMS определяется по параметрам:
Страна — Оператор — Короткий номер — Текст SMS.

Технические подробности

Интерфейс субпартнера

Как правило, все агенты сети, начиная с оператора и заканчивая субагрегатором, предоставляют своим субпартнёрам инструмент для получения статистики по SMS-платежам. Обычно он выполнен в виде сайта, на котором субпартнёр может зарегистрироваться, завести свои проекты, посмотреть текущую статистику SMS и доходов, получить различные отчёты.

Транспортная система

Кроме пользовательского интерфейса, операторы и агрегаторы (а иногда и субагрегаторы) предоставляют программный интерфейс для двустороннего взаимодействия. Этот интерфейс реализуется в виде веб-скриптов, которые делают http(s)-запросы друг к другу при необходимости передачи какой-либо информации.

Рассмотрим на примере взаимодействия агрегатора и субагрегатора.
Каждый агрегатор использует свой протокол и предоставляет свой набор возможностей, стандартного протокола нет, но есть набор стандартных данных, которые так или иначе предоставляются агрегатором субпартнёру при получении SMS-сообщения:

  • Текст SMS-сообщения
    В некоторых случаях текст может доставляться без префикса, или префикс может доставляться в отдельном поле
  • Короткий номер
    Номер, на который было отправлено сообщение. Требуется для определения стоимости и типа сервиса.
  • Страна
    Услуга может предоставляться в разных странах, а значит, по разным ценам. Иногда страну приходится определять по идентификатору оператора.
  • Оператор
    Некий идентификатор оператора. У разных операторов разные цены.

Другие возможные данные:

  • Идентификатор сессии
    Предоставляется большинством агрегаторов. Используется для определения того, какой из запросов пользователя мы в данный момент обрабатываем. Например, для МТ-тарификации первый запрос может содержать описание SMS и ID сессии, а второй – отчёт о доставке – только ID сессии и состояние платежа (доставлен/отменен/ожидается).
    ID сессии также может быть использован при ответе от субагрегатора агрегатору. Дело в том, что чаще агрегаторы получают ответ сразу в результате http-запроса (т.е. сервер агрегатора совершает http-запрос к серверу субагрегатора, в ответ на него субагрегатор отсылает результат обработки запросов), но иногда агрегатор требует ответа не в том же запросе, а в обратном параллельном (т.е. получив запрос от агрегатора субагрегатор сразу отвечает «ОК, получил», затем обрабатывает его и уже сам делает новый http-запрос к серверу агрегатора, в котором передаёт уже настоящий результат плюс ID сессии, чтобы было понятно, о каком SMS-сообщении идёт речь).
  • Номер телефона абонента
    Иногда предоставляется полностью, иногда частично, иногда вообще не предоставляется
  • Идентификатор абонента
    Предоставляется некоторыми системами в виде внутреннего (для агрегатора) идентификатора абонента.
  • Номер попытки
    Иногда агрегатор не может с первого раза достучаться до сервера субагрегатора, тогда он может повторить тоже самый запрос через некоторое время, но указав новый номер попытки связи (0 — для первой попытки, 1 – для второй и т.д.). Если за определенный период агрегатор не достучался до субагрегатора, то он может отменить обработку платежа.
  • Время осуществления запроса
    Может потребоваться для более точной идентификации сообщения, если время на сервере агрегатора и субагрегатора не синхронизировано.

Кроме того, могут передаваться: внутренний (для агрегатора) идентификатор короткого номера, идентификатор тарифа, полная стоимость SMS, доход субагрегатора, валюта, в которой совершен платёж, и прочее.

В ответ субагрегатор обычно отправляет текст SMS, который надо отправить абоненту и/или описание ошибки.

Некоторые агрегаторы позволяют субагрегатору отправлять SMS-сообщения, когда ему необходимо (не в ответ на SMS абонента, а в качестве рассылки), на указанный номер, но плата за это взимается уже с самого субагрегатора. Так же некоторые агрегаторы позволяют разбивать ответ на несколько сообщений.

Обеспечение безопасности связи

Для безопасности связи используются следующие способы:

  • Использование зашифрованных протоколов
  • Шифрование текста запроса с использованием заранее заданного пароля
  • Передача заранее заданного пароля в тексте запроса без использования шифрования
  • Передача MD5-хэша от заранее заданного списка полей, включающих пароль
  • Ограничение списка IP, с которых могут приниматься запросы

Вместо заключения.

Конечно, в своей статье я не указал все возможные нюансы, а некоторые вещи рассказал крайне размыто, но я постарался дать теоретическую базу, которой совершенно достаточно, чтобы увидеть систему с высоты птичьего полёта, и использовать как руководство к действию.

Спасибо за внимание!

ссылка на оригинал статьи http://habrahabr.ru/post/168987/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *