Интерфейс X22

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

Интерфейс позволяет предварительно сохранить форму запроса платежа и получить соответствующий ей тикет, с помощью которого можно сформировать прямую ссылку на данный платеж.
Преимущество данного способа перед передачей формы запроса с сайта продавца заключается в том, что во-первых, прямая ссылка может быть передана любыми способами связи, в том числе и с помощью QR-кода для оплаты мобильным приложением, а во-вторых, прямая ссылка с тикетом исключает искажение параметров платежа (при передаче параметров в форме пользователь может ненамеренно или специально исказить параметры платежа и поэтому необходимо всегда перепроверять их в форме предварительного запроса или форме оповещения о платеже).

Проще всего результат использования запроса проиллюстрировать универсальной ссылкой на пример платежа с тикетом — https://merchant.wmtransfer.com/lmi/paydl.asp?gid=D31A3F81-B953-4F55-B1B4-8DCBA881076F.
  • Если перейти по этой ссылке в браузере на десктопе, то будет открыт сайт сервиса merchant.webmoney с уже установленными параметрами платежа.
  • Если перейти по этой ссылке в браузере смартфона, то откроется форма оплаты с параметрами в мобильном приложении.
  • Если сгенерировать из этой ссылки QR-код, то форма оплаты с параметрами откроется в мобильном приложении после считывания им QR-кода оплаты.

Тикет, передаваемый в параметре gid данной ссылки, может быть сформирован продавцом для любого платежа.

Данный интерфейс можно вызвать вручную на сайте merchant.webmoney.com

<merchant.request>
    <signtags>
        <wmid></wmid>
        <validityperiodinhours></validityperiodinhours>
        <sign></sign>
        <sha256></sha256>
        <md5></md5>
        <secret_key></secret_key>
        <lang></lang>
        </signtags>
    <paymenttags>
        <lmi_...></lmi_...>
        <lmi_...></lmi_...>
        <lmi_...></lmi_...>
        ...
        <usertagname1></usertagname1>
        <usertagname2></usertagname2>
        <usertagname3></usertagname3>
    </paymenttags>

</merchant.request>
  • параметры запроса:
название назначение примечание
wmid ВМ-идентификатор получателя или подписи WMID, которому принадлежит кошелек, на который будет приниматься регистрируемый платеж через сервис merchant.webmoney.com, либо WMID, подписавший запрос при использовании метода аутентификации WMSigner, при этом данному WMID , если ему не принадлежит кошелек, получающий платеж, должно быть дано доверие на выписку счетов
validityperiodinhours срок действия тикета Целое положительное число часов, в течении которых будет действовать создаваемый тикет платежа. Срок действия тикета не может превышать 744 часа, и по прошествии этого срока тикет станет недействительным. Количество создаваемых тикетов с указанным сроком действия не ограничено. Есть возможность создать вечный тикет, в этом случае необходимо указать срок действия равный нулю, но таких тикетов можно создать только один на один кошелек, при повторном вызове интерфейса по одному и тому же кошельку со сроком действия 0 , будет произведена замена имеющегося тикета вновь присланными данными , при этом будет возвращен все тот же номер тикета платежа.
sign Подпись запроса Подпись производится ключами идентификатора wmid методом WMSigner и формируется из параметров: wmid+lmi_payee_purse+lmi_payment_no+validityperiodinhours. Причем параметры начинающиеся с lmi_ берутся из секции тегов paymenttags. Обратите внимание, что если кошелек lmi_payee_purse не принадлежит идентификатору wmid, то необходимо чтобы на security.webmoney.ru этому идентификатору было установлено доверие на выписку счетов от кошелька lmi_payee_purse. Если используется данный вариант аутентификации запроса, параметры sha256, md5 и secret_key нужно не указывать или оставить их пустыми.
sha256 Подпись запроса Подпись производится методом SHA256 и формируется из параметров: wmid & lmi_payee_purse & lmi_payment_no&validityperiodinhours & secret_key. Причем параметры начинающиеся с lmi_ берутся из секции тегов paymenttags. В случае если используется данный вариант аутентификации запроса, параметры sign, md5 и secret_key должны остаться пустыми или не указываться. Обратите внимание, что при формировании строки к которой применяется алгоритм SHA256 в качестве secret_key используется значение секретного слова из настроек кошелька в сервисе merchant.webmoney.com, при этом в самом запросе необходимо передавать ТОЛЬКО результат работы алгоритма в параметре SHA256, параметр secret_key должен остаться не указанным или пустым!!!
md5 Подпись запроса Подпись производится методом MD5 и формируется из параметров: wmid & lmi_payee_purse & lmi_payment_no&validityperiodinhours & secret_key. Причем параметры начинающиеся с lmi_ берутся из секции тегов paymenttags. В случае если используется данный вариант аутентификации запроса, параметры sign, sha256 и secret_key должны остаться пустыми или не указываться. Обратите внимание, что при формировании строки к которой применяется алгоритм md5 в качестве secret_key используется значение секретного слова из настроек кошелька в сервисе merchant.webmoney.com, при этом в самом запросе необходимо передавать ТОЛЬКО результат работы алгоритма в параметре MD5, параметр secret_key должен остаться не указанным или пустым!!!
secret_key секретное слово В данном параметре передается значение секретного слова из настроек кошелька lmi_payee_purse в сервисе merchant.webmoney.com. Обратите внимание, что при использование данного метода, проверка аутентичности соединения по https (валидности и принадлежности корневого сертификата сервера https://merchant.webmoney.com/ и т.п.) во избежание подмены DNS и т.п. остается на совести отправителя запроса. В случае если используется данный вариант аутентификации запроса, параметры sign, sha256 и md5 должны быть не указаны или остаться пустыми.
lang может принимать значение ru-RU en-US vi-VN uk-UA
paymenttags теги формы запроса платежа В секции тегов paymenttags необходимо указать ровно все те поля, которые бы были переданы при платеже обычным способом через форму запроса платежа с сайта продавца. При этом в обязательно порядке должны быть указаны такие теги, как lmi_payee_purse, lmi_payment_amount, lmi_payment_no, lmi_payment_desc.
Тэг lmi_onetimepay если равен 1, то тикет для однократной оплаты (не работает для вечных тикетов validityperiodinhours равных 0).
Все остальные указанные в данной секции теги будут отработаны ровно также, как если бы они были указаны в форме запроса платежа
  • формат ответа:
<?xml version="1.0"?>
<merchant.response>
    <transtoken></transtoken>
    <payurl></payurl>
    <validityperiodinhours></validityperiodinhours>
    <retval>0</retval> 
    <retdesc></retdesc> 
</merchant.response> 
  • параметры ответа:
название назначение примечание
transtoken токен операции Токен транзакции, который необходимо передать в ссылке формы запроса платежа в параметре gid. Для вызова на русском — https://merchant.webmoney.com/lmi/payment.asp?gid=token. Для вызова на английском — https://merchant.wmtransfer.com/lmi/payment.asp?gid=token. Универсальная ссылка оплаты — https://merchant.webmoney.com/lmi/paydl.asp?gid=token
payurl строка с универсальной ссылкой оплаты Параметр является символьной строкой внутри элемента CDATA, включающей URL с токеном транзакции transtoken. Например, ![CDATA[https://merchant.wmtransfer.com/lmi/paydl.asp?gid=D31A3F81-B953-4F55-B1B4-8DCBA881076F]]. Универсальный URL оплаты представляет собой DeepLink и может использоваться как при оплате на сайте сервиса Merchant, так и при платежах мобильным приложением WM Keeper Standard и WM Keeper Pro.
Данная ссылка позволяет проводить оплату мобильным приложением двумя способами:
* считать сканером мобильного приложения WM Keeper сгенерированный из данного URL QR-код оплаты, и в открывшейся форме подтвердить платеж;
* кликнуть по данной ссылке в браузере смартфона, автоматически перейти в мобильное приложение (только на iOS или Android) и в открывшейся форме подтвердить платеж.
validityperiodinhours срок действия тикета Если переданное в запросе значение validityperiodinhours будет меньше 0 или больше 744 или не будет являться числом или вообще будет не указано, то в ответе здесь будет передано реальное значение срока действия созданного тикета, по умолчанию это 744. Если все будет указано верно, то здесь будет передано тоже значение, что было передано в запросе и которое будет являться реальным сроком действия для данного тикета.
retval код выполнения 0 - запрос выполнен успешно, другие значения означают, что при запросе произошла ошибка
retdesc расшифровка кода выполнения Текстовое описание ошибки для разработчиков приложения продавца, описывающее причины невозможности успешного выполнения запроса
  • список ошибок:
retval retdesc
-101 при проверке платежа по тикету получили ошибку; детали в поле retdesc
-100 общая ошибка при разборе запроса
-2 merchant.request/wmid is incorrect
-2 merchant.request/lmi_payee_purse is incorrect
-2 merchant.request/lmi_payement_no is incorrect
-2 merchant.request/wmid is incorrect
-3 merchant.request/lmi_payee_purse is incorrect
-6 sign not right
-7 sign not right: PlanStr
-7 SHA256 or MD5 not right:PlanStr(this planstr without secret_key)
-8 internal error:error code
1 Merchant purse not found:1
3 Please use sign or sha256 method for authentication:3
2 Please use sign or sha256 method for authentication, and specify secret key in merchant service settings:2
4 Merchant wmid not found or security trust for purse is not exists:4
6 Merchant wmid not found or security trust for purse is not exists:6
7 Payment with lmi_payment_no number not found for this merchant purse:7

см. также XML-интерфейсы