MobilGate

Не уверены, какую услугу выбрать? Обратитесь к странице сравнения наших услуг!

Техническое описание

Принцип работы MobilGate предельно прост: пользователь отправляет сообщение, агрегатор передает его вместе со всеми сопутствующими данными указанному Вами в настройках (поле Result URL) скрипту при помощи HTTP-запроса, возвращаемая скриптом строка отсылается обратно пользователю.

В случае, если на момент отправки запроса скрипт оказывается недоступен по указанному адресу (HTTP статус обращения отличается от 200 OK), на Ваш электронный адрес отправляется письмо с данными сообщения, а пользователь получает заранее заготовленный для таких случаев ответ.

В дополнение к основному обработчику сообщений в настройках MobilGate Вы также можете указать скрипт подтверждения статуса сообщения (Status URL). Подтверждение статуса необходимо для стран, работающих с системой MT-биллинга; рекомендуется использовать данную возможность всегда.

Используя MobilGate, Вы можете принимать сообщения по всем тарифам, доступным в каждой из стран - в этом заключается концептуальное отличие данной услуги от любой другой предоставляемой нами. Вы можете использовать эту особенность, но также можете и указать фиксированный тариф в настройках сервиса; и та, и другая возможность детально описаны ниже.

Динамическая тарификация

В случае, если в настройках сервиса Вы не указали стоимость отправляемого пользователем сообщения (или, что равнозначно, указали ее равной нулю), Вы автоматически работаете со всеми доступными в каждой стране тарифами, как было сказано выше. При таком использовании сервиса Ваш обработчик результатов транзакции (Result URL) должен учитывать стоимость присланного пользователем сообщения. Обратите внимание, что расценки на отправку платных сообщений варьируются от оператора к оператору и от страны к стране; возможно, Вам придется учесть случай, когда пользователь физически не может прислать Вам сообщение необходимой стоимости, поскольку в его стране подобный тариф не поддерживается.

Во всех поддерживаемых странах (кроме, на данный момент, Великобритании) для каждого тарифа существует свой номер для отправки сообщений; фактически, в зависимости от номера определяется стоимость сообщения. Для того, чтобы сообщение было ассоциировано с Вашим сервисом, оно должно иметь вид

префикс идентификатор MobilGate текст сообщения

и быть отправлено на действующий в рамках страны номер. Задача по предоставлению пользователю всей необходимой для отправки сообщения информации ложится на Ваши плечи; все релевантные данные в формате XML доступны по адресу вида

http://engine.mobilcent.com/xml/gate/идентификатор MobilGate/all/

Статическая тарификация

Если в настройках сервиса Вами была указана отличная от нуля стоимость сообщения, то Вы используете статическую тарификацию. Тарифная сетка Вашего MobilGate всегда доступна в формате XML по адресу вида

http://engine.mobilcent.com/xml/gate/идентификатор MobilGate/

Упомянутый XML-файл содержит также информацию о номерах, на которые пользователи должны отправлять сообщения (поле number), и префиксах, необходимых для обработки сообщений нашей системой (поле prefix); в разных странах, соответственно, действуют разные номера и префиксы. Для того, чтобы сообщение было ассоциировано с Вашим сервисом, оно должно иметь вид

префикс идентификатор MobilGate текст сообщения

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

Если какая-либо страна не фигурирует в упомянутой выше тарифной сетке, значит, в данной стране отсутствует выбранный Вами при настройке тариф и она таким образом исключена из обработки; сообщения, отправленные пользователями, проживающими на территории этой страны, будут проигнорированы.

Детали реализации

Обработчик сообщений (Result URL) принимает следующие параметры:

Параметр Тип Описание
country cha r()(2) Двухбуквенный код страны.
shortcode int Номер, на который было отправлено сообщение.
provider cha r()(16) Использовавшийся оператор сотовой связи (в случае, если эта информация релевантна).
prefix cha r()(16) Префикс полученного сообщения.
cost_local float Стоимость полученного сообщения в местных денежных единицах.
cost_usd float Стоимость полученного сообщения в USD.
phone cha r()(32) Номер, с которого было отправлено сообщение, включая код страны; для некоторых стран вместо актуального номера передается некий уникальный идентификатор абонента в системе.
msgid cha r()(32) Уникальный идентификатор сообщения.
sid int Идентификатор используемого сервиса в нашей системе.
content cha r()(128) Текст сообщения.
sign cha r()(32) MD5-хэш строки, состоящей из соединенных через двойное двоеточие ("::") параметров secret_code, country, shortcode, provider, prefix, cost_local, cost_usd, phone, msgid, sid и content (в указанном порядке), где secret_code - секретный ключ Вашего MobilGate.

Обратите внимание, что обработчик должен возвращать HTTP-статус 200 OK и строку ответа, которая будет отправлена пользователю. Ответы в формате текст@@@ссылка (например, example@@@http://example.com) при отправке пользователю автоматически преобразуются в WAP-ссылки (работает только в России, Украине, Казахстане, Израиле и Литве). Строка @@@ является зарезервированной, и не должна использоваться в обычных ответах.

Скрипт подтверждения статуса сообщения (Status URL) принимает следующие параметры:

Параметр Тип Описание
msgid cha r()(32) Уникальный идентификатор сообщения.
phone cha r()(32) Номер, с которого было отправлено сообщение, включая код страны; для некоторых стран вместо актуального номера передается некий уникальный идентификатор абонента в системе.
status cha r()(16) Статус сообщения (см. ниже).
sign cha r()(32) MD5-хэш строки, состоящей из соединенных через двойное двоеточие ("::") параметров secret_code, msgid, phone и status (в указанном порядке), где secret_code - секретный ключ Вашего MobilGate.

Статусы сообщений

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

  • delivered - сообщение доставлено и оплачено;
  • rejected - пользователь отказался от оплаты;
  • failed - сообщение не было доставлено;
  • fraud - оплата сообщения не подтверждена или была отменена; как правило, это происходит в результате попыток мошенничества со стороны абонента либо в результате нарушения пользовательского соглашения владельцем сервиса. Подразумевается, что этот статус может быть присвоен сообщению в том числе и после подтверждения об успешной оплате.

Для всех остальных стран сообщение по умолчанию считаться оплаченным, а скрипт подтверждения статуса вызывается только в случае присвоения сообщению статуса fraud'а, т. е. если оплата не была подтверждена (подробнее см. выше).

В Израиле, в дополнение к fraud, существуют два дополнительных статуса - unconfirmed (пользователь не подтвердил оплату) и timeout (ответ не был получен за отведенное сервером время).

Примеры реализации

Скачать исходный код на PHP, Perl, ASP.NET.

Обратите внимание: примеры носят весьма иллюстративный характер, поэтому без существенной доработки применять их на практике не рекомендуется.