Русский RUS  English ENG

смс:транзит

смс:транзит

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

Также обратите внимание на готовые скрипты.

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

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

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

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

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

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

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

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

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

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

http://service.smscoin.com/xml/transit/идентификатор транзита/all/

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

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

http://service.smscoin.com/xml/transit/идентификатор транзита/

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

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

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

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

Пример кода, работающего с тарифной сеткой в формате XML, можно скачать здесь

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Часто задаваемые вопросы

Что произойдет, если сервер окажется недоступен?

Наш сервис автоматически повторяет неудачные HTTP-запросы каждые несколько минут. Таким образом, если ваш сервер был недоступен, данные не потеряются.

Уходит ли ответное сообщение в таком случае?

Чаще всего да. Следует принимать во внимание, что отправка ответных сообщений зависит от многих факторов.

Мне на e-mail приходят сообщения об ошибках доступа, почему?

В случае, если ваш сервер недоступен, мы отправляем всю информацию о запросе на ваш электронный адрес. Это делается для облегчения отладки сервиса с вашей стороны.