WebMoney Wiki

Wiki

Интерфейс X22

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

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

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

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

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

</merchant.request>
  • параметры запроса:
название назначение примечание
wmid ВМ-идентификатор получателя или подписи WMID, которому принадлежит кошелек, на который будет приниматься регистрируемый платеж через сервис merchant.webmoney.ru, либо 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.ru, при этом в самом запросе необходимо передавать ТОЛЬКО результат работы алгоритма в параметре 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.ru, при этом в самом запросе необходимо передавать ТОЛЬКО результат работы алгоритма в параметре MD5, параметр secret_key должен остаться не указанным или пустым!!!
secret_key секретное слово В данном параметре передается значение секретного слова из настроек кошелька lmi_payee_purse в сервисе merchant.webmoney.ru. Обратите внимание, что при использование данного метода, проверка аутентичности соединения по https (валидности и принадлежности корневого сертификата сервера https://merchant.webmoney.ru/ и т.п.) во избежание подмены DNS и т.п. остается на совести отправителя запроса. В случае если используется данный вариант аутентификации запроса, параметры sign, sha256 и md5 должны быть не указаны или остаться пустыми.
paymenttags теги формы запроса платежа В секции тегов paymenttags необходимо указать ровно все те поля, которые бы были переданы при платеже обычным способом через форму запроса платежа с сайта продавца. При этом в обязательно порядке должны быть указаны такие теги, как lmi_payee_purse, lmi_payment_amount, lmi_payment_no, lmi_payment_desc. Все остальные указанные в данной секции теги будут отработаны ровно также, как если бы они были указаны в форме запроса платежа
  • формат ответа:
<?xml version="1.0"?>
<merchant.response>
    <transtoken></transtoken>
    <validityperiodinhours></validityperiodinhours>
    <retval>0</retval> 
    <retdesc></retdesc> 
</merchant.response> 
  • параметры ответа:
название назначение примечание
transtoken токен операции Токен транзакции, который необходимо передать в ссылке формы запроса платежа в параметре gid, для вызова на русском - https://merchant.webmoney.ru/lmi/payment.asp?gid=token и на английском https://merchant.wmtransfer.com/lmi/payment.asp?
gid=token
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-интерфейсы