WebMoney Wiki

Wiki

Web Merchant Interface

Описание интерфейса сервиса Web Merchant Interface

Содержание

Основные термины

Продавцом считается участник WebMoney Transfer, принимающий на свой WM-кошелек оплату от других участников системы с помощью сервиса Web Merchant Interface. Предполагается, что продавец принимает оплату за товары или услуги, предоставляемые им через Интернет, и следовательно, имеет собственный веб-сайт.

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

Описание интерфейса Web Merchant Interface

ПАРАМЕТРЫ ПРИЕМА ПЛАТЕЖЕЙ

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

Настройка параметров выполняется на странице Настройки сайта сервиса — merchant.webmoney.ru.

Для каждого кошелька, на который продавец принимает платежи, в сервисе хранится свой набор значений.

Полный перечень параметров и их назначение приведено ниже:

Название параметра Формат Описание
Тестовый/Рабочий режимы - Флаг, устанавливающий режим обработки платежей в сервисе. В тестовом режиме Web Merchant Interface имитирует выполнение платежей (реально платежи не выполняются). По умолчанию выставляется тестовый режим. В тестовом режиме возможна оплата только через WM Keeper. Если флаг установлен в состояние "Выкл.", Web Merchant Interface во всех случаях будет сообщать покупателю о невозможности выполнения платежа. В рабочем режиме платежи идут обычным порядком.
Торговое имя 50 символов Информация, которая будет показана покупателю при оплате. В данном поле целесообразно указать торговую марку, название сайта, сервиса, магазина и другую информацию, которая характеризует продаваемые через данный кошелек товары и услуги.
Secret Key 50 символов (case sensitive) Строка символов, добавляемая к реквизитам платежа, высылаемым продавцу вместе с оповещением на Result URL. Эта строка используется для повышения надежности идентификации высылаемого оповещения. Содержание строки известно только сервису Web Merchant Interface и продавцу!
Эта же строка символов используется в XML-интерфейсах, связанных с Web Merchant Interface и помогающих в его работе и использовании. К таким интерфейсам относятся, например, Интерфейс X18 или Интерфейс X20.
Высылать Secret Key на Result URL, если Result URL обеспечивает секретность - Флаг, сообщающий сервису Web Merchant Interface о том, что Secret Key должен быть добавлен к высылаемому на веб-сайт продавца оповещению о платежах в том случае, если канал обеспечивает безопасную передачу на Result URL (используется протокол SSL, то есть Result URL имеет префикс "https://").
Если Result URL не использует SSL, то Secret Key высылаться не будет, даже если флаг установлен. Secret Key также не высылается, если Result URL переопределяется в форме запроса платежа (когда установлен флаг Позволять использовать URL, передаваемые в форме).
Secret Key X20 50 символов (case sensitive) Если продавец использует Интерфейс X20, чтобы встроить прием платежей в свое мобильное приложение или сервис, то зачастую необходимо осуществлять вызов интерфейса непосредственно из клиентского приложения (то есть для простых приложений и сервисов без участия серверной части или вообще при ее отсутствии), поэтому в целях безопасности нежелательно в вызовах интерфейса пользоваться стандартным Secret Key, чтобы его не скомпрометировать. Для этого можно указать в данном поле дополнительный Secret Key X20 и тогда Интерфейс X20 будет работать ТОЛЬКО с этой строкой.
Также Secret Key X20 должен быть ОБЯЗАТЕЛЬНО указан в случае включения флага Обязательно требовать подпись платежной формы, так как он используется в процессе формирования данной подписи.
Result URL 255 символов (case sensitive) URL (на веб-сайте продавца), на который сервис Web Merchant Interface посылает HTTP POST или SMTP-оповещение о совершении платежа с его детальными реквизитами. URL должен начинаться с префикса "http://", "https://" или "mailto:". В последнем случае оповещение будет высылаться на e-mail, указанный после префикса, - например, при указании mailto: оповещение будет выслано на e-mail .
При использовании префикса "http://" или "https://" сервис посылает оповещение по портам 80 и 443 соответственно. Причем вызов Result URL выполняется два раза. Первый раз непосредственно перед выполнением платежа (для проверки работоспособности веб-сайт продавца), второй раз сразу после успешного выполнения платежа (для передачи параметров платежа). При первом вызове, если установлен флаг Передавать параметры в предварительном запросе, параметры предаются с использованием Формы предварительного запроса. Если флаг не установлен - вызов идет без параметров. При втором вызове параметры передаются через Форму оповещения о платеже. Сервер должен вернуть код 200, согласно протокола HTTP.
Передавать параметры в предварительном запросе - Флаг, сообщающий сервису Web Merchant Interface о том, что в запросе передаваемом на Result URL веб-сайта продавца непосредственно перед попыткой выполнение платежа необходимо передать параметры через Форму предварительного запроса. В случае если флаг не установлен Предварительный запрос идет без передачи параметров.
Если флаг передачи параметров установлен, веб-сайт продавца должен вернуть строку "YES" в ответе (строго 3 этих символа в верхнем регистре и только их в теле возвращаемого html-документа, без каких-либо еще тегов, форматирования и т.п.) для того, чтобы сервис Web Merchant Interface смог продолжить выполнение платежа. Если веб-сайт продавца вернет что-либо другое - платеж выполнен не будет, а ответ будет показан покупателю в сообщении об ошибке. Поэтому в случае принятия решения на предзапросе о том, что платеж не будет проведен, необходимо возвратить в теле возвращаемого html-документа подробный текст ошибки с инструкцией пользователю, почему платеж не может быть проведен и что необходимо сделать пользователю, чтобы платеж прошел.
Proxy для Result URL - Когда по каким-либо причинам вызовы Result URL не проходят со стандартных IP адресов системы из-за ошибок маршрутизации, ограничений накладываемых провайдерами и т.п. можно выбрать один из перечисленных в данной настройке IP-адресов и запросы сервиса на Result URL будут приходить с выбранного адреса.
Success URL 255 символов (case sensitive) URL (на веб-сайте продавца), на который будет переведен интернет-браузер покупателя в случае успешного выполнения платежа в сервисе Web Merchant Interface. URL должен иметь префикс "http://" или "https://".
Метод вызова Success URL - Метод (POST, GET или LINK), который будет использоваться при переходе на Success URL.
Fail URL 255 символов (case sensitive) URL (на веб-сайте продавца), на который будет переведен интернет-браузер покупателя в том случае, если платеж в сервисе Web Merchant Interface не был выполнен по каким-то причинам. URL должен иметь префикс "http://" или "https://".
Метод вызова Fail URL - Метод (POST, GET или LINK), который будет использоваться при переходе на Fail URL.
Позволять использовать URL, передаваемые в форме - Флаг, оповещающий Web Merchant Interface о том, что Result URL, Success URL, метод вызова Success URL, Fail URL и метод вызова Fail URL могут быть изменены в Форме запроса платежа.
Высылать оповещение об ошибке платежа на кипер - Флаг, оповещающий Web Merchant Interface о том, что в случае возникновения ошибки при выполнении платежа необходимо послать оповещение на кипер продавца.
Метод формирования контрольной подписи оповещения о платеже - Алгоритм, который Web Merchant Interface использует для контроля подлинности оповещения, высылаемого на сайт продавца при выполнении платежа через сервис. Поддерживается два варианта: SHA256 и SIGN (MD5 не поддерживается, но оставлен для соdместимости со старыми настройками).
Обязательно требовать подтверждение транзакции по СМС - В случае включения данной опции покупатели смогут своеришть оплату на кошелек, только с подтверждением через второй фактор SMS или Enum. Данная опция касается только платежей в WM и не касается дополнительных методов оплаты.
Обязательно требовать подпись платежной формы - Включение данной опции требует от продавца вместе со стандартными полями обязательную передачу поля LMI_PAYMENTFORM_SIGN, содержащего подпись основных полей платежа, передаваемых в Форме запроса платежа. Подробнее о том как сформировать данное поле см. его описание ниже в Форме запроса платежа. Если данный флаг включен а в Форме запроса платежа поле LMI_PAYMENTFORM_SIGN не передается, то покупателю будет выдана ошибка.
Дополнительные методы оплаты - В данном разделе настроек содержатся дополнительные методы оплаты, такие как чеки Paymer, ВМ-чеки , банковские карты, счета мобильных телефонов и т.п. Полный перечень дополнительных методов зависит от типа кошелька. Ссылки на подробные описания каждого способа, условия его использования и включения приведены непосредственно в каждом из способов на странице настроек кошелька

Алгоритм выполнения платежа

Алгоритм выполнения платежа представлен на рисунке ниже.

ФОРМЫ HTML

Для передачи информации между веб-сайтом продавца и сервисом Web Merchant Interface используютcя пять основных HTML-формы:

  • Форма запроса платежа - генерируется веб-сайтом продавца для формирования запроса на проведение платежа в сервисе Web Merchant Interface и передачи его через веб-браузер покупателя.
  • Форма предварительного запроса - генерируется сервисом Web Merchant Interface для передачи параметров предварительного запроса на выполнение платежа на веб-сайт продавца, если установлен флаг Передавать параметры в предварительном запросе. Если флаг не установлен - не используется (запрос выполняется без параметров). Запрос передается без использования веб-браузера покупателя.
  • Форма оповещения о платеже - генерируется сервисом Web Merchant Interface для передачи оповещения о платеже на веб-сайт продавца. Оповещение передается без использования веб-браузера покупателя.
  • Форма выполненного платежа - генерируется сервисом Web Merchant Interface в случае успешного выполнения платежа и передается на веб-сайт продавца через веб-браузер покупателя.
  • Форма невыполненного платежа - генерируется сервисом Web Merchant Interface в случае невыполнения платежа и передается на веб-сайт продавца через веб-браузер покупателя.

Форма запроса платежа

Эта форма передает запрос с веб-сайта продавца в сервис Web Merchant Interface через веб-браузер покупателя. Она должна иметь следующие атрибуты и поля:

Action - https://merchant.webmoney.ru/lmi/payment.asp

Method - POST

accept-charset - windows-1251

Fields - поля, передаваемые в форме, описаны в таблице ниже:

Название HTML Field Name Обязательный? Описание
Кошелек продавца LMI_PAYEE_PURSE Да Кошелек продавца, на который покупатель должен совершить платеж. Формат - буква и 12 цифр.
В настоящее время допускается использование кошельков Z-,R-,E-,U- и D-типа.
Сумма платежа LMI_PAYMENT_AMOUNT Да Сумма платежа, которую продавец желает получить от покупателя. Сумма должна быть больше нуля, дробная часть отделяется точкой.
Внутренний номер покупки продавца LMI_PAYMENT_NO Нет В этом поле продавец задает номер покупки в соответствии со своей системой учета. Несмотря на то, что параметр не является обязательным, мы рекомендуем всегда задавать его. Желательно использовать уникальный номер для каждого платежа, что позволит быстро получить относящуюся к нему информацию через другие интерфейсы системы WebMoney Transfer.
Номер должен представлять собой целое число без знака не больше 2147483647.
Назначение платежа LMI_PAYMENT_DESC Да* Описание товара или услуги. Формируется продавцом.
Если присутствует, добавляется в назначение платежа в операцию перевода WebMoney. Максимальная длина - 255 символов. Кодировка win-1251
Назначение платежа LMI_PAYMENT_DESC_BASE64 Да* Описание товара или услуги в UTF-8 и далее закодированное алгоритмом Base64. Формируется продавцом. Если присутствует, то результат раскодирования будет подставлен вместо LMI_PAYMENT_DESC. Позволяет не зависеть от кодировки на сайте продавца.
Режим тестирования LMI_SIM_MODE Нет Дополнительное поле, определяющее режим тестирования. Действует только в режиме тестирования и может принимать одно из следующих значений:
0 или отсутствует: Для всех тестовых платежей сервис будет имитировать успешное выполнение;
1: Для всех тестовых платежей сервис будет имитировать выполнение с ошибкой (платеж не выполнен);
2: Около 80% запросов на платеж будут выполнены успешно, а 20% - не выполнены.
Замена Result URL LMI_RESULT_URL Нет Это поле позволяет продавцу временно изменить параметр "Result URL", установленный продавцом на странице настроек сайта Web Merchant Interface.
Если в настройках установлен флаг "Позволять использовать URL, передаваемые в форме", то передаваемое значение заменяет значение параметра "Result URL", установленное в настройках на сайте Web Merchant Interface. В противном случае всегда используется значение, установленное в настройках на сайте Web Merchant Interface.
Формат этого поля должен строго соответствовать значению параметра "Result URL".
Замена Success URL LMI_SUCCESS_URL Нет Это поле позволяет продавцу временно изменить параметр "Success URL", установленный им на странице настроек сайта Web Merchant Interface.
Если в настройках установлен флаг "Позволять использовать URL, передаваемые в форме", то передаваемое значение заменяет значение параметра "Success URL", установленное в настройках на сайте Web Merchant Interface. В противном случае всегда используется значение, установленное в настройках на сайте Web Merchant Interface.
Формат этого поля должен строго соответствовать значению параметра "Success URL".
Замена метода вызова Success URL LMI_SUCCESS_METHOD Нет Это поле позволяет продавцу временно изменить параметр "Метод вызова Success URL", установленный им на странице настроек сайта Web Merchant Interface.
Если в настройках установлен флаг "Позволять использовать URL передаваемые в форме", то передаваемое в форме значение заменяет значение параметра "Метод вызова Success URL", установленное в настройках на сайте Web Merchant Interface. В противном случае всегда используется значение, установленное в настройках на сайте Web Merchant Interface.
Это поле должно принимать значение 0, 1 или 2, что соответствует значениям параметра "Метод вызова Success URL" - "GET", "POST" или "LINK".
Замена Fail URL LMI_FAIL_URL Нет Это поле позволяет продавцу временно изменить параметр "Fail URL", установленный им на странице настроек сайта Web Merchant Interface.
Если в настройках установлен флаг "Позволять использовать URL, передаваемые в форме", то передаваемое в форме значение заменяет значение параметра "Fail URL", установленное в настройках на сайте Web Merchant Interface. В противном случае всегда используется значение, установленное в настройках на сайте Web Merchant Interface.
Формат этого поля должен строго соответствовать значению параметра "Fail URL".
Замена метода вызова Fail URL LMI_FAIL_METHOD Нет Это поле позволяет продавцу временно изменить параметр "Метод вызова Fail URL", установленный им на странице настроек сайта Web Merchant Interface.
Если в настройках установлен флаг "Позволять использовать URL передаваемые в форме", то передаваемое в форме значение заменяет значение параметра "Метод вызова Fail URL", установленное в настройках на сайте Web Merchant Interface. В противном случае всегда используется значение, установленное в настройках на сайте Web Merchant Interface.
Это поле должно принимать значение 0, 1 или 2, что соответствует значениям параметра "Метод вызова Fail URL" - "GET", "POST" или "LINK".
Номер ВМ-карты LMI_PAYMER_PINNUMBERINSIDE Нет Продавец может опционально реализовать у себя на сайте при выборе способа платежа отдельный способ оплаты для Вебмани карт (скретч карт) или чеков Paymer. В этом случае у покупателя, при выборе им такого способа оплаты, можно прямо на сайте продавца спросить номер карты (чека), которым он будет платить и передать его в этом поле, тогда покупатель будет сразу перенаправлен на итоговую страницу ввода кода чека (карты), а страница выбора способов платежа будет просто автоматически пропущена.
Номер ВМ-ноты LMI_WMNOTE_PINNUMBERINSIDE Нет Продавец может опционально реализовать у себя на сайте при выборе способа платежа отдельный способ оплаты для Вебмани нот . В этом случае у покупателя при выборе им такого способа оплаты можно прямо на сайте продавца спросить номер ВМ-ноты, которой он будет платить и передать его в этом поле, тогда покупатель будет сразу перенаправлен на итоговую страницу ввода кода ВМ-ноты, а страница выбора способов платежа будет просто автоматически пропущена.
Email покупателя LMI_PAYMER_EMAIL Нет Если продавцу известен Email покупателя, то он может передать его в этом поле и тогда покупателю не нужно будет вводить его при оплате WM-картой, чеком Пеймер или ВМ-нотой.
Номер WebMoney Check LMI_WMCHECK_NUMBERINSIDE Нет Продавец может опционально реализовать у себя на сайте при выборе способа платежа отдельный способ оплаты для Вебмани чека (оплата через терминалы, банкоматы, кассы). В этом случае у покупателя при выборе им такого способа оплаты можно прямо на сайте продавца спросить номер чека (номер его мобильного телефона), которым он будет платить и передать его в этом поле, тогда покупатель будет сразу спозиционирован на способ оплаты Webmoney check и покупателю останется только ввести свой пароль, чтобы продолжить платеж.
Пароль от WebMoney check LMI_WMCHECK_CODEINSIDE Нет если поле LMI_WMCHECK_NUMBERINSIDE заполнено, то в данном поле можно спросить у покупателя и передать его пароль от Вебмани чека, тогда покупатель будет сразу перенаправлен на итоговую страницу ввода отправленного ему одноразового кода по СМС, а страница выбора способов платежа будет просто автоматически пропущена. С точки зрения безопасности можно не бояться спрашивать у покупателя пароль, так как по сути он позволяет только читать информацию (история платежей, баланс), а для того чтобы заплатить, нужен только одноразовый СМС-код, отправка и ввод которого проиводится в безопасном режиме только на сайте WebMoney.merchant
Тип e-invoicing платежа LMI_ALLOW_SDP Нет Указание данного поля позволяет продавцу сделать так, что покупатель не будет направляться на страницу авторизации (выбора способа оплаты и т.п.) , а сразу попадать на нужный способ оплаты e-invoicing. При формировании платежной формы продавец может указать для этого следующие цифровые значения: 0 - через системы денежных переводов , 3- через Альфа-клик, 4- через карты российских банков, 5- через интернет банкинг Русский стандарт, 6 - через интернет банкинг ВТБ24, 8 - через терминалы и банки (только для WMU-кошельков), 10 - с карт Visa\MasterCard\НСМЭП\Приват24 (только для WMU-кошельков), 11 - Мобильная коммерция МТС, 12 - Мобильная коммерция Билайн, 14 - Сбербанк Онлайн
Номер телефона для быстрого платежа LMI_FAST_PHONENUMBER Нет В данный момент в сервисе реализована возможность любому участнику системы заплатить продавцу быстро, имея под рукой только мобильный телефон и зная его номер, по указанному номеру система сама найдет нужный ВМ-идентификатор или ВМ-чек и произведет оплату после ввода пользователем присланного SMS или USSD кода. Если Вы знаете (например из профайла) номер мобильного телефона покупателя (в международном формате без посторонних символов подряд только цифры) то передайте его в этом поле и покупателю не нужно будет его вводить
Срок кредитования LMI_PAYMENT_CREDITDAYS Нет В случае если продавец продает свои товары в кредит и получает платежи на кошелек типа D, то в данном параметре указывается срок кредитования в днях. Если в случае приема платежей на кошелек типа D данный параметр не указан, то по умолчанию срок кредитования принимается равным 30 дням. Настоятельно рекомендуем при указании данного параметра обязательно проверять его соответствие в предварительном запросе или оповещении о платеже. Подробнее о кредитовании можно прочитать здесь.
Номер магазина LMI_SHOP_ID Нет Данный параметр обязателен к указанию только для агрегаторов (сервисы посредники осуществляющие прием платежей в пользу третьих лиц). В данном поле агрегаторы обязаны передавать регистрационный номер магазина в каталоге Меагасток в пользу которого осуществляется прием данного платежа
Подпись формы LMI_PAYMENTFORM_SIGN Нет Данное поле должно быть обязательно передано в случае, если в настройках кошелька установлен флаг Обязательно требовать подпись платежной формы, если его не передать, то покупателю будет выдана ошибка. В случае если поле передается, а флаг Обязательно требовать подпись платежной формы не установлен, то покупателю также будет выдана ошибка. Иными словами необходимо включить флаг и передавать поле или не включать и не передавать.
Поле формируется путем хэширования алгоритмом SHA256 строки, содержащей три других значимых поля формы запроса платежа и значения Secret Key X20 (из настроек кошелька), разделенных точкой с запятой. Строка для подписи формируется так:
 LMI_PAYEE_PURSE;LMI_PAYMENT_AMOUNT;LMI_PAYMENT_NO;Secret Key X20;

Если в форме реально будут переданы не те параметры, которые участвовали в хэшировании, то покупателю будет выдана ошибка, поэтому следите за тем, чтобы с момента формирования подписи поля никак не форматировались и были переданы в форму в неизмененном виде!
Дополнительные параметры продавца Определяется продавцом Нет Все поля формы, не имеющие в названии префикса "LMI_" или "__", обрабатываются сервисом Web Merchant Interface автоматически и передаются на веб-сайт продавца.

* - Только один из параметров LMI_PAYMENT_DESC или LMI_PAYMENT_DESC_BASE64 должен присутствовать обязательно!

В поле Action формы у продавца всегда есть возможность спозиционировать покупателя сразу же на какой то определенный способ (вариант) оплаты. Это очень удобно, когда продавец полноценно реализует подключение магазина со всеми возможными опциями. Для этого служит параметр at в URL запроса, например, если произвести передачу платежной формы по URL https://merchant.webmoney.ru/lmi/payment.asp?at=authtype_8, то покупатель будет сразу же спозиционирован на оплату с Webmoney кошелька, а если at=authtype_3, то с WebMoney карты. Если данный параметр не указан, то покупателю автоматически выбирается способ, который он выбрал и использовал при предыдущей оплате. Все доступные способы позицинирования перечислены ниже:

  • authtype_1 Keeper WinPro
  • authtype_2 Keeper WebPro
  • authtype_3 WebMoney-карта (настоятельно рекомендуем, если на сайте продавца платеж скретч ВМ-картой вынесен в отдельный пункт, сразу спросить у покупателя номер ВМ-карты и передать его в параметре LMI_PAYMER_PINNUMBERINSIDE , в этом случае позиционирование будет не нужно и покупатель сразу попадет на нужную страницу, минуя этап выбора способа платежа и ввода номера ВМ-карты )
  • authtype_6 Чек Paymer (настоятельно рекомендуем, если на сайте продавца платеж чеком Пеймер вынесен в отдельный пункт, сразу спросить у покупателя номер чека и передать его в параметре LMI_PAYMER_PINNUMBERINSIDE , в этом случае позиционирование будет не нужно и покупатель сразу попадет на нужную страницу, минуя этап выбора способа платежа и ввода номера чека Пеймер )
  • authtype_7 Терминалы оплаты
  • authtype_9 Keeper Standard
  • authtype_10 WM-нота (настоятельно рекомендуем, если на сайте продавца платеж ВМ-нотой вынесен в отдельный пункт, сразу спросить у покупателя номер чека и передать его в параметре LMI_WMNOTE_PINNUMBERINSIDE, в этом случае позиционирование будет не нужно и покупатель сразу попадет на нужную страницу, минуя этап выбора способа платежа и ввода номера чека ВМ-ноты )
  • authtype_11 Почта РФ (только для WMR-кошельков)
  • authtype_12 Keeper для соц.сетей
  • authtype_13 WebMoney чек
  • authtype_14 Денежный перевод через распространенные системы денежных переводов (только для WMR-кошельков)
  • authtype_16 кредитные карты российских банков, опция только для WMR-кошельков (настоятельно рекомендуем, если на сайте продавца платеж через банковские карты вынесен в отдельный пункт (иконку, способ и т.п. ), передать в параметре LMI_ALLOW_SDP = 4, в этом случае позиционирование будет не нужно и покупатель сразу попадет на нужную страницу оплаты банковской картой, минуя этап выбора способа платежа )
  • authtype_17 быстрый платеж с указанием мобильного телефона (если продавцу известен номер мобильного телефона покупателя в международном формате, то он может передать его в параметре LMI_FAST_PHONENUMBER и в этом случае покупателю не нужно будет вводить его у нас на сайте при проведении быстрого платежа)
  • authtype_18 Интернет банкинги Альфа-Клик, Банк Русский стандарт, ВТБ24, опция только для WMR-кошельков (настоятельно рекомендуем, если на сайте продавца платеж через Интернет банкинги каждого банка вынесен в отдельный пункт (иконку, способ и т.п. ), передать номер выбранного банка в параметре LMI_ALLOW_SDP, в этом случае позиционирование будет не нужно и покупатель сразу попадет на нужную страницу, минуя этап выбора способа платежа, выбора банка и т.п. )
  • authtype_19 Мобильная коммерция (Билайн, Мегафон, МТС)

Пример 1. Фрагмент "Формы запроса платежа" без замены URL

 
<html> 
<head>
 ... 
</head> 
<body> ...
<form method="POST" action="https://merchant.webmoney.ru/lmi/payment.asp" accept-charset="windows-1251">  
  <input type="hidden" name="LMI_PAYMENT_AMOUNT" value="12.08">
  <input type="hidden" name="LMI_PAYMENT_DESC" value="платеж по счету">
  <input type="hidden" name="LMI_PAYMENT_NO" value="1234">
  <input type="hidden" name="LMI_PAYEE_PURSE" value="Z145179295679">
  <input type="hidden" name="LMI_SIM_MODE" value="0">
  <input type="hidden" name="FIELD_1" value="VALUE_1">
  <input type="hidden" name="FIELD_2" value="VALUE_2">
  ... 
  <input type="hidden" name="FIELD_N" value="VALUE_N"> 
  ... 
</form>
... 
</body>
</html>

Пример 2. Фрагмент "Формы запроса платежа" с заменой URL

<html>
<head>
 ... 
</head> 
<body> 
... 
<form method="POST" action="https://merchant.webmoney.ru/lmi/payment.asp" accept-charset="windows-1251">
  <input type="hidden" name="LMI_PAYMENT_AMOUNT" value="12.08">
  <input type="hidden" name="LMI_PAYMENT_DESC" value="платеж по счету">
  <input type="hidden" name="LMI_PAYMENT_NO" value="1234">
  <input type="hidden" name="LMI_PAYEE_PURSE" value="Z145179295679">
  <input type="hidden" name="LMI_SIM_MODE" value="0">
  <input type="hidden" name="LMI_RESULT_URL" value="http://www.shop.com/result.asp">
  <input type="hidden" name="LMI_SUCCESS_URL" value="http://www.shop.com/success.html">
  <input type="hidden" name="LMI_SUCCESS_METHOD" value="2">
  <input type="hidden" name="LMI_FAIL_URL" value="http://www.shop.com/fail.html">
  <input type="hidden" name="LMI_FAIL_METHOD" value="2">
  <input type="hidden" name="FIELD_1" value="VALUE_1">
  <input type="hidden" name="FIELD_2" value="VALUE_2">
  ...
  <input type="hidden" name="FIELD_N" value="VALUE_N">
  ... 
</form>
 .. 
</body> 
</html>

Обратите внимание на ОБРАЗЦОВУЮ реализацию формы запроса платежа в магазине Плати.ру , в котором реализованы все возможности выбора способов платежа и прямого позиционирования покупателя на нужный способ с уже имеющимися данными.

Форма предварительного запроса

Эта форма передает продавцу параметры выполняемого платежа непосредственно перед его выполнением. Она имеет следующие атрибуты и поля:

Action - Result URL

Method - POST

Fields - поля, передаваемые в форме, описаны в таблице ниже:

Название HTML Field Name Описание
Индикатор предварительного запроса LMI_PREREQUEST 1
Кошелек продавца LMI_PAYEE_PURSE Кошелек продавца, на который покупатель совершил платеж. Формат - буква и 12 цифр.
Сумма платежа LMI_PAYMENT_AMOUNT Сумма, которую заплатил покупатель. Дробная часть отделяется точкой.
Внутренний номер покупки продавца LMI_PAYMENT_NO В этом поле передается номер покупки в соответствии с системой учета продавца, полученный сервисом с веб-сайта продавца.
Флаг тестового режима LMI_MODE Указывает, в каком режиме выполнялась обработка запроса на платеж. Может принимать два значения:
0: Платеж выполнялся в реальном режиме, средства переведены с кошелька покупателя на кошелек продавца;
1: Платеж выполнялся в тестовом режиме, средства реально не переводились.
WMId покупателя LMI_PAYER_WM WM-идентификатор покупателя, совершаюшего платеж.
Кошелек покупателя LMI_PAYER_PURSE WM-кошелек покупателя, совершающего платеж.
WMId капиталлера LMI_CAPITALLER_WMID В случае, если покупатель совершает платеж с бюджетного автомата Капиталлер, то в данном поле передается WMID данного идентификатора, при этом кошелек LMI_PAYER_PURSE принадлежит именно LMI_CAPITALLER_WMID, а LMI_PAYER_WM - это идентификатор владельца, имеющего в данном капиталлере доступ к этому кошельку для совершения оплат.
Номер ВМ-карты (электронного чека) LMI_PAYMER_NUMBER Номер чека Paymer.com или номер ВМ-карты, присутствует только в случае, если покупатель производит оплату чеком Пеймер или ВМ-картой.
E-mail покупателя LMI_PAYMER_EMAIL Email указанный покупателем, присутствует только в случае, если покупатель производит оплату чеком Paymer.com или ВМ-картой.
Номер WM-ноты LMI_EURONOTE_NUMBER Номер чека WM-ноты, присутствует только в случае, если покупатель производит оплату WM-нотой
E-mail покупателя LMI_EURONOTE_EMAIL Email указанный покупателем, присутствует только в случае, если покупатель производит оплату WM-нотой.
Номер Webmoney check LMI_WMCHECK_NUMBER Номер Вебмани чека (мобильного телефона) покупателя , присутствует только в случае, если покупатель производит оплату через Сервис WebMoney Check (через терминалы, банкоматы, кассы )
Номер телефона покупателя LMI_TELEPAT_PHONENUMBER Номер телефона покупателя, присутствует только в случае, если покупатель производит оплату с телефона WM Keeper Mobile.
Номер платежа в Keeper Mobile LMI_TELEPAT_ORDERID Номер платежа в WM Keeper Mobile, присутствует только в случае, если покупатель производит оплату с телефона в системе WM Keeper Mobile.
Срок кредитования LMI_PAYMENT_CREDITDAYS В случае если покупатель платит со своего кошелька типа C на кошелек продавца типа D (вариант продажи продавцом своих товаров или услуг в кредит), в данном параметре указывается срок кредитования в днях. Настоятельно рекомендуем обязательно проверять соответствие данного параметра в форме предварительного запроса значению параметра в форме запроса платежа.
Примечание к платежу LMI_PAYMENT_DESC Примечание к платежу, передается для контроля продавцом отсутствия искажений в примечании к платежу. Данное поле передается после обработки функцией URLEncode. Так как форма, передаваемая с сайта продавца на платежный сайт системы передается через клиентский браузер, продавец при необходимости (а обменный пункт или финансовый сервис в обязательном порядке) может проверить не только сумму платежа, но и оригинальное примечание к платежу.
Тип e-invoicing платежа LMI_SDP_TYPE Если данный параметр присутствует , то это означает , что платеж будет совершен одним из нескольких способов без регистрации в системе , 0 - через системы денежных переводов , 3- через Альфа-клик, 4- через карты российских банков, 5- через интернет банкинг Русский стандарт, 6 - через интернет банкинг ВТБ24, 8 - через терминалы и банки (только для WMU-кошельков), 10 - с карт Visa\MasterCard\НСМЭП\Приват24 (только для WMU-кошельков), 11 - Мобильная коммерция МТС, 12 - Мобильная коммерция Билайн, 14 - Сбербанк Онлайн
код страны местонахождения LMI_PAYER_COUNTRYID двухбуквенный ISO https://ru.wikipedia.org/wiki/ISO_3166-1 код страны текущего местонахождения, которая указана плательщиком
код страны документа LMI_PAYER_PCOUNTRYID двухбуквенный ISO https://ru.wikipedia.org/wiki/ISO_3166-1 код страны выдачи паспорта, если паспортные данные указаны плательщиком
IP-адрес LMI_PAYER_IP IP-адрес плательщика в момент совершения платежа
Параметры продавца Определяется продавцом Все поля, переданные с веб-сайта продавца в "Форме запроса платежа", не имеющие префикса "LMI_" или "_".

Если флаг передачи параметров установлен, веб-сайт продавца должен вернуть строку "YES" в ответе для того, чтобы сервис Web Merchant Interface смог продолжить выполнение платежа. Если веб-сайт продавца вернет что-либо другое - платеж выполнен не будет а ответ будет показан покупателю в сообщении об ошибке.

Пример. Фрагмент "Формы предварительного запроса"

<html> 
<head>
 ... 
</head> 
<body>
 ...
<form method="POST" action="<Result URL>">
  <input type="hidden" name="LMI_PREREQUEST" value="1">
  <input type="hidden" name="LMI_PAYMENT_AMOUNT" value="1.0">
  <input type="hidden" name="LMI_PAYMENT_NO" value="1">
  <input type="hidden" name="LMI_PAYEE_PURSE" value="R222211112222">
  <input type="hidden" name="LMI_MODE" value="1">
  <input type="hidden" name="LMI_PAYER_WM" value="111122221111">
  <input type="hidden" name="LMI_PAYER_PURSE" value="R111122221111">
  <input type="hidden" name="FIELD_1" value="VALUE_1">
  <input type="hidden" name="FIELD_2" value="VALUE_2">
  ... 
</form>
 .. 
</body> 
</html>

Форма оповещения о платеже

Эта форма передает продавцу реквизиты выполненного платежа в момент его совершения. Она имеет следующие атрибуты и поля:

Action - Result URL

Method - POST

Fields - поля, передаваемые в форме, описаны в таблице ниже:

Название HTML Field Name Описание
Кошелек продавца LMI_PAYEE_PURSE Кошелек продавца, на который покупатель совершил платеж. Формат - буква и 12 цифр.
Сумма платежа LMI_PAYMENT_AMOUNT Сумма, которую заплатил покупатель. Дробная часть отделяется точкой.
Внутренний номер покупки продавца LMI_PAYMENT_NO В этом поле передается номер покупки в соответствии с системой учета продавца, полученный сервисом с веб-сайта продавца.
Флаг тестового режима LMI_MODE Указывает, в каком режиме выполнялась обработка запроса на платеж. Может принимать два значения:
0: Платеж выполнялся в реальном режиме, средства переведены с кошелька покупателя на кошелек продавца;
1: Платеж выполнялся в тестовом режиме, средства реально не переводились.
Внутренний номер счета в системе WebMoney Transfer LMI_SYS_INVS_NO Номер счета в системе WebMoney Transfer, выставленный покупателю от имени продавца в процессе обработки запроса на выполнение платежа сервисом Web Merchant Interface. Является уникальным в системе WebMoney Transfer.
Внутренний номер платежа в системе WebMoney Transfer LMI_SYS_TRANS_NO Номер платежа в системе WebMoney Transfer, выполненный в процессе обработки запроса на выполнение платежа сервисом Web Merchant Interface. Является уникальным в системе WebMoney Transfer.
Кошелек покупателя LMI_PAYER_PURSE Кошелек, с которого покупатель совершил платеж.
WMId покупателя LMI_PAYER_WM WM-идентификатор покупателя, совершившего платеж.
WMId капиталлера LMI_CAPITALLER_WMID В случае, если покупатель совершает платеж с бюджетного автомата Капиталлер, то в данном поле передается WMID данного идентификатора, при этом кошелек LMI_PAYER_PURSE принадлежит именно LMI_CAPITALLER_WMID, а LMI_PAYER_WM - это идентификатор владельца, имеющего в данном капиталлере доступ к этому кошельку для совершения оплат.
Номер ВМ-карты (электронного чека) LMI_PAYMER_NUMBER Номер чека Paymer.com или номер ВМ-карты, присутствует только в случае, если покупатель производит оплату чеком Пеймер или ВМ-картой.
E-mail покупателя LMI_PAYMER_EMAIL Email указанный покупателем, присутствует только в случае, если покупатель производит оплату чеком Paymer.com или ВМ-картой
Номер WM-ноты LMI_EURONOTE_NUMBER Номер чека WM-ноты, присутствует только в случае, если покупатель производит оплату WM-нотой.
E-mail покупателя LMI_EURONOTE_EMAIL Email указанный покупателем, присутствует только в случае, если покупатель производит оплату WM-нотой.
Номер Webmoney check LMI_WMCHECK_NUMBER Номер Вебмани чека (мобильного телефона) покупателя , присутствует только в случае, если покупатель производит оплату через Сервис WebMoney Check (через терминалы, банкоматы, кассы )
Номер телефона покупателя LMI_TELEPAT_PHONENUMBER Номер телефона покупателя, присутствует только в случае, если покупатель производит оплату с телефона в WM Keeper Mobile
Номер платежа в Keeper Mobile LMI_TELEPAT_ORDERID Номер платежа в WM Keeper Mobile, присутствует только в случае, если покупатель производит оплату с телефона в WM Keeper Mobile.
Срок кредитования LMI_PAYMENT_CREDITDAYS В случае если покупатель платит со своего кошелька типа C на кошелек продавца типа D (вариант продажи продавцом своих товаров или услуг в кредит), в данном параметре указывается срок кредитования в днях. Настоятельно рекомендуем обязательно проверять соответствие данного параметра в форме оповещения о платеже значению параметра в форме запроса платежа.
Контрольная подпись LMI_HASH Контрольная подпись оповещения о выполнении платежа, которая используется для проверки целостности полученной информации и однозначной идентификации отправителя.
Алгоритм формирования описан в разделе Контрольная подпись данных о платеже.
Дата и время выполнения платежа LMI_SYS_TRANS_DATE Дата и время реального прохождения платежа в системе WebMoney Transfer в формате "YYYYMMDD HH:MM:SS".
Secret Key LMI_SECRET_KEY Значение Secret Key, известное только продавцу и сервису Web Merchant Interface. Это поле будет пустым, если параметр "Result URL" не обеспечивает секретность или не установлен флаг "Высылать Secret Key на Result URL...", или параметр "Result URL" изменен в форме.
Тип e-invoicing платежа LMI_SDP_TYPE Если данный параметр присутствует , то это означает , что платеж совершен одним из нескольких способов без регистрации в системе , 0 - через системы денежных переводов , 3- через Альфа-клик, 4- через карты российских банков, 5- через интернет банкинг Русский стандарт, 6 - через интернет банкинг ВТБ24, 8 - через терминалы и банки (только для WMU-кошельков), 10 - с карт Visa\MasterCard\НСМЭП\Приват24 (только для WMU-кошельков), 11 - Мобильная коммерция МТС, 12 - Мобильная коммерция Билайн, 14 - Сбербанк Онлай
Примечание к платежу LMI_PAYMENT_DESC Примечание к платежу, передается для контроля продавцом отсутствия искажений в примечании к платежу. Данное поле передается после обработки функцией URLEncode. Так как форма, передаваемая с сайта продавца на платежный сайт системы передается через клиентский браузер, продавец при необходимости (а обменный пункт или финансовый сервис в обязательном порядке) может проверить не только сумму платежа, но и оригинальное примечание к платежу.
код страны местонахождения LMI_PAYER_COUNTRYID двухбуквенный ISO https://ru.wikipedia.org/wiki/ISO_3166-1 код страны текущего местонахождения, которая указана плательщиком
код страны документа LMI_PAYER_PCOUNTRYID двухбуквенный ISO https://ru.wikipedia.org/wiki/ISO_3166-1 код страны выдачи паспорта, если паспортные данные указаны плательщиком
IP-адрес LMI_PAYER_IP IP-адрес плательщика в момент совершения платежа
Параметры продавца Определяется продавцом Все поля, переданные с веб-сайта продавца в "Форме запроса платежа", не имеющие префикса "LMI_".

Внимание!
Продавец обязательно должен предусмотреть проверку информации, присланной в "Форме оповещения о платеже" в соответствии с рекомендациями раздела Алгоритм формирования и проверки контрольной подписи.

Пример. Фрагмент "Формы оповещения о платеже"

<html> 
<head> 
 ... 
</head> 
<body>
 ... 
<form method="POST" action="<Result URL>">
  <input type="hidden" name="LMI_PAYMENT_AMOUNT" value="1.0">
  <input type="hidden" name="LMI_PAYMENT_NO" value="1">
  <input type="hidden" name="LMI_PAYEE_PURSE" value="R397000000472">
  <input type="hidden" name="LMI_MODE" value="1">
  <input type="hidden" name="LMI_SYS_INVS_NO" value="281">
  <input type="hidden" name="LMI_SYS_TRANS_NO" value="558">
  <input type="hidden" name="LMI_PAYER_PURSE" value="R397000000473">
  <input type="hidden" name="LMI_PAYER_WM" value="809000000852">
  <input type="hidden" name="LMI_SYS_TRANS_DATE" value="20020314 14:01:14">
  <input type="hidden" name="LMI_HASH" value="114128B8AEFD8CAA76D3CF75B9AEBC17">
  <input type="hidden" name="FIELD_1" value="VALUE_1">
  <input type="hidden" name="FIELD_2" value="VALUE_2">
  ... 
</form>
 .. 
</body> 
</html>

Форма выполненного платежа

Эта форма передает реквизиты выполненного платежа на веб-сайт продавца после успешного выполнения операции. Данные передаются через веб-браузер покупателя только в том случае, если выбран метод вызова Success URL "GET" или "POST". Форма имеет следующие атрибуты и поля:

Action - Success URL

Method - POST

Fields - поля, передаваемые в форме, описаны в таблице ниже:

Название HTML Field Name Описание
Внутренний номер покупки продавца LMI_PAYMENT_NO В этом поле передается номер покупки в соответствии с системой учета продавца, полученный сервисом с веб-сайта продавца.
Внутренний номер счета в системе WebMoney Transfer LMI_SYS_INVS_NO Номер счета в системе WebMoney Transfer, выставленный покупателю от имени продавца в процессе обработки запроса на выполнение платежа сервисом Web Merchant Interface. Является уникальным в системе WebMoney Transfer.
Внутренний номер платежа в системе WebMoney Transfer LMI_SYS_TRANS_NO Номер платежа в системе WebMoney Transfer, выполненный в процессе обработки запроса на выполнение платежа сервисом Web Merchant Interface. Является уникальным в системе WebMoney Transfer.
Дата и время выполнения платежа LMI_SYS_TRANS_DATE Дата и время реального прохождения платежа в системе WebMoney Transfer в формате "YYYYMMDD HH:MM:SS".
Номер ВМ-карты (электронного чека) LMI_PAYMER_NUMBER Номер чека Paymer.com или номер ВМ-карты, присутствует только в случае, если покупатель производит оплату чеком Пеймер или ВМ-картой.
E-mail покупателя LMI_PAYMER_EMAIL Email указанный покупателем, присутствует только в случае, если покупатель производит оплату чеком Paymer.com или ВМ-картой.
Номер WM-ноты LMI_EURONOTE_NUMBER Номер чека WM-ноты, присутствует только в случае, если покупатель производит оплату WM-нотой.
E-mail покупателя LMI_EURONOTE_EMAIL Email указанный покупателем, присутствует только в случае, если покупатель производит оплату WM-нотой.
Номер Webmoney check LMI_WMCHECK_NUMBER Номер Вебмани чека (мобильного телефона) покупателя , присутствует только в случае, если покупатель производит оплату через Сервис WebMoney Check (через терминалы, банкоматы, кассы )
Номер телефона покупателя LMI_TELEPAT_PHONENUMBER Номер телефона покупателя, присутствует только в случае, если покупатель производит оплату с телефона в WM Keeper Mobile.
Номер платежа в Keeper Mobile LMI_TELEPAT_ORDERID Номер платежа в WM Keeper Mobile, присутствует только в случае, если покупатель производит оплату с телефона в системе WM Keeper Mobile.
Срок кредитования LMI_PAYMENT_CREDITDAYS В случае если покупатель платит со своего кошелька типа C на кошелек продавца типа D (вариант продажи продавцом своих товаров или услуг в кредит), в данном параметре указывается срок кредитования в днях.
Параметры продавца Определяется продавцом Все поля, переданные с веб-сайта продавца в "Форме запроса платежа" не имеющие префикса "LMI_" или "__".

Пример. Фрагмент "Формы выполненного платежа"

<html> 
<head>
 ... 
</head> 
<body> 
... 
<form method="<метод вызова Success URL>" action="<Success URL>">
  <input type="hidden" name="LMI_PAYMENT_NO" value="1">
  <input type="hidden" name="LMI_SYS_INVS_NO" value="281">
  <input type="hidden" name="LMI_SYS_TRANS_NO" value="558">
  <input type="hidden" name="LMI_SYS_TRANS_DATE" value="20020314 14:01:14">
  <input type="hidden" name="FIELD_1" value="VALUE_1">
  <input type="hidden" name="FIELD_2" value="VALUE_2">
  ... 
</form>
 .. 
</body> 
</html>

Форма невыполненного платежа

Эта форма передает реквизиты невыполненного платежа на веб-сайт продавца. Данные передаются через веб-браузер покупателя только в том случае, если выбран метод вызова Success URL "GET" или "POST". Она имеет следующие атрибуты и поля:

Action - Fail URL

Method - метод вызова Fail URL

Fields - поля, передаваемые в форме - такие же как и для выполненного платежа.

Пример. Фрагмент "Формы невыполненного платежа"

<html> 
<head> 
... 
</head> 
<body> 
... 
<form method="<метод вызова Fail URL>" action="<Fail URL>">
  <input type="hidden" name="LMI_PAYMENT_NO" value="1">
  <input type="hidden" name="LMI_SYS_INVS_NO" value>
  <input type="hidden" name="LMI_SYS_TRANS_NO" value>
  <input type="hidden" name="LMI_SYS_TRANS_DATE" value>
  <input type="hidden" name="FIELD_1" value="VALUE_1">
  <input type="hidden" name="FIELD_2" value="VALUE_2">
  ... 
</form>
.. 
</body> 
</html>

ПРОВЕРКА ИНФОРМАЦИИ О ПЛАТЕЖЕ

При выполнении платежа Web Merchant Interface высылает оповещение о платеже через "Форму оповещения о платеже" на Result URL, указанный продавцом.

Мы рекомендуем вам проверить данные, полученные через "Форму оповещения о платеже":

  1. Проверить, действительно ли данные переданы от сервиса Web Merchant Interface (Проверка источника данных)
  2. Проверить, не исказились ли данные в процессе передачи (Проверка целостности данных)
  3. Проверить сумму платежа
  4. Проверить кошелек продавца
  5. Проверить режим проведения платежа (тестовый или реальный)

Кроме того рекомендуется проверять параметры входящей транзакции с использованием XML-интерфейса системы X3 или X18 или на странице проверка транзакции сайта сервиса Merchant WebMoney Transfer.

Проверка источника данных

Как указывалось выше, значение параметра "Secret Key" должно быть известно только сервису Web Merchant Interface и продавцу. Исходя из этого, Secret Key может использоваться для аутентификации источника, приславшего данные о платеже. Продавец, может провести аутентификацию несколькими методами в зависимости от того, обеспечивает Result URL секретность или нет:

  • Result URL обеспечивает секретность и не переопределяется
    В этом случае продавец может производить аутентификацию источника данных двумя способами:
    1. Если продавец не желает проверять контрольную подпись, он должен установить флаг "Высылать Secret Key на Result URL". В этом случае Merchant WebMoney Transfer будет высылать Secret Key на веб-сервер продавца в поле "LMI_SECRET_KEY" в форме оповещения о платеже. Продавец должен проверять его каждый раз, когда получает оповещение о выполнении платежа.
    2. Второй путь - это проверка контрольной подписи. Контрольная подпись формируется сервисом Web Merchant Interface с учетом значения параметра "Secret Key" и передается в поле "LMI_HASH".
      Проверка подписи является более трудоемким методом, но он не требует передачи Secret Key через интернет. * Result URL не обеспечивает секретность или переопределяется
      В этом случае сервис Web Merchant Interface не высылает Secret Key независимо от установленного флага "Высылать Secret Key на Result URL". Поэтому для аутентификации источника оповещения о платеже продавец должен проверять контрольную подпись.

В любом случае следует проверять IP-адрес с которого поступил запрос.
Диапазон адресов которые использует сервис можно узнать на странице IP адреса WM

Проверка целостности данных

Высылая оповещение о проведение платежа, сервис Web Merchant Interface передает реквизиты платежа и контрольную подпись, позволяющую проверять неизменность передаваемых данных. Продавец может выполнить проверку целостности несколькими методами в зависимости от того обеспечивает Result URL секретность или нет:

  • Result URL обеспечивает секретность и не переопределяется
    В этом случае продавец может не проверять контрольную подпись, так как используемый протокол SSL обеспечивает безопасность и целостность передаваемых данных.
  • Result URL не обеспечивает секретность или переопределяется
    В этом случае сервис Web Merchant Interface рекомендует проверять целостность данных, используя контрольную подпись.

Контрольная подпись данных о платеже

Контрольная подпись данных о платеже позволяет продавцу проверять как источник данных, так и целостность данных, переданных на Result URL через "Форму оповещения о платеже".

При формировании контрольной подписи сервис Web Merchant Interface "склеивает" значения полей, передаваемых "Формой оповещения о платеже", в одну строку в следующем порядке:

  1. Кошелек продавца (LMI_PAYEE_PURSE);
  2. Сумма платежа (LMI_PAYMENT_AMOUNT);
  3. Внутренний номер покупки продавца (LMI_PAYMENT_NO);
  4. Флаг тестового режима (LMI_MODE);
  5. Внутренний номер счета в системе WebMoney Transfer (LMI_SYS_INVS_NO);
  6. Внутренний номер платежа в системе WebMoney Transfer (LMI_SYS_TRANS_NO);
  7. Дата и время выполнения платежа (LMI_SYS_TRANS_DATE);
  8. Secret Key (LMI_SECRET_KEY);
  9. Кошелек покупателя (LMI_PAYER_PURSE);
  10. WMId покупателя (LMI_PAYER_WM).

Алгоритм формирования контрольной подписи определяется настройками, установленными продавцом (MD5, SHA256 или SIGN).

В случае использования MD5 формируется последовательность из 32-х шестнадцатеричных цифр в соответствии с широко распространенным алгоритмом Message Digest 5 (MD5) разработанным Ron Rivest из MIT Laboratory for Computer Science и RSA Data Security, Inc. Алгоритм был опубликован в интернете в апреле 1992 года (RFC 1321).
Все символы в результате преобразуются в верхний регистр.

MD5 является морально устаревшим, поддерживается только для совместимости и не рекомендуется для использования

Вместо MD5 рекомендуется использовать SHA256 (SHA-2 с длиной блока 256 бит). Он является более значительно более стойким к криптоанализу. При использовании SHA256 длина хеша - 64 символа.

При использовании SIGN формируется последовательность из 132 шестнадцатеричных цифр в соответствии с алгоритмом формирования аналога собственноручной подписи системы WebMoney Transfer (c использованием модуля WMSignerX).

Проверка контрольной подписи

Проверка контрольной подписи может выполняться как в "ручном" режиме на соответствующих страницах сайта Merchant.WebMoney.ru (MD5, SHA256, SIGN), так и в "автоматическом" режиме на сайте продавца по следующему алгоритму:

  1. MD5/SHA256
    • Сформируйте строку путем "склеивания" значений параметров, полученных через "Форму оповещения о платеже", в том же порядке, что и при формировании контрольной подписи в сервисе Web Merchant Interface (см. выше). Помните, что при формировании подписи используется Secret Key.
    • Вычислите MD5/SHA256 полученной строки. Переведите результат в верхний регистр.
    • Сравните полученное значение с значением параметра "LMI_HASH", полученного через "Форму оповещения о платеже". Если сформированная подпись совпадает с полученной через "Форму оповещения о платеже", данные не изменены, и источник данных действительно сервис Web Merchant Interface.
  2. SIGN
    • Сформируйте строку путем "склеивания" значений параметров, полученных через "Форму оповещения о платеже", в том же порядке, что и при формировании контрольной подписи в сервисе Web Merchant Interface (см. выше). Помните, что при формировании подписи используется Secret Key.
    • Выполните проверку цифровой подписи, используя Интерфейс X7. Идентификация и аутентификация участника-владельца WM Keeper WinPro (Classic) на стороннем сайте. При этом в качестве передаваемых параметров укажите:
      • TesterWMID - идентификатор кипера продавца;
      • ClientWMID - идентификатор кипера сервиса Web Merchant Interface; формирующего цифровую подпись оповещения о выполнении платежа. Его WMID: 967909998006;
      • AccessMarker - строка, полученная на первом этапе путем "склеивания" значений параметров "Формы оповещения о платеже";
      • ClientSignStr - контрольная подпись, сформированная сервисом Web Merchant Interface и переданная на веб-сайт продавца через "Форму оповещения о платеже" в параметре "LMI_HASH";
      • SignStr - цифровая подпись запроса.

Если проверка дала положительный результат, данные не были изменены, и источник данных действительно сервис Web Merchant Interface.

Проверка суммы платежа

Несмотря на то, что покупатель не может изменить сумму платежа, продавцу рекомендуется контролировать информацию о сумме платежа, передаваемую через параметр "LMI_PAYMENT_AMOUNT".

Проверка кошелька продавца

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

Проверка режима платежа

Web Merchant Interface позволяет проводить платежи в тестовом режиме для проверки работы веб-сайта продавца. Режим обработки платежа в сервисе определяется установкой параметра "Тестовый/Рабочий режимы". Дополнительно информация о текущем режиме передается в параметре "LMI_MODE" (1 - тестовый режим, 0 - реальный режим).

В тестовом режиме реальный платеж не проводится, но сервис посылает данные, имитируя выполнение платежа.

XML-интерфейс выяснения состояния платежа по LMI_PAYMENT_NO

Для быстрого и безопасного выяснения состояния платежа (синхронизации или акутализации базы покупок сервиса, магазина, службы и т.п. с реальными завершенными операциями по WM-кошельку) Вы можете использовать XML-интерфейс X18, который по номеру LMI_PAYMENT_NO позволяет получить и информацию о платеже и его детали.

Тестирование сервиса Web Merchant Interface

Параметр "Тестовый/Рабочий режимы" позволяет продавцам тестировать интеграцию своего веб-сайта с сервисом Web Merchant Interface без выполнения реальных платежей. Если параметр установлен в режим "тест", сервис будет генерировать только тестовые платежи.

Параметр "Тестовый/Рабочий режимы" должен быть установлен в режим "тест" до тех пор, пока продавец не будет уверен в том, что его веб-сайт, интегрированный с сервисом Merchant WebMoney Transfer, работает правильно!

Примеры использования интерфейса

История платежей и бескомиссионный возврат

В сервисе WebMoney Merchant существует возможность посмотреть историю входящих операций: https://merchant.webmoney.ru/conf/purseoper.asp и при необходимости вернуть платеж отправителю.
Произвести возврат можно только полной суммы. При этом, сервис сам определяет, как именно был совершен перевод: с WM-кошелька, WM-карты или WebMoney Check - и в соответствии с этим решает, как сделать его возврат. Если платеж с кошелька, то средства возвращаются обратно на кошелек плательщика. Если платеж с WM Check, то возврат будет произведен на WM Check (система знает номер телефона плательщика). Если перевод был с WM-карты, то сервис сначала запросит номер телефона, а потом вернет средства на этот WM Check.

См. также:
Проверка транзакции, выполненной через сервис Merchant WebMoney Transfer
Прием платежей через терминалы оплаты, банкоматы, почту
Прием платежей чеками Paymer WM-картами и WM-нотами
Прием платежей через WM Keeper Mobile
Прием платежей с банковских карт российских банков
Прием платежей через Интернет-банк
Прием платежей через системы денежных переводов
Быстрый способ настроить прием WebMoney на сайте продавца
Прямой прием платежей через терминалы и банки (Украина)
Прием платежей с банковских карт (U-кошельки)
Merchant WebMoney Transfer
Пример оплаты товаров и услуг через сервис Merchant WebMoney Transfer
Лимиты на прием платежей через Web Merchant Interface
Плагины и модули приема WebМoney для CMS