
Не уверены, какую услугу выбрать? Обратитесь к странице сравнения наших услуг!
Также обратите внимание на готовые скрипты.
Реализация смс:банка напоминает по своей структуре платежный шлюз; пользователь инициирует транзакцию, заполняя форму, расположенную у Вас на сайте, после чего производит собственно платеж, отправляя на указанный номер определенным образом составленное сообщение. Можно выделить как минимум три необходимых составных части такой реализации:
- Форма, инициирующая транзакцию (одна или несколько);
- Страницы выяснения статуса платежа (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 формы, инициирующей транзакцию. Код, генерирующий форму, содержится в примерах кода (см. выше).
Проверьте, что указанная в форме стоимость соответствует допустимым тарифам в одной из выбранных стран (стоимость смс не может быть больше, чем максимальный доступный тариф для каждой страны).