базовый курс

ГРУППА КУРСА

Приём оплаты на WEBMONEY

Для приёма WEBMONEY на сайте используется сервис Web Merchant Interface. Он осуществляет взаимодействие между сайтом и системой WEBMONEY. Для его использования нужно произвести следующие действия:

  1. Получить нужный аттестат WEBMONEY
  2. Настроить кошелёк, на который будет производиться оплата
  3. Создать страницы сайта для взаимодействия с Web Merchant Interface
  4. Настроить получение информации о платеже

Может показаться, что для приёма оплаты нужно совершить много действий. Но эти действия понятные и простые (кроме аттестата). Поэтому приём WEBMONEY на сайте делается несложно.

Получение аттестата

Для приёма WEBMONEY на сайте требуется формальный аттестат с подтверждённым телефоном и паспортом. Для этого аттестата существуют серьёзные ограничения на максимальные суммы оплаты. На момент написания темы были такие ограничения: 5000 р. в сутки, 15000 р. в неделю, 30000 р. в месяц. Чтобы увеличить лимиты, нужно получить начальный аттестат. На нём ограничения такие: 15000 р. в сутки, 45000 в неделю, 90000 в месяц. Получить начальный аттестат можно с помощью портала госуслуг. Для отмены ограничений, нужно получить аттестат продавца. Подробнее об аттестатах можно прочитать на сайте WEBMONEY.

Настройка кошелька

Чтобы настроить кошелёк для приёма оплаты, нужно зайти на страницу системы Web Merchant Interface и нажать на ссылку с надписью "Настройки".

Настройки кошелька

Вам будет предложено авторизироваться в системе WEBMONEY, после чего Вы окажетесь на странице для настройки кошельков. Пока они не настроены. Да каждого кошелька указано "выкл". Выберите нужный кошелёк и нажмите "Настроить".

Выбор кошелька

Вы перейдёте в форму настройки кошелька. У неё есть одна странность из-за которой приходится дважды авторизироваться на WEBMONEY. До заполнения нужно прокрутить страницу вниз к кнопке "Сохранить". Рядом с ней будет надпись, что Вы вошли без подтверждения. Нажмите на ссылку для входа с подтверждением и авторизируйтесь ещё раз. После этого можно заполнять форму. В ней много полей, но обязательно нужно заполнить только основные.

Тестовый/рабочий режимы - в тестовом режиме оплата выглядит так же, как в рабочем. Но реального перевода денег не происходит. Используйте его для проверки оплаты. После тестирования нужно включить рабочий режим.

Торговое имя - можно написать название магазина или фирмы.

Secret key - пароль для безопасности. Он будет приходить вместе с информацией о платежах. Напишите здесь любой текст.

Result URL - URL, на который будут приходить данные о платежах. Если указать почту, то на неё будут приходить данные. Например mailto:ivan@mail.ru

Success URL - страница Вашего сайта, которая автоматически будет открываться у пользователя после успешного платежа. Например http://mysite.ru/success.html Рядом с URL есть поле, в котором нужно указать метод, которым открывается страница. Выбирайте POST.

Fail URL - страница Вашего сайта, которая автоматически будет открываться у пользователя при возникновении ошибки. Например http://mysite.ru/fail.html Для неё также нужно указать метод.

Остальные поля заполнять не обязательно. Подробное описание всех полей есть в руководстве по Web Merchant Interface в разделе "Параметры приёма платежей"

Страницы для приёма оплаты

На вашем сайте нужно создать станицы для взаимодействия с Web Merchant Interface:

  • Страница оплаты
  • Страница успешного платежа
  • Страница ошибки платежа

Страница платежа - эта страница, на которой пользователь производит платёж. На ней должна быть форма, приведённая далее. Атрибуты тэга <form> и имена полей должны быть точно такие, как в примере, за исключением последнего поля.

+
1
2
3
4
5
6
7
<!DOCTYPE html>
<html>
<head>
<title>Страница</title>
<meta charset="utf-8">
</head>
<body>
8
9
10
11
12
13
14
<form action="https://merchant.webmoney.ru/lmi/payment_utf.asp" method="post" accept-charset="UTF-8">
  <input type="hidden" name="LMI_PAYMENT_DESC" value="for site">
  <input type="hidden" name="LMI_PAYEE_PURSE" value="R564731585724">
  <label>Сумма: </label><input type="text" name="LMI_PAYMENT_AMOUNT">
  <div><input name="user_inform"></div>
  <div><input type="submit" value="Оплатить"></div>
</form>

Поле LMI_PAYMENT_DESC - это назначение платежа. Значение поля отображается на странице сервиса Web Merchant Interface, на которую переходит пользователь при оплате.

Поле LMI_PAYEE_PURSE - это номер кошелька. В значении нужно указать кошелёк, для которого настроен приём оплаты.

Поле LMI_PAYMENT_AMOUNT - это сумма платежа. Если оплачивается конкретный товар и цена заранее известна, то значение можно заполнить автоматически и сделать поле скрытым. А информацию о цене написать обычным текстом. Если сумму определяет пользователь, то сделайте поле видимым, как в примере.

Также есть поле user_inform. Оно не обязательное. Ему можно задать любое имя, только в начале не должно быть слова LMI. Это поле используется, чтобы пользователь мог написать примечание. Оно отправляется Вам на почту вместе с данными о платеже.

Рассмотренных полей достаточно для оплаты. В форме могут быть дополнительные поля для настройки платежа. Их описание есть в руководстве по Web Merchant Interface в разделе "Форма запроса платежа"

Кроме страницы оплаты, на Вашем сайте должны быть страницы успешного платежа и ошибки платежа. К их содержанию нет никаких требований, но их адреса должны соответствовать URL, которые Вы указали при настройке кошелька в полях Success URL и Fail URL. Одна из этих страниц открывается у пользователя после оплаты.

При открытии эти страницы получают часть данных о платеже, которые могут быть интересны пользователю. Метод, которым отправляются данные, Вы указали при настройке кошелька. Я рекомендую использовать метод POST. В страницах можно создать PHP скрипты, которые получают эти данные и выводят на страницу. Но это не обязательно. Достаточно создать простые HTML страницы. На первой написать, что платёж принят. На второй, что произошла ошибка.

Данные, которые получают страницы описаны в руководстве по Web Merchant Interface в разделе "Форма выполненного платежа".

Информация о платеже

Когда пользователь произвёл платёж, владельцу сайта нужно об этом узнать. Это обеспечивается при настройке кошелька. В форме настройки есть поле Result URL. В нём Вы указываете URL, на который приходят данные о платеже. Я рекомендовал указывать почту. Данные содержат всю важную информацию о платеже:

LMI_PAYMENT_AMOUNT - сумма платежа

LMI_PAYEE_PURSE - кошелёк, на который поступили средства

LMI_PAYER_PURSE - кошелёк плательщика

LMI_MODE - режим. 1 - тестовый, 0 - рабочий

LMI_SYS_TRANS_DATE - время платежа

LMI_PAYMENT_DESC - назначение платежа. Вы указывали его на странице оплаты в поле LMI_PAYMENT_DESC

Если на странице оплаты вы создавали дополнительное поле без слова LMI, то значение этого поля тоже придёт с остальными данными.

Кроме указанных, приходит много других данных. Их описание есть в руководстве по Web Merchant Interface в разделе "Форма оповещения о платеже".

На некоторых сайтах автоматически производятся какие-то действия при платеже. Например, пользователь совершает оплату и сразу получает доступ к платным возможностям сайта. Для этого данные о платеже должны приходить не на почту, а на специальную страницу сайта. Её адрес нужно указать при настройке кошелька в поле Result URL. На странице должен быть PHP скрипт, который принимает данные и совершает определённые действия в зависимости от этих данных.

Мошенники могут запустить страницу без реальной оплаты. Для защиты от этих действий существует пароль. Вы указываете его при настройке кошелька в поле Secret Key. Пароль приходит в данных о платеже в параметре LMI_SECRET_KEY. Если пароль правильный, значит данные выслала система Web Merchant Interface, а не кто-то другой. Пароль высылается, только если сайт использует безопасное соединение, то есть, протокол https. Если протокола https нет, то можно использовать контрольную подпись. Но это значительно сложнее.

Данные о платеже могут быть оправлены дважды. Первый раз перед платежом, второй - после платежа. Для этого в настройках кошелька нужно установить флаг в поле "Передавать параметры в предварительном запросе". На предварительную отправку сервер должен отправить в ответ слово "YES", иначе платёж произведён не будет. Это можно использовать для проверки параметров платежа до его совершения. И если что-то неправильно, то сервер может не отправлять слово "YES" и запретить платёж. При первой оправке присутствует параметр LMI_PREREQUEST со значением: 1. Он означает, что это предварительная отправка данных.