Построй свой бизнес за полчаса!

Докучаев Дмитрий aka Forb

Xakep, номер #054, стр. 054-064-3


<input type="hidden" name="LMI_PAYMENT_NO" value="1">

<input type="hidden" name="LMI_PAYEE_PURSE" value="Z145179295679">

<input type="hidden" name="LMI_SIM_MODE" value="0">

<input type="submit" value="submit">

</form>

Это пример самой короткой формы с основными и обязательными параметрами. Коротко скажу, что они означают:

LMI_PAYMENT_AMOUNT - сумма, которая должна быть перечислена на счет. Указывается с точностью до первого знака.

LMI_PAYMENT_DESC - описание платежа, будет высвечиваться в самом верху формы Merchant'а.

LMI_PAYEE_PURSE - кошелек, на который должен осуществиться перевод. Состоит из цифры (идентификатор валюты) и 12-значного кода.

LMI_SIM_MODE - режим работы системы. При значении 0 - режим тестовый, то есть система эмулирует нормальный перевод денег, но на самом деле счета остаются без изменений. Устанавливать рабочее значение 1 следует только в случае полной уверенности в правильной работе системы!

Теперь все готово. Осталось настроить Merchant для согласованной работы с твоей формой. Заходим на https://merchant.webmoney.ru, ползем в раздел "Настройка" и авторизуемся в WebMoney. Перед тобой появится форма, которую необходимо заполнить.

Торговое имя - подставь в это поле название своего проекта, чтобы пользователь знал, за что же он платит.

Secret Key - пароль для проведения оплаты. Поставь сюда любую последовательность символов.

Result URL - ссылка, на которую будут передаваться параметры платежа. Напиши значение http://your.e-shop.ru/cgi-bin/check_pay.cgi.

Success URL и Fail URL - соответственно ссылки на документы, которые ты составлял чуть выше.

Метод формирования контрольной подписи - MD5.

Тестовый/Рабочий режимы - тестовый (не изменяй, пока не убедишься в правильной работе системы!).

Доверяй, но проверяй!

Система платежей бесспорно надежна, но от лишней проверки хуже никому не станет. Как ты думаешь, почему я указал ссылку на несуществующий скрипт check_pay.cgi в параметре Result URL? Потому что сейчас мы займемся кодингом и составим этот скрипт, задачей которого будет доведение процесса до автоматизма - проверка MD5-подписи и отсылка оповещающего e-mail клиенту. Не буду тебе пересказывать изнуряющие мануалы Merchant'а, скажу только, что проверка ключа происходит путем сравнения параметров, заданных в скрипте и приходящих через QUERY_STRING. Для корректной работы, нам понадобится модуль Digest::MD5 (он поставляется с дистрибутивом Perl). Вот краткий код скрипта:

use CGI qw(:standard);

use Digest::MD5 qw(md5_hex);

$LMI_PAYEE_PURSE=param('LMI_PAYEE_PURSE');

$LMI_PAYMENT_AMOUNT=param('LMI_PAYMENT_AMOUNT');

$LMI_PAYMENT_NO=param('LMI_PAYMENT_NO');

$LMI_MODE=param('LMI_MODE');

$LMI_SYS_INVS_NO=param('LMI_SYS_INVS_NO');

$LMI_SYS_TRANS_NO=param('LMI_SYS_TRANS_NO');

$LMI_SYS_TRANS_DATE=param('LMI_SYS_TRANS_DATE');

$LMI_SYS_TRANS_DATE=~s/\%3A/\:/g;

$LMI_SYS_TRANS_DATE=~s/\%20/ /g;

$LMI_PAYER_PURSE=param('LMI_PAYER_PURSE');

$LMI_PAYER_WM=param('LMI_PAYER_WM');

$lmihash=param('LMI_HASH');

## Берем все параметры из QUERY_STRING.

Назад на стр. 054-064-2  Содержание  Вперед на стр. 054-064-4