Русский RUS  English ENG

смс:банк

смс:банк

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

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

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

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

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

Обратите внимание, что для установки смс:банка вам в любом случае понадобится использовать один из скриптовых языков (например, PHP).

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

Форма, инициирующая транзакцию

Пример HTML-разметки формы, дающей пользователю возможность инициировать транзакцию, приведен ниже. Не забудьте заменить xxxx на идентификатор группы, который можно узнать, войдя в Панель управления, раздел Банки, по ссылке "Адрес шлюза".

<form action="http://xxxx.bank.smscoin.com/bank/" method="POST">
<input name="s_purse" type="hidden" value="1" />
<input name="s_order_id" type="hidden" value="1234" />
<input name="s_amount" type="hidden" value="0.1" />
<input name="s_clear_amount" type="hidden" value="0" />
<input name="s_description" type="hidden" value="Демонстрационный платеж" />
<input name="s_sign" type="hidden" value="0123456789abcdef0123456789abcdef" />
<input type="submit" value="Pay" />
</form>

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

Параметр Тип Описание
s_purse int Идентификатор Вашего смс:банка в системе.
s_order_id int Идентификатор операции (произвольное число, служит для соотнесения инициированной транзакции с ее результатом).
s_amount float Сумма транзакции, USD.
s_clear_amount int(1) Алгоритм подсчета стоимости услуги для пользователя. Если 0, то значение s_amount представляет собой конечную стоимость для пользователя, иначе - значение s_amount выражает ожидаемую Вами прибыль от операции; стоимость для каждого пользователя будет варьироваться в зависимости от действующих тарифов и условий приема сообщений местными сотовыми операторами.
s_description char(127) Описание операции (произвольная строка длиной не более 127 символов, служит для удобства разграничения целевых платежей). Обрабатывается как UTF-8.
s_sign char(32) MD5-хэш строки, состоящей из соединенных через двойное двоеточие ("::") параметров s_purse, s_order_id, s_amount, s_clear_amount, s_description и secret_code (в указанном порядке), где secret_code - секретный ключ Вашего смс:банка.

В случае, если указанная в параметре s_amount сумма выходит за рамки доступных для той или иной страны тарифов, такая страна автоматически исключается из списка обслуживаемых в рамках данного смс:банка.

Настройка языка интерфейса

По умолчанию все наши сервисы используют русский язык; в том случае, если часть Ваших пользователей не является русскоязычной, или Вы по каким-то другим причинам решили сменить используемый язык сервиса, просто измените адрес запроса в приведенном выше коде с

http://xxxx.bank.smscoin.com/bank/

на

http://xxxx.bank.smscoin.com/language/english/bank/

Вместо english можно указать любой из поддерживаемых системой языков.

Страницы выяснения статуса платежа

Страницы выяснения статуса платежа принимают от сервера следующие параметры:

Параметр Тип Описание
s_purse int Идентификатор Вашего смс:банка в системе.
s_order_id int Идентификатор операции (произвольное число, служит для соотнесения инициированной транзакции с ее результатом).
s_amount float Точное значение транзакции, с учетом алгоритма работы (см. ниже), USD.
s_clear_amount int(1) Алгоритм подсчета стоимости услуги для пользователя. Если 0, то значение s_amount представляет собой конечную стоимость для пользователя, иначе - значение s_amount выражает ожидаемую Вами прибыль от операции; стоимость для каждого пользователя будет варьироваться в зависимости от действующих тарифов и условий приема сообщений местными сотовыми операторами.
s_status int(1) Статус платежа: 1 - прошел, 0 - не прошел.
s_sign char(32) MD5-хэш строки, состоящей из соединенных через двойное двоеточие ("::") параметров secret_code, s_purse, s_order_id, s_amount, s_clear_amount и s_status (в указанном порядке), где secret_code - секретный ключ Вашего смс:банка.

Обработчик статуса платежа

Обработчик статуса платежа принимают от сервера следующие параметры:

Параметр Тип Описание
s_purse int Идентификатор Вашего смс:банка в системе.
s_order_id int Идентификатор операции (произвольное число, служит для соотнесения инициированной транзакции с ее результатом).
s_amount float Точное значение транзакции, с учетом алгоритма работы (см. ниже), USD.
s_clear_amount int(1) Алгоритм подсчета стоимости услуги для пользователя. Если 0, то значение s_amount представляет собой конечную стоимость для пользователя, иначе - значение s_amount выражает ожидаемую Вами прибыль от операции; стоимость для каждого пользователя будет варьироваться в зависимости от действующих тарифов и условий приема сообщений местными сотовыми операторами.
s_inv int Порядковый номер операции в системе.
s_phone char(32) Номер телефона, с которого было проведено подтверждение операции.
s_sign_v2 char(32) MD5-хэш строки, состоящей из соединенных через двойное двоеточие ("::") параметров secret_code, s_purse, s_order_id, s_amount, s_clear_amount, s_inv и s_phone (в указанном порядке), где secret_code - секретный ключ Вашего смс:банка.

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

Пример работы сервиса можно увидеть здесь.

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

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

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

Я перехожу по адресу, указанному в настройках сервиса, и вижу сообщение об ошибке

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

В списке на странице оплаты нет ни одной страны

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