Правильная ссылка на эту статью: |
Интерфейс X20
Интерфейс X20. Проведение транзакции в merchant.webmoney без ухода с сайта (ресурса, сервиса, приложения) продавца¶
Этот интерфейс доступен только участникам, использующим сервис merchant.webmoney.com (merchant.wmtransfer.com). Платеж невозможен с кошельков, зарегистрированных в merchant.webmoney.com (merchant.wmtransfer.com)
Подробнее о встроенных платежах через X20
Интерфейс позволяет произвести прием средств от участника WebMoney Transfer непосредственно на сайте, сервисе, приложении, консоли и т.п. (здесь и далее приложении продавца) не требуя от участника перехода на какие-либо сайты системы. При этом платеж будет проведен таким образом, как если бы участник заплатил обычным образом через merchant.webmoney.
Эффект отсутствия необходимости покидать сайт достигается тем, что участник подтверждает списание средств со своего WebMoney кошелька (или WebMoney чека) различными мобильными способами, в данный момент их три:
- Подтверждение SMS-кодом, присланным на мобильный телефон участника
- Оплатой WM-счета, выписанного участнику. В данный момент оплата ВМ-счетов возможна во всех мобильных (и вообще любых) приложениях по управлению кошельками WebMoney Transfer.
В случае авторизации по СМС с покупателя взимается дополнительная фиксированная комиссия в размере 0,05 WMZ, 0,05 WME, 0,01 WMX, 0,01 WMG, 0,1 WMH, 0,50 WML, 0.02 WMF, 0.05 WMT в зависимости от валюты платежа.
Интерфейс поддерживает работу с кошельками следующих типов: WMZ, WME, WMX, WMG, WMH, WML, WMF и WMT.
Интерфейс работает по тому же принципу идентификации и аутентификации продавца, что и Интерфейс X18 (WMSigner или SHA256 или MD5 или Secret key) и доступен как обычным продавцам, использующим merchant.webmoney, так и владельцам WMID Capitaller или продавцам зарегистрированным в сервисе processing.webmoney .
На воображаемом примере работу интерфейса можно описать следующим образом. Допустим покупатель находится в приложении какой-либо игровой консоли и собирается произвести оплату какой-либо услуги (игры).
При выборе способа оплаты через Вебмани покупателю предлагается указать свой номер мобильного телефона, ВМ-идентификатор или e-mail (либо взять эту информацию из профайла участника), чтобы инициировать оплату.
Далее приложение (серверная сторона приложения продавца) передает эту информацию (вместе с другими параметрами платежа, суммой и т.п) в первом XML запросе данного интерфейса. Результатом выполнения этого запроса является поиск участника по переданным данным и отправка СМС кода или выписка ВМ-счета. В случае отправки СМС кода так же выписывается и ВМ-счет.
После успешного выполнения этого запроса приложение продавца предлагает покупателю либо ввести подтверждающий код, присланный на СМС, либо ВМ-счет получен и оплачен. В этом случае приложение продавца осуществляет вызов второго XML-запроса данного интерфейса, в результате выполнения которого производится оплата, и в ответе на запрос продавец получает те же данные, которые он получил бы, если бы оплата произошла обычным способом через merchant.webmoney.
ВНИМАНИЕ!!!: Так как плательщик может оплатить ВМ-счет вместо отправки кода из СМС, продавцам необходимо предусмотреть обязательную проверку статуса платежа, перед тем как по своей инициативе переводить платеж в окончательный отрицательный статус. Для проверки статуса так же допустимо использовать отправку второго запроса с заведомо неверным кодом из СМС: если платеж был оплачен через ВМ-чек, то ответ будет положительным.
Пример использования интерфейса (эмуляция вызова и тексты запросов), воспользоваться тестом смогут только пользователи сервиса merchant.webmoney или разработчики, имеющие на своем ВМИД кошельки, настроенные в merchant.webmoney в рабочем или тестовом режиме.
- URL для передачи первого, инициирующего запроса - https://merchant.webmoney.com/conf/xml/XMLTransRequest.asp
- метод - POST
- Content-Type - "text/xml"
- формат запроса:
<merchant.request> <wmid></wmid> <lmi_payee_purse></lmi_payee_purse> <lmi_payment_no></lmi_payment_no> <lmi_payment_amount></lmi_payment_amount> <lmi_payment_desc></lmi_payment_desc> <lmi_clientnumber></lmi_clientnumber> <lmi_clientnumber_type></lmi_clientnumber_type> <lmi_sms_type></lmi_sms_type> <secret_key></secret_key> <sign></sign> <sha256></sha256> <md5></md5> <lang></lang> <lmi_shop_id></lmi_shop_id> <emulated_flag></emulated_flag> </merchant.request>
кроме XML, интерфейс принимает данные в формате JSON
- метод - POST
- Content-Type - "text/json"
- формат запроса:
{ "wmid": (string), "lmi_payee_purse": (string), "lmi_payment_no": (int), "lmi_payment_amount": (float), "lmi_payment_desc": (string), "lmi_clientnumber": (string), "lmi_clientnumber_type": (int), "lmi_sms_type": (int), "secret_key": (string), "sign": (string), "sha256": (string), "md5": (string), "lang": (string), "lmi_shop_id": (int), "emulated_flag": (int) }
поддерживается также формат JSONP
- метод - GET
- Content-Type - "text/jsonp"
- параметр для передачи имени функции обратного вызова - callback
- параметры запроса:
название | get-параметр для JSONP | назначение | Обязательный? | примечание |
wmid | wmid | ВМ-идентификатор получателя или подписи | да | WMID, которому принадлежит кошелек, на который принимается платеж lmi_payment_no через сервис merchant.webmoney.com , либо WMID, подписавший запрос при использовании метода аутентификации WMSigner, при этом данному WMID , если ему не принадлежит кошелек, получивший платеж, должно быть дано доверие на выписку счетов от имени данного идентификатора |
lmi_payee_purse | lpp | ВМ-кошелек получателя платежа | да | Номер кошелька который зарегистрирован и настроен в сервисе merchant.webmoney и на который продавец будет принимать оплату |
lmi_payment_no | lpn | номер платежа | да | Номер платежа в системе учета продавца integer, который должен быть сформирован приложением продавца. Параметр полностью аналогичен параметру, передаваемому сервису merchant.webmoney.com в форме платежа в скрытом поле ввода lmi_payment_no и имеет тоже название. Обратите внимание, что если в настройках сервиса merchant.webmoney.com для кошелька lmi_payee_purse не установлена опция, принимать только уникальные lmi_payment_no, то в этом случае возможны варианты, когда по вине продавца сформировавшего для разных покупок или даже покупателей один и тот же lmi_payment_no, будет произведено две оплаты с одним и тем же номером в системе учета продавца. Старайтесь, чтобы каждая покупка в системе учета продавца имела уникальный номер lmi_payment_no Номер должен представлять собой целое число без знака не больше 2147483647. |
lmi_payment_amount | lpa | сумма платежа | да | Сумма платежа, которую продавец желает получить от покупателя в том же типе ВМ-валюты что и кошелек продавца lmi_payee_purse. Сумма должна быть больше нуля, дробная часть отделяется точкой. |
lmi_payment_desc | lpd | назначение платежа | да | Описание товара или услуги. Формируется продавцом. Если присутствует, добавляется в назначение платежа в операцию перевода WebMoney. Максимальная длина - 255 символов. |
lmi_payment_desc_base64 | lpdb64 | назначение платежа | нет | Описание товара или услуги в UTF-8 и далее закодированное алгоритмом Base64. Формируется продавцом. Если присутствует, то результат раскодирования будет подставлен вместо LMI_PAYMENT_DESC. Позволяет не зависеть от кодировки на сайте продавца. |
lmi_clientnumber | lcn | данные покупателя | да | Мобильный телефон (с кодом страны и города только цифры без плюсов, скобок и других символов например для России 79167777777 или Украины 380527777777) или ВМ-идентификатор покупателя (строго 12 цифр) или E-mail покупателя. При этом интерфейс автоматически найдет ВМ -идентификатор или WebMoney чек, с которого может быть произведена оплата покупателем. |
lmi_clientnumber_type | lcnt | тип данных | да | Тип переданных в lmi_clientnumber данных, если передается мобильный телефон то необходимо указать в этом поле цифру 0, если ВМИД - цифру 1, если E-mail - цифру 2 |
lmi_sms_type | lst | тип СМС | да | Данное поле определяет тип подтверждения покупателем транзакции. Если в данном поле передать цифру 1, то покупателю будет выслана СМС. Если цифра 3, то будет произведена попытка (из настроек сделанных самим покупателем и анализа предыдущих платежей и т.п.) определить автоматически какой запрос будет предпочтительней для покупателя (в случае неуспеха будет выбран тип СМС). Если цифра 4, то СМС отправляться не будет и будет только выставлен ВМ-счет, который покупатель сможет оплатить через мобильное или какое-либо другое приложение WebMoney, но в этом случае будет недоступна оплата через WebMoney чек, так как в нем оплата возможна только при подтверждении через СМС. При этом обращаем внимание, что для любого значения от 1 до 4 данного параметра, если интерфейс определит, что оплата будет производиться с ВМ-идентификатора (не с WebMoney чека для которого обязательно нужен мобильный), то ВМ-счет все равно всегда будет выставлен покупателю. При этом покупатель может не получить СМС (если интерфейс вызывается именно с отправкой СМС), но он может оплатить счет в любом мобильном приложении по управлению кошельками и оплата пройдет штатно. Просто в подтверждающем запросе приложение продавца может не передавать подтверждающий код (передать значение кода равно 0) или даже передать любой код, при этом в ответе все равно будут переданы данные успешного платежа. Если цифра 5, то покупателю будет выслана СМС, при этом ВМ-счет НЕ будет выписан, то есть оплата будет возможна ТОЛЬКО через х20 и с подтверждением по СМС через интерфейс х20. Оптимальным для любых случаев в данном запросе является передача цифры 3. |
sign | Подпись запроса | нет(см. примечание) | Подпись производится ключами идентификатора wmid методом WMSigner и формируется из параметров: wmid + lmi_payee_purse + lmi_payment_no + lmi_clientnumber + lmi_clientnumber_type. Обратите внимание, что если кошелек lmi_payee_purse не принадлежит идентификатору wmid, то необходимо чтобы на security.web.money этому идентификатору было установлено доверие на выписку счетов для кошелька lmi_payee_purse. В случае если используется данный вариант аутентификации запроса, параметры sha256, md5 и secret_key должны остаться пустыми или не указываться. | |
sha256 | Подпись запроса | нет(см. примечание) | Подпись производится методом SHA256 и формируется из параметров: wmid + lmi_payee_purse + lmi_payment_no + lmi_clientnumber + lmi_clientnumber_type + secret_key. В случае если используется данный вариант аутентификации запроса, параметры sign, md5 и secret_key должны остаться пустыми или не указываться. Обратите внимание, что при формировании строки к которой применяется алгоритм sha256 в качестве secret_key используется значение секретного слова из настроек кошелька в сервисе merchant.webmoney.com , при этом в самом запросе необходимо передавать ТОЛЬКО результат работы алгоритма в параметре sha256, параметр secret_key должен остаться не указанным или пустым!!! Например для сформированной для подписи строки "123456123456R123456123456117985777777712345" в данном параметре необходимо передать значение равное "81D14240ABCD2C6EAF03699CF12F12A3CA3223E79E510C2E912FC6867E6DA201" | |
md5 | Подпись запроса | нет(см. примечание) | Подпись производится методом MD5 и формируется из параметров: wmid + lmi_payee_purse + lmi_payment_no + lmi_clientnumber + lmi_clientnumber_type + secret_key. В случае если используется данный вариант аутентификации запроса, параметры sign, sha256 и secret_key должны остаться пустыми или не указываться. Обратите внимание, что при формировании строки к которой применяется алгоритм md5 в качестве secret_key используется значение секретного слова из настроек кошелька в сервисе merchant.webmoney.com , при этом в самом запросе необходимо передавать ТОЛЬКО результат работы алгоритма в параметре MD5 , параметр secret_key должен остаться не указанным или пустым!!! Например для сформированной для подписи строки "123456123456R123456123456117985777777712345" в данном параметре необходимо передать значение равное "F4B0686BC1D22F9158B85B2DE4348ED7" | |
secret_key | lsk | секретное слово | нет(см. примечание) | В данном параметре передается значение секретного слова из настроек кошелька lmi_payee_purse в сервисе merchant.webmoney.com . Обратите внимание, что при использовании данного метода, проверка аутентичности соединения по https (валидности и принадлежности корневого сертификата сервера https://merchant.webmoney.com/ и т.п.) во избежание подмены DNS и т.п. остается на совести отправителя запроса. В случае если используется данный вариант аутентификации запроса, параметры sign, sha256 и md5 должны остаться пустыми или быть опущены. |
lang | l | язык ответа | нет | В данном параметре передается значение ru-RU или en-US соответственно для русского или английского языка интерфейса. Данное значение определяет и язык отправляемых пользователю SMS запросов и язык ответов в теге userdesc |
lmi_shop_id | lsi | номер магазина | нет(см. примечание) | Данный параметр обязателен к указанию только для агрегаторов (сервисы посредники осуществляющие прием платежей в пользу третьих лиц). В данном поле агрегаторы обязаны передавать регистрационный номер магазина в каталоге Меагасток http://www.megastock.ru/ в пользу которого осуществляется прием данного платежа |
LMI_HOLD | lh | блокировка средств | нет | Срок холдирования платежа (блокировки средств). Если данный параметр передан, то совершается транзакция с протекцией по времени на указанное количество суток. Для зачисления средств продавец должен завершить операцию с сайта merchant.webmoney.com или вызвать XML-интерфейс X5, если продавец не сделает данных действий, то по истечении указанного срока средства возвращаются плательщику. Досрочный возврат выполняется на странице merchant.webmoney.com или через XML-интерфейс X13 |
emulated_flag | ef | флаг эмуляции | нет | Данный флаг может помочь в случае необходимости эмулировать вызов данного первого запроса в интерфейсе. Флаг может принимать два значения 0 и 1. В случае указания 0 ничего не происходит. В случае указания 1 данный вызов происходит в режиме эмуляции. Это означает, что не происходит никаких реальных действий, не выписывается счет, не отправляется СМС пользователю, не регистрируется начало проведения платежа и т.п., но при этом в случае получения ответа с ошибкой 540 при указанном флаге - это означает что повторный вызов интерфейса с теми же параметрами, но без данного флага приведет к успеху (другими словами что пользователь в системе найден, у него есть средства на кошельках и т.п.). В случае если возникает любая другая ошибка, то именно она и будет получена при вызове интерфейса с теми же параметрами , но без флага. |
- формат ответа (XML):
<?xml version="1.0"?> <merchant.response> <operation wmtransid="" wminvoiceid=""> <realsmstype></realsmstype> </operation> <retval>0</retval> <retdesc></retdesc> <userdesc></userdesc> </merchant.response>
- формат ответа (JSON):
{ "operation": { "wminvoiceid":(int), "wmtransid":(int), "realsmstype":(int) }, "retval":(int), "retdesc":(string), "userdesc":(string) }
- параметры ответа:
название | назначение | примечание |
wminvoiceid | ВМ-номер счета | Уникальный номер ВМ-счета в системе WebMoney Transfer |
realsmstype | тип отправки СМС | Если в данном поле передана цифра 1 - это значит что покупателю отправлена SMS, 4 - ничего не отправлялось |
retval | номер ошибки | Цифровой код ошибки, в случае если выполнение запроса завершилось с ошибкой |
retdesc | описание ошибки | Текстовое описание ошибки для разработчиков приложения продавца, описывающее причины невозможности успешного выполнения запроса |
userdesc | информация для покупателя | В случае ошибки данный текст можно транслировать покупателю как инструкцию, которая поможет ему быстро и правильно понять, что необходимо сделать чтобы избежать ошибки в дальнейшем |
Задача приложения продавца при успешном вызове первого запроса, получить и сохранить соответствующее платежу значение wminvoiceid.
Без этого значения не может быть вызван второй, подтверждающий оплату запрос. Если по каким-либо причинам (имеются ввиду обрывы связи, таймауты и прочие НЕявные или недокументированные ошибки) данное значение не получено или не сохранено, то необходимо вызвать первый запрос повторно (при этом не меняя его!!!), при этом все параметры должны оставаться без изменений.
Если состояние запроса не будет выяснено и не будет получен wminvoiceid, то повторный вызов с изменением какого-либо параметра, например суммы платежа, приведет к выписке нового ВМ-счета и отправке новой СМС-ки, при этом потенциально возможна ситуация, когда покупатель оплатит ОБА счета, хотя исходя из логики работы приложения продавца возможна только единственная оплата.
В случае необходимости отмены приема средств по какому-либо wminvoiceid возможен вызов подтверждающего интерфейса с параметрами отказа от приема оплаты по счету wminvoiceid, в этом случае, если оплата еще не произошла до момента вызова отказа, то она и не будет произведена и приложение продавца может выставить новый счет, не опасаясь поступления средств по предыдущему счету.
Также в любой момент приложение продавца может выяснить состояние счета wminvoiceid путем вызова интерфейса X18 либо вызова повторного, подтверждающего интерфейса XMLTransConfirm.asp
Обратите внимание, что если Ваш кошелек продавца находится в тестовом режиме (например, это тестовый кошелек разработчика), то реальных транзакций не будет. Вызов интерфейса при тестовом режиме кошелька продавца будет полностью эмулировать реальную транзакцию. Иными словами, если Вы не получили ошибок при вызове интерфейса в тестовом режиме кошелька продавца (транзакция не было сделана из-за тестового режима), то в рабочем режиме при вызове с точно такими же параметрами транзакция точно будет сделана.
- URL для передачи второго, подтверждающего запроса - https://merchant.webmoney.com/conf/xml/XMLTransConfirm.asp
- метод - POST
- формат запроса:
<merchant.request> <wmid></wmid> <lmi_payee_purse></lmi_payee_purse> <lmi_clientnumber_code></lmi_clientnumber_code> <lmi_wminvoiceid></lmi_wminvoiceid> <secret_key></secret_key> <sign></sign> <sha256></sha256> <md5></md5> <lang></lang> </merchant.request>
кроме XML, интерфейс принимает данные в формате JSON
- метод - POST
- Content-Type - "text/json"
- формат запроса:
{ "wmid": (string), "lmi_payee_purse": (string), "lmi_wminvoiceid": (int), "lmi_clientnumber_code": (string), "secret_key": (string), "sign": (string), "sha256": (string), "md5": (string), "lang": (string) }
поддерживается также формат JSONP
- метод - GET
- Content-Type - "text/jsonp"
- параметр для передачи имени функции обратного вызова - callback
- параметры запроса:
название | get-параметр для JSONP | назначение | Обязательный? | примечание |
wmid | wmid | ВМ-идентификатор получателя или подписи | да | WMID, которому принадлежит кошелек, на который был принят платеж lmi_payment_no через сервис merchant.webmoney.com , либо WMID, подписавший запрос при использовании метода аутентификации WMSigner, при этом данному WMID , если ему не принадлежит кошелек, получивший платеж, должно быть дано доверие на выписку счетов от имени данного идентификатора |
lmi_payee_purse | lpp | ВМ-кошелек получателя платежа | да | Номер кошелька который зарегистрирован и настроен в сервисе merchant.webmoney и на который продавец будет принимать оплату |
lmi_clientnumber_code | lcnc | код покупателя | да | В данном поле передается цифровой код, который покупатель получил на мобильный телефон для подтверждения платежа. Если СМС не отправлялась покупателю (просто ожидается оплата покупателем ВМ-счета через мобильные программы управления кошельками), то здесь необходимо передать код со значением 0. В случае если все же СМС была отправлена покупателю, но покупатель оплатил ВМ -счет через программу управления кошельками, то передача здесь кода 0 все равно даст успешный результат, так как проверка кода просто не будет производиться. Если в данном параметре передать -1 и на момент выполнения запроса оплата еще не произошла, то счет будет отменен и оплата в дальнейшем будет невозможна. |
lmi_wminvoiceid | lwid | номер ВМ-счета | да | номер ВМ-счета wminvoiceid, полученный из ответа на предыдущий запрос |
sign | Подпись запроса | нет(см. примечание) | Подпись производится ключами идентификатора wmid методом WMSigner и формируется из параметров: wmid + lmi_payee_purse +lmi_wminvoiceid+lmi_clientnumber_code. Обратите внимание, что если кошелек lmi_payee_purse не принадлежит идентификатору wmid, то необходимо чтобы на security.web.money этому идентификатору было установлено доверие на выписку счетов для кошелька lmi_payee_purse. В случае если используется данный вариант аутентификации запроса, параметры sha256, md5 и secret_key должны быть не указаны или должны быть указаны пустыми (для JSON должны быть обязательно явно указаны пустыми). | |
sha256 | Подпись запроса | нет(см. примечание) | Подпись производится методом SHA256 и формируется из параметров: wmid + lmi_payee_purse +lmi_wminvoiceid+lmi_clientnumber_code+secret_key. В случае если используется данный вариант аутентификации запроса, параметры sign, md5 и secret_key должны быть не указаны или должны быть указаны пустыми (для JSON должны быть обязательно явно указаны пустыми). Обратите внимание, что при формировании строки, к которой применяется алгоритм sha256 в качестве secret_key используется значение секретного слова из настроек кошелька в сервисе merchant.webmoney.com , при этом в самом запросе необходимо передавать ТОЛЬКО результат работы алгоритма в параметре sha256 , параметр secret_key должен быть не указан или указан пустым (для JSON обязательно указан пустым)!!! | |
md5 | Подпись запроса | нет(см. примечание) | Подпись производится методом MD5 и формируется из параметров: wmid + lmi_payee_purse +lmi_wminvoiceid+lmi_clientnumber_code+secret_key. В случае если используется данный вариант аутентификации запроса, параметры sign, sha256 и secret_key должны быть не указаны или должны быть указаны пустыми (для JSON должны быть обязательно явно указаны пустыми). Обратите внимание, что при формировании строки, к которой применяется алгоритм md5 в качестве secret_key используется значение секретного слова из настроек кошелька в сервисе merchant.webmoney.com , при этом в самом запросе необходимо передавать ТОЛЬКО результат работы алгоритма в параметре MD5 , параметр secret_key должен быть не указан или указан пустым (для JSON обязательно указан пустым)!!! | |
secret_key | lsk | секретное слово | нет(см. примечание) | В данном параметре передается значение секретного слова из настроек кошелька lmi_payee_purse в сервисе merchant.webmoney.com . Обратите внимание, что при использовании данного метода, проверка аутентичности соединения по https (валидности и принадлежности корневого сертификата сервера https://merchant.webmoney.com/ и т.п.) во избежание подмены DNS и т.п. остается на совести отправителя запроса. В случае если используется данный вариант аутентификации запроса, параметры sign, sha256 и md5 должны быть не указаны или должны быть указаны пустыми (для JSON должны быть обязательно явно указаны пустыми). |
lang | l | язык ответа | нет | В данном параметре передается значение ru-RU или en-US соответственно для русского или английского языка интерфейса. Данное значение определяет и язык отправляемых пользователю SMS запросов и язык ответов в теге userdesc. Для JSON данный параметр должен быть обязательно явно указаны как минимум пустым. |
- формат ответа (XML):
<?xml version="1.0"?> <merchant.response> <operation wmtransid="" wminvoiceid=""> <amount></amount> <operdate></operdate> <purpose></purpose> <pursefrom></pursefrom> <wmidfrom></wmidfrom> </operation> <retval>0</retval> <retdesc></retdesc> <userdesc></userdesc> <smssentstate></smssentstate> </merchant.response>
- формат ответа (JSON):
{ "operation": { "wminvoiceid":(int), "wmtransid":(int), "amount":(float), "operdate":(string), "purpose":(string), "pursefrom":(string), "wmidfrom":(string) }, "retval":(int), "retdesc":(string), "userdesc":(string) "smssentstate":(string) }
- параметры ответа:
название | назначение | примечание |
wminvoiceid | номер ВМ-счета | Уникальный номер ВМ-счета в системе по которому производится оплата |
wmtransid | номер ВМ-транзакции | Уникальный номер транзакции. Если в данном параметре присутствует положительное число больше 0, только тогда это означает, что платеж был успешно совершен. Для обычных продавцов использующих merchant.webmoney наличие данного уникального номера транзакции означает, что средства от покупателя поступили и находятся на кошельке. Для продавцов, использующих processing.webmoney наличие wmtransid означает, что средства поступили, войдут в текущий реестр и будут отправлены очередным банковским переводом по этому реестру. Для продавцов с ВМИД Capitaller, настроивших в нем прием средств через merchant.webmoney это означает , что средства поступили на доходный кошелек и в ближайшее время будут распределены в соответствии с политикой бюджетного автомата. Если приложение продавца не имеет номер wmtransid (не зафиксировало его наличие или не сохранило его в своей системе учета), то ни предоставлять товар, ни оказывать услугу, ни пополнять лицевой счет и т.п. нельзя. В случае завершения запроса по таймауту или в случае обрыва связи его следует повторить до получения wmtranid или четкого номера ошибки в параметре retval, подтверждающего что платеж не прошел. |
amount | сумма платежа | Сумма платежа в ВМ-валюте того же типа, что и кошелек продавца. |
operdate | дата платежа | Дата платежа wmtransid по часам сервера системы. |
pursefrom | кошелек участника | Номер ВМ-Кошелька участника, с которого была совершена транзакция. Если платеж был совершен с WebMoney чека (в инициирующем запросе был передан мобильный телефон, система определила наличие чека с таким номером телефона в системе и была отправлена подтверждающая СМС), то в качестве кошелька будет фигурировать кошелек системы Paymer соответствующего типа Z000000000001 (или G, B, E) |
wmidfrom | ВМИД участника | ВМИД участника, с которого была совершена транзакция. Если платеж был совершен с WebMoney чека, то в качестве ВМИДа будет фигурировать ВМИД чековой системы Paymer 000000000000 |
retval | номер ошибки | Цифровой код ошибки, в случае если выполнение запроса завершилось с ошибкой |
retdesc | описание ошибки | Текстовое описание ошибки для разработчиков приложения продавца, описывающее причины невозможности успешного выполнения запроса |
userdesc | информация для покупателя | В случае ошибки данный текст можно транслировать пользователю как инструкцию, которая поможет ему быстро и правильно понять, что необходимо сделать чтобы избежать ошибки в дальнейшем |
smssentstate | статус отправки СМС | Если интерфейс завершен с ошибкой 553 (когда оплата осуществляется с Вебмани чека и передан Lmi_clientnumber_code=0 для выяснения состояния оплаты) или с ошибкой 556 (когда оплата осуществляется с WebMoney кошелька и она еще не прошла), то данный тег присутствует в ответе (если СМС, то есть lmi_sms_type = 1,3 ) и содержит состояние СМС BUFFERED - ожидает отправки SENDING - отправляется оператору SENDED- передано оператору DELIVERED- доставлено NON_DELIVERED - не доставлено SUSPENDED - отложено для повтора HLRPENDING - cообщение отложено в ожидании проверки идентификации SIM карты по данным HLR. HLRMISMATCH - проверка идентификации SIM карты по данным HLR выявила несовпадение (Подтвердить замену SIm карты пользователь может по ссылке https://security.web.money/asp/resetphs.asp). |
Напоминаем, что для возврата уже осуществленных платежей можно использовать безкомиссионный интерфейс возврата Интерфейс X14, он работает с любыми платежами, принятыми с помощью данного интерфейса и возвращает средства либо на кошелек плательщика, либо на его мобильный телефон WebMoney чека.
Описание ошибок, возвращаемых интерфейсом:
retval | retdesc |
-100 | общая ошибка при обработке запроса |
-1 | некорректный merchant.request/wmid |
-2 | некорректный merchant.request/lmi_payee_purse |
-2 | некорректный merchant.request/request_wminvoiceid (менее 5 или более 25 символов) |
-2 | некорректный merchant.request/request_clientnumber_code (менее 5 или более 25 символов) |
-3 | некорректный merchant.request/lmi_payement_no |
-4 | некорректное значение merchant.request/lmi_payment_amount |
-5 | некорректный merchant.request/lmi_payment_desc (менее 5 или более 235 символов) |
-6 | некорректный merchant.request/lmi_clientnumber (менее 5 или более 50 символов) |
-7 | некорректный merchant.request/lmi_clientnumber_type, должен состоять из 1 цифры |
-7 | некорректный merchant.request/lmi_clientnumber_type, должно быть указано 0, 1, 2 или 3 |
-9 | неверное значение sign |
-9 | неверное значение sign, допустимый формат :planstr |
-9 | неверное значение SHA256 или MD5, допустимый формат:planstr(данный planstr без secret_key) |
-8 | Попытка перевода с WM.Check на кошелек не удалась:PaymerResultNum |
500 | Указанный в lmi_clientnumber_code код неверен |
501 | Кошелек продавца не найден или находится не в рабочем режиме |
502 | Допускается только уникальное значение lmi_payment_no |
503 | Разрешены только кошельки WMZ, WME, WMX, WMG, WMH, WML |
504 | Идентификатор, указанный в тэге 'wmid' не обнаружен |
505 | Кошелек, указанный в lmi_payee_purse, не принадлежит указанному WMID и не имеет доверенности для выставления счетов |
506 | Не указан секретный ключ для lmi_payee_purse |
507 | Указанный секретный ключ для lmi_payee_purse неверен |
509 | Извините, для X20 недоступно свободное переключение в тестовый режим. Пожалуйста, переведите ваш кошелек продавца в рабочий режим (http://merchant.webmoney.com) или используйте фиксированный параметр тега lmi_payment_desc для совершения тестовых платежей (lmi_payment_desc=X20 тестовый платеж) |
510 | Платеж с WebMoney.Check невозможен, так как прием средств на кошелек продавца осуществляется в тестовом режиме. |
511 | Неверное значение lmi_clientnumber_type: допускается только номер телефона, WMID, или е-мейл |
512 | По номеру телефона, указанному в lmi_clientnumber_type не найдено ни одного WMID |
513 | Номер телефона, указанный в lmi_client_number не проверен |
514 | На WMID, найденном по номеру телефона, указанному в lmi_clientnumber_type недостаточно средств |
515 | Кошелек, найденный по указанному в lmi_clientnumber_type номеру телефона, используется для приема платежей при помощи Merchant и производить оплату с него не разрешается |
516 | WMID, указанный в lmi_clientnumber_type, не найден |
517 | В данных WMID, указанного в lmi_client_number нет проверенного номера телефона |
518 | На WMID, указанном в lmi_clientnumber_type недостаточно средств |
519 | Кошелек, найденный по указанному в lmi_clientnumber_type WMID, используется для приема средств при помощи Merchant и производить оплату с него не разрешается |
520 | По е-мейлу, указанному в lmi_clientnumber_type не найдено ни одного WMID |
521 | По указанному в lmi_client_number е-мейлу найден WMID, но в его аттестате нет проверенного номера телефона |
522 | По е-мейлу, указанному в lmi_clientnumber_type найден WMID, но на нем недостаточно средств |
523 | По е-мейлу, указанному в lmi_clientnumber_type найден WMID, но он используется для приема средств при помощи Merchant и производить оплату с него не разрешается |
524 | Сумма платежа превышает дневной лимит, установленный по-умолчанию |
525 | WMID найден, но для него не включена опция платежей по СМС. В то же время, эта опция включена для другого WMID, найденного по номеру телефона. Пожалуйста, используйте этот второй WMID для оплаты |
526 | Возможность оплаты отключена пользователем для данного телефона/WMID/е-мейла |
527 | Требуемый кошелек не найден в списке кошельков указанного (найденного) WMID плательщика |
528 | Сумма платежа превышает дневной лимит, установленный владельцем |
529 | Сумма платежа превышает недельный лимит, установленный владельцем |
530 | Сумма платежа превышает месячный лимит, установленный владельцем |
531 | На кошельке (указанном пользователем для СМС-платежей) недостаточно средств |
532 | СМС-платежи для найденного WMID отключены системой |
532 | Платежи с кошелька нужного типа отключены пользователем |
533 | СМС-платежи для найденного WMID отключены системой |
535 | Обнаружено слишком много отправленных СМС без совершения платежей для данного WMID/е-мейла/телефона |
543 | Попытка платежа с данного Чека на такую же сумму, с таким же номером и тому же продавцу была совершена менее 15 минут назад. Повторите попытку позже. |
550 | Номер платежа, указанный в lmi_wminvoiceid не зарегистрирован в системе как платеж с WebMoney.Check |
551 | Пользователь отказался от оплаты через WebMoney Check платежа lmi_wminvoiceid |
553 | Пользователь начал процесс оплаты через WM Check, но не указал код из СМС. Провести платеж при помощи WM.Check без введения кода из СМС невозможно. |
555 | Номер платежа, указанный в lmi_wminvoiceid не зарегистрирован в системе как СМС-платеж Webmoney |
556 | Указанный в lmi_clientnumber_code код неверен |
557 | Пользователь отказался от оплаты lmi_wminvoiceid |
558 | СМС для lmi_wminvoiceid не было отправлено XMLTransRequest |
565 | Использовать интерфейс в рабочем режиме могут владельцы начальных и выше аттестатов |
566 | Владельцу wmid, который был найден по телефону необходимо войти авторизоваться в своем WMID |
571 | WM.Check, указанный в lmi_client_number WebMoney, не существует |
572 | WM.Check, указанный в lmi_client_number WebMoney относится к другому типу титульных знаков (например, у продавца кошелек типа WMZ, а WebMoney check содержит кошелек типа WME) |
573 | На WM.Check, указанный в lmi_client_number недостаточно средств |
500 | Сообщение от WebMoney Transfer: вы неверно указали код, полученный по SMS для оплаты с вашего WebMoney-чека, возможно это код от другого платежа, дождитесь кода и попробуйте указать его снова. |
501 | Сообщение от WebMoney Transfer: в данный момент ваш продавец приостановил прием платежей, попробуйте, пожалуйста, позднее. |
502 | Только уникальное значение номера платежа в системе учета продавца является допустимым. Возможно вы уже делали или пытались делать платеж с таким номером и вам необходимо начать все снова. |
503 | Сообщение от WebMoney Transfer: В данный момент реализована возможность оплаты только для следующих типов кошельков WMZ, WME, WMX, WMG, WMH, WML. Вы пытаетесь заплатить на кошелек с типов ВМ-валюты, который пока не поддерживается. |
504 | Сообщение от WebMoney Transfer: в данный момент ваш продавец приостановил прием платежей, попробуйте, пожалуйста, позднее. |
505 | Сообщение от WebMoney Transfer: в данный момент ваш продавец приостановил прием платежей, попробуйте, пожалуйста, позднее. |
506 | Сообщение от WebMoney Transfer: в данный момент ваш продавец приостановил прием платежей, попробуйте, пожалуйста, позднее. |
507 | Сообщение от WebMoney Transfer: в данный момент ваш продавец приостановил прием платежей, попробуйте, пожалуйста, позднее. |
508 | Сообщение от WebMoney Transfer: в данный момент ваш продавец приостановил прием платежей, попробуйте, пожалуйста, позднее. |
509 | Сообщение от WebMoney Transfer: в данный момент ваш продавец приостановил прием платежей (кошелек в тестовом режиме), попробуйте, пожалуйста, позднее. |
510 | Сообщение от WebMoney Transfer: в данный момент ваш продавец приостановил прием платежей (кошелек в тестовом режиме), попробуйте, пожалуйста, позднее. |
511 | В данный момент можно заплатить только введя номер телефона или WM-идентификатор или E-mail, другие способы пока не поддерживаются. |
512 | По указанному вами телефону не найден ни один WM-идентификатор |
513 | По указанному вами телефону найден WM-идентификатор, но данный телефон не проверен, пожалуйста перейдите на passport.web.money и там в личных данных проверьте свой номер телефона, получив SMS и введя код проверки. |
514 | В WM-идентификаторе, который был найден по указанному вами телефону нет достаточного для оплаты количества средств |
515 | В WM-идентификаторе, который был найден по указанному вами телефону найден кошелек с достаточным для оплаты количеством средств, но этот кошелек настроен на прием оплаты в merchant.webmoney и заплатить с него нельзя. Пожалуйста, или пополните другой кошелек или зайдите на https://security.web.money/asp/trustlistmerch.asp и укажите точно какой именно кошелек необходимо использовать для оплаты в этом типе платежей по телефону. |
516 | Указанный WM-идентификатор не найден в системе. |
517 | Найден указанный вами WM-идентификатор, но телефон прописанный в нем не проверен, пожалуйста, перейдите на passport.web.money и там в личных данных проверьте свой номер телефона, получив SMS и введя код проверки. |
518 | Найден указанный вами WM-идентификатор, но на его кошельке средств для оплаты недостаточно. |
519 | В WM-идентификаторе, который был найден, есть кошелек с достаточным для оплаты количеством средств, но этот кошелек настроен на прием оплаты в merchant.webmoney и заплатить с него нельзя. Пожалуйста, или пополните другой кошелек или зайдите на https://security.web.money/asp/trustlistmerch.asp и укажите точно какой именно кошелек необходимо использовать для оплаты в этом типе платежей по телефону. |
520 | По указанному вами E-mail не найден ни один WM-идентификатор. |
521 | По указанному вами E-mail найден WM-идентификатор, но телефон в нем не проверен. Пожалуйста, перейдите на passport.web.money и там в личных данных проверьте свой номер телефона, получив SMS и введя код проверки. |
522 | На кошельках WM-идентификатора, который был найден по указанному вами E-mail, средств для оплаты недостаточно. |
523 | В WM-идентификаторе, который был найден по указанному вами E-mail, есть кошелек с достаточным для оплаты количеством средств, но этот кошелек настроен на прием оплаты в merchant.webmoney и заплатить с него нельзя. Пожалуйста, или пополните другой кошелек или зайдите на https://security.web.money/asp/trustlistmerch.asp и укажите точно какой именно кошелек необходимо использовать для оплаты в этом типе платежей по телефону. |
524 | Вы пытаетесь заплатить сумму, которая превышает лимит, установленный по умолчанию или назначенный вами. Отрегулировать лимиты для каждого типа кошельков можно на странице https://security.web.money/asp/trustlistmerch.asp |
525 | Указанный вами WM-идентификатор найден, но в нем не включена опция оплаты по SMS, она включена в другом WM-идентификаторе с тем же телефоном. Либо используйте его, либо включите опцию в этом ВМИД на странице https://security.web.money/asp/trustlistmerch.asp |
526 | По введенным вами данным найден WM-идентификатор, в котором опция оплаты по SMS была выключена владельцем WM-идентификатора. Включить ее опять можно на странице https://security.web.money/asp/trustlistmerch.asp |
527 | По введенным вами данным найден WM-идентификатор, но в нем нет подходящего для оплаты кошелька (или кошелек не настроен), произведите настройку кошелька на сайте https://security.web.money/asp/trustlistmerch.asp |
528 | Сумма платежа превышает назначенный вами (или по умолчанию) дневной лимит для платежей такого типа, регулировка лимитов находится на странице https://security.web.money/asp/trustlistmerch.asp |
529 | Сумма платежа превышает назначенный вами (или по умолчанию) недельный лимит для платежей такого типа, регулировка лимитов находится на странице https://security.web.money/asp/trustlistmerch.asp |
530 | Сумма платежа превышает назначенный вами (или по умолчанию) месячный лимит для платежей такого типа, регулировка лимитов находится на странице https://security.web.money/asp/trustlistmerch.asp |
531 | Назначенный вами (или по умолчанию) кошелек для платежей по SMS не имеет достаточной суммы. |
532 | По введенным вами данным найден WM-идентификатор, но кошелек требуемого типа не настроен на оплату через SMS, обратитесь к странице https://security.web.money/asp/trustlistmerch.asp |
532 | Для найденного WM-идентификатора платежи по SMS невозможны, обратитесь, пожалуйста в тех. поддержку системы WebMoney Transfer |
533 | Для найденного WM-идентификатора платежи по SMS невозможны, обратитесь, пожалуйста в тех. поддержку системы WebMoney Transfer |
534 | Вы уже платили данным способом (SMS), но с кошелька другого типа, к сожалению пока мы не можем автоматически включить вам возможность оплаты для этого типа кошелька. Установите для нужного кошелька лимиты на оплату на странице https://security.web.money/asp/trustlistmerch.asp и попробуйте снова. |
535 | Слишком много SMS не закончившихся оплатой отправлено на Ваш телефон, пожалуйста, подождите и попробуйте позднее. |
540 | Возникает только при вызове первого запроса интерфейса с указанным emulated_flag=1, означает что запрос в режиме эмуляции успешен. |
543 | Несколько минут назад вы уже пытались платить этому продавцу на эту же сумму и с этим же номером платежа, попробуйте пожалуйста позднее. |
550 | Что-то идет не так, вы пытаетесь подтвердить платеж, который не зарегистрирован в системе как платеж с WebMoney.Check, обратитесь, пожалуйста, с этой проблемой к своему продавцу. |
551 | Вы отказались от оплаты данного платежа с помощью WebMoney.Check, чтобы все же заплатить надо начинать снова. |
553 | Данный платеж пока еще не оплачен. Вы оплачиваете его через WebMoney чек, при этом вы не указали код, высланный вам по SMS. |
555 | Что-то идет не так, вы пытаетесь подтвердить платеж, который не зарегистрирован в системе как платеж с WebMoney, обратитесь, пожалуйста, с этой проблемой к своему продавцу. |
556 | Либо данный платеж пока еще не оплачен (если вы оплачиваете счет через какую-либо программу или сайт по управлению WM-кошельками), либо вы указали неверный код, высланный вам по SMS. |
557 | Вы отказались от оплаты данного платежа с помощью WebMoney, чтобы все же заплатить надо начинать снова. |
558 | SMS не была отправлена по данному платежу. |
565 | В данный момент Ваш продавец приостановил прием платежей |
566 | Вам необходимо авторизоваться в Вашем WMID и попробовать повторно выполнить платёж |
571 | Вы указали номер телефона по которому не зарегистрирован WebMoney.Check и поиск подходящего WM-идентификатора в системе по указанному телефону также ничего не дал (возможно WMID с таким телефоном есть, но на нем нет средств или нужного типа кошелька). |
572 | Вы указали номер телефона, по которому зарегистрирован WebMoney.Check, но его тип не совпадает с типом кошелька продавца, например, вы пытаетесь чеком с WME-балансом заплатить продавцу на WMZ-кошелек. |
573 | Вы указали номер телефона по которому не зарегистрирован WebMoney.Check, либо на нем нет требуемой для оплаты суммы, если на данном телефоне есть регистрация в WebMoney, то на найденных WMID нет необходимой суммы требуемого типа WM-валюты. |
-22 | Код не может быть больше 7 цифр |
см. также
XML-интерфейсы
Подключение опции оплаты с помощью SMS
Ролик, демонстрирующий оплату через X20
Демонстрационное приложение для iOS в исходниках + пример кода для сайта
Библиотека для работы с интерфейсом X20 и демонстрационное приложение для Android
Тематический сайт интерфейса