Модуль WebMoney

Назначение модуля

Модуль WebMoney предназначен для проведения платежей через систему Merchant WebMoney Transfer. Для работы в нетестовом режиме у вас должен быть аттестат продавца (разновидность персонального) системы WebMoney

Настройка модуля

Проинсталируйте модуль на сервер, обновите клиент. Затем создайте экземпляр модуля. Создайте в редакторе конфигурации модуля новую конфигурацию, включите режим редактор ШАБЛОН и заполните необходимы епараметры, сохраните конфигурацию и сделайте её активной.

images/download/attachments/43385680/wm_config.png

Настройте сервис MerchantWM

На сайте Webmoney в Личном кабинете выполните настройки торгового кошелька

images/download/attachments/43385680/wm_5.gif

Введите торговое имя, secretkey, оставьте пустыми поля URL, галочку на Высылать SecretKey. Поставьте галочку на "Передавать параметры в предварительном запросе", "Позволять использовать URL, передаваемые в форме" и ,если необходимо, "Высылать оповещение об ошибке платежа на кипер".

Установите метод вызова Succes URL и Fail URL на POST.

Переключите Активность на Вкл.

Переключение из тестового в рабочий режим возможен только при наличии аттестата продавца.

Проведение платежа из Личного кабинета

Если у абонента подключён экземпляр модуля, то он может произвести оплату услуг через Web-интерфейс (пункт меню Оплата через WebMoney). Здесь же клиент может просмотреть все проведённые им платежи через WM:

images/download/attachments/43385680/wm_3.gif

При нажатии кнопки Пополнить счёт клиент попадает на новую страницу, с формой для ввода суммы.

images/download/attachments/43385680/wm_4.gif

При нажатии кнопки Принять клиент сначала переходит на страницу подтверждения биллинга, а затем к системе Merchant WebMoney Transfer, где может выбрать удобный для себя способ оплаты.

Безопасность

При нажатии клиентом кнопки Подтверждаю платёж Merchant WM последовательно производит два запроса в биллинг: предварительный и оповещающий об оплате. При первом запросе модуль проверяет правильность данных и разрешает или же запрещает (например, если модуль в режиме выключен) проведение оплаты на кошелёк. Если биллинг разрешил платёж WebMoney Transfer сразу же (!) производит транзакцию и отправляет второй, оповещающий запрос, в котором, кроме служебных данных, посылается контрольная подпись, созданная из суммы этих служебных данных (почти все из них уникальны) и secretkey (который в запросе не посылается). Модуль проверяет контрольную сумму и, если она совпала, пополняет баланс клиента.

Таким образом secretkey должен быть длинным и не подбираемым (в системе Merchant WM secretkey может быть длиной до 50 символов).

Внимание! В предварительном запросе Merchant WM не посылает контрольную подпись, поэтому если в момент платежа в конфиге биллинга и настройках Merchant WM secretkey будут различными, то транзакция будет проведена, но баланс в биллинге не пополнится. Поэтому при изменении secretkey и вообще при изменении каких-либо параметров модуля настоятельно рекомендуется перевести режим модуля в состояние выключен опцией wm.mode=0, подождать завершения транзакций, которые могут проходить в данный момент (при стабильной работе оба запроса происходят практически в одно время) и только потом изменять настройки.

Все платежи, не прошедшие проверку контрольной подписи (но прошедшие все другие проверки), попадают в базу как не проведённые.

Монитор транзакций

В параметрах договора можно посмотреть все платежи, как проведённые, так и не проведённые (см. Безопасность)

images/download/attachments/43385680/wm_1.gif

В параметрах модуля есть глобальный монитор

images/download/attachments/43385680/wm_2.gif

Коды ошибок

Ошибки проведения платежа представлены в битовой маске, т.е ошибка 384(110000000) это две ошибки из списка:

  • 0x01 - 1 - неверный запрос (не все и/или неправильные параметры, подразумевается запрос не от merchant)

  • 0x02 - 10 - 0x04 - 100 - неверная подпись в запросе (либо неверно указан secretkey в конфиге, либо запрос не от merchant)

  • 0x08 - 1000 - в запросе указан кошелёк, отличный от указанного в конфигурации

  • 0x10 - 10000 - тестовый режим merchant, но не тестовый режим модуля

  • 0x20 - 100000 - в запросе неверно указан номер (id) платежа

  • 0x40 - 1000000 - в запросе неверно указан cid договора

  • 0x80 - 10000000 - в запросе неверно указана сумма платежа

  • 0x0100 - 100000000 - платёж уже помечен как оплаченный

  • 0x0200 - 1000000000 - платёж с таким инвойсом уже есть в базе

  • 0x0400 - 10000000000 - платёж с таким номером транзакции уже есть в базе

  • 0x0800 - 100000000000 - модуль в режиме выключен

  • 0x1000 - 1000000000000 - в конфиге указан id не существующего типа платежа