WebMoney

Wiki

Соглашение о передаче информации

Стороны признают документы в электронной форме, составленные посредством программно-аппаратного комплекса "WebMoney Transfer", подписанными аналогом собственной ручной подписи в соответствии с пунктом 2 статьи 160 ГК Российской Федерации аутентичными документам на бумажном носителе подписанным собственноручной подписью уполномоченных лиц Сторон, имеющими одинаковую юридическую силу и признаются равнозначным основанием для выполнения операций, предусмотренных в отношениях Сторон, носящих обязательственный характер, а также могут использоваться в качестве доказательств в суде и в других государственных и негосударственных органах и организациях.

Идентификация Сторон осуществляется индивидуальным идентификационным номером и паролем в программно-аппаратном комплексе "WebMoney Transfer".

Агенту необходимо инсталлировать WM Keeper Classic и его активировать. Рекомендации пользователям WM Keeper Classic по установке и активации находятся на страницах сайтов https://security.webmoney.ru/asp/keeperclassic.asp и WM Keeper WinPro.

После активизации Keeper Classic Агент согласно п. 3.1.1. Договора направляет Банку уведомление о готовности к информационному обмену по Договору по форме в соответствии с Приложением № 1 к настоящему Соглашению о передаче информации. После получения Банком от Агента вышеуказанного уведомления для Агента активизируется доступ к XML-запросам ресурса https://w3s.kkb.ru.

В рамках настоящего соглашения «часы» Банка соответствуют часам по московскому времени.

Интерфейс в виде XML-запросов к сертификационному Web-серверу системы.

Для организации процедуры доверия браузера, используемого Агентом, необходимо установить сертификат системы Webmoney Transfer и ресурса https://w3s.kkb.ru. Инструкцию по установке сертификата смотрите в статье о корневом сертификате системы.

XML-запросы отправляются Агентом на веб-сервер Банка методом HTTPS POST через SSL соединение, которым обеспечивается закрытие информации, передающейся в запросах по публичному WWW. Аутентификация Агента перед Банком производится с помощью модуля аутентификации WMSigner.

Модуль аутентификации WMSigner позволяет формировать цифровую подпись каждой операции при вызове интерфейса с помощью ключей, сгенерированных клиентом при регистрации в системе с использованием WM Keeper Classic. Алгоритм формирования подписи позволяет однозначно идентифицировать WMID, от имени которого выполняется операция.

Модуль WMSigner поставляется в виде исходного кода (для Unix-систем) на С++, исполняемого бинарного файла (для Win32) или в виде ActiveX-объекта (только для Win32). Более детально с модулем аутентификации WMSigner вы можете ознакомиться на страницах сайтов http://www.webmoney.ru и http://wiki.webmoney.ru.

Для использования интерфейса необходимо последовательно произвести два XML-запроса.

  1. Предварительный запрос на возможность проведения платежа.
  2. Запрос на проведение платежа.

    Весь русифицированный текст в запросе надо передавать в кодировке UTF-8.

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

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

<w3s.request>
   <wmid></wmid>
   <sign type=”1”></sign>
   <payment  id="" >
       <price></price>
       <purse></purse>
       <phone></phone>
   </payment>
</w3s.request>
  • параметры запроса:
название назначение примечание
wmid WMID подписавшего запрос используется при авторизации с ключами WM Keeper WinPro или сертификатом X.509 WM Keeper WebPro
sign подпись запроса формируется из параметров: wmid+ price+phone+purse
sign/@type тип подписи запроса 1 - подпись сформирована с использованием специального модуля аутентификации для ключей WM Keeper WinPro 2 - подпись сформирована с использованием сертификата X.509 WM Keeper WebPro в кодировке base64
payment/@id уникальный номер транзакции в системе Агента, формируемый вызывающим запрос. Задается целым десятичным числом, заключенным в двойные кавычки и содержит не более 18 цифр. Уникальность «id» позволяет выполнять запрос повторно с тем же номером транзакции и параметрами в случае не получения ответа на запрос (обрыв связи и т.д.).
payment/price определяет сумму, принятую от Плательщика;"число с плавающей точкой (разделитель - .(точка) ) и для десяти с половиной может выглядеть так: 10.5 незначащие нули в конце и точка, если число целое, должны отсутствовать, например, 10.50 - не верно, 10.5 - верно, 9. - не верно, 9 - верно
payment/purse учетный реквизит Плательщика в системе БАНКА строка – 13 символов, первый символ латинская буква R и 12 цифр; пробелы не допускаются
payment/phone номер мобильного телефона Плательщика, используется для идентификации Плательщика Задается десятичным числом, начиная с кода страны (Россия: 7) и содержит не более 14 цифр; пробелы не допускаются
  • формат ответа:
<w3s.response>
    <retval></retval>
    <retdesc></retdesc>
        <payment  id="">
               <price></price>
               <purse></purse>
               <phone></phone>
               <limit></limit>
               <wmid></wmid>
               <rest></rest>
         </payment>
</w3s.request>
  • параметры ответа
название назначение примечание
retval код состояния или ошибки 0 - означает успешное прохождение запроса. Значение других кодов возврата говорит о неудачном прохождении запроса. Возможные коды возврата: 1 – неисправность технических средств; 2 – не хватает средств обеспечения для выполнения зачисления.
Повторять запрос на проведение платежа нужно после устранения причины, вызвавшей ошибку и обязательно с соответствующим этому платежу уникальным номером транзакции в системе Агента (id - уникальный номер). Если в ответе на запрос получен <retval> =0, то при повторном запросе с теми же параметрами запроса, будет получен аналогичный ответ с теми же атрибутами. Если в ответе на запрос получен <retval> =1 или <retval> =2, то после устранении причины отказа, при повторном запросе с теми же параметрами платеж будет зачислен.
retdesc текстовое описание ошибки/пусто текст описания ошибки. произвольная строка от 0 до 255 символов, кодировка win-1251
payment/@id уникальный номер транзакции в системе Агента, формируемый вызывающим запрос. Задается целым десятичным числом, заключенным в двойные кавычки и содержит не более 18 цифр. Уникальность «id» позволяет выполнять запрос повторно с тем же номером транзакции и параметрами в случае не получения ответа на запрос (обрыв связи и т.д.).
payment/price определяет сумму, принятую от Плательщика;"число с плавающей точкой (разделитель - .(точка) ) и для десяти с половиной может выглядеть так: 10.5 незначащие нули в конце и точка, если число целое, должны отсутствовать, например, 10.50 - не верно, 10.5 - верно, 9. - не верно, 9 - верно
payment/purse учетный реквизит Плательщика в системе БАНКА строка – 13 символов, первый символ латинская буква R и 12 цифр; пробелы не допускаются
payment/phone номер мобильного телефона Плательщика, используется для идентификации Плательщика Задается десятичным числом, начиная с кода страны (Россия: 7) и содержит не более 14 цифр; пробелы не допускаются
payment/limit максимально возможная сумма реализации
на Учетный реквизит Плательщика
возвращается сумма, которая может в данный момент быть передана на Учетный реквизит Плательщика в соответствии с лимитами, устанавливаемыми БАНКОМ. Если нет ограничений по лимиту, будет возвращено значение 99999999, например: <limit>99999999</limit>
payment/wmid наименование или идентификатор определяет идентификатор БАНКА в системе Агента (12 цифр). Пробелы не допускаются
payment/rest остаток средств обеспечения сумма средств обеспечения БАНКА, возможных для приема платежа. Незначащие нули в конце и точка, если число целое, должны отсутствовать, например, 10.50 - не верно, 10.5 - верно, 9. - не верно, 9 - верно

Запрос на проведение платежа

Запрос на проведение платежа выполняется после успешного выполнения Предварительного запроса. При выполнении этого запроса принимаются все платежи, за исключением двух ситуаций неисправность технических средств и недостаток средств обеспечения для реализации платежа. Если при выполнении этого запроса был получен отрицательный ответ, необходимо, после устранения причин повторять этот запрос с тем же номером уникальным id (во избежание двойного зачисления) до получения положительного ответа. Платеж считается принятым, если при выполнении запроса был получен положительный ответ <retval>0<retval> .

<w3s.request>
   <wmid> WMID подписавшего запрос</wmid>
   <sign type=”1”>  Строка подписи запроса </sign>
   <payment id=" номер транзакции"   test="1/0">
      <name>    </name>
      <passport_serie> </passport_serie>
      <passport_number> </passport_number>
      <passport_date> </passport_date>
      <price> </ price>
      <purse> </purse>
      <cheque> </cheque>
      <date> </date>
      <kiosk_id> </kiosk_id>
      <phone> </phone>
   </payment>
</w3s.request>
  • параметры запроса
название назначение примечание
wmid WMID подписавшего запрос используется при авторизации с ключами WM Keeper WinPro или сертификатом X.509 WM Keeper WebPro
sign подпись запроса формируется из параметров: id + price + cheque + kiosk_id
sign/@type тип подписи запроса 1 - подпись сформирована с использованием специального модуля аутентификации для ключей WM Keeper WinPro 2 - подпись сформирована с использованием сертификата X.509 WM Keeper WebPro в кодировке base64
payment/@id уникальный номер транзакции в системе Агента, формируемый вызывающим запрос. Задается целым десятичным числом, заключенным в двойные кавычки и содержит не более 18 цифр. Уникальность «id» позволяет выполнять запрос повторно с тем же номером транзакции и параметрами в случае не получения ответа на запрос (обрыв связи и т.д.).
payment/@test определяет режим запроса Задается значениями "0" или "1". «test» равен "1"- платеж проводится в тестовом режиме, «test» равен "0" - платеж реальный. Например: < payment> id="93578" test="0" </payment>. При этом номер id должен быть уникальным для тестовых и реальных запросов. Если id был использован для тестового запроса, его нельзя использовать для реального запроса
payment/name полное имя Плательщика (Фамилия, Имя, Отчество) необязательное поле
payment/passport_serie серия паспорта Плательщика необязательное поле
payment/passport_number номер паспорта Плательщика необязательное поле
payment/passport_date дата выдачи паспорта Плательщика необязательное поле
payment/price определяет сумму, принятую от Плательщика;"число с плавающей точкой (разделитель - .(точка) ) и для десяти с половиной может выглядеть так: 10.5 незначащие нули в конце и точка, если число целое, должны отсутствовать, например, 10.50 - не верно, 10.5 - верно, 9. - не верно, 9 - верно
payment/purse учетный реквизит Плательщика в системе БАНКА строка – 13 символов, первый символ латинская буква R и 12 цифр; пробелы не допускаются
payment/phone номер мобильного телефона Плательщика, используется для идентификации Плательщика Задается десятичным числом, начиная с кода страны (Россия: 7) и содержит не более 14 цифр; пробелы не допускаются
payment/cheque определяет номер документа выданный Плательщику Агентом Задается целым десятичным числом и содержит не более 16 цифр; пробелы не допускаются
payment/date дата приема платежа по "часам" Агента Имеет формат YYYYMMDD HH:mm:ss, где YYYY – число года, MM – число месяца, DD – число дня, HH – часы, mm – минуты, ss – секунды. Например: <date> 20071030 12:04:03; пробелы не допускаются
payment/kiosk_id идентификатор точки приема платежа Агента Уникальный идентификатор автомата или банкомата или терминала и т.п. Задается целым десятичным числом и содержит не более 16 цифр; пробелы не допускаются
  • формат ответа:
 
<w3s.response>
   <retval> </retval>
   <retdesc>     </retdesc>
   <payment id=" "    test="1/0">
       <number> </number>
       <name> </name>
       <passport_serie> </passport_serie>
       <passport_number> </passport_number>
       <passport_date> </passport_date>
       <price> </ price>
       <amount> </amount>
       <bonus></bonus>
       <rest>    </rest>
       <purse>     </purse>
       <cheque></cheque>
       <date></date>
       <kiosk_id> </kiosk_id>
       <phone>    </phone>
       <wmtranid></wmtranid>
       <wmdate></wmdate>
    </payment>
</w3s.request>
  • параметры ответа
название назначение примечание
retval код состояния или ошибки 0 - означает успешное прохождение запроса. Значение других кодов возврата говорит о неудачном прохождении запроса. Возможные коды возврата: 1 – неисправность технических средств; 2 – не хватает средств обеспечения для выполнения зачисления.
Повторять запрос на проведение платежа нужно после устранения причины, вызвавшей ошибку и обязательно с соответствующим этому платежу уникальным номером транзакции в системе Агента (id - уникальный номер). Если в ответе на запрос получен <retval> =0, то при повторном запросе с теми же параметрами запроса, будет получен аналогичный ответ с теми же атрибутами. Если в ответе на запрос получен <retval> =1 или <retval> =2, то после устранении причины отказа, при повторном запросе с теми же параметрами платеж будет зачислен.
retdesc текстовое описание ошибки/пусто текст описания ошибки. произвольная строка от 0 до 255 символов, кодировка win-1251
payment/@id уникальный номер транзакции в системе Агента, формируемый вызывающим запрос. Задается целым десятичным числом, заключенным в двойные кавычки и содержит не более 18 цифр. Уникальность «id» позволяет выполнять запрос повторно с тем же номером транзакции и параметрами в случае не получения ответа на запрос (обрыв связи и т.д.).
payment/@test определяет режим запроса Задается значениями "0" или "1". «test» равен "1"- платеж проводится в тестовом режиме, «test» равен "0" - платеж реальный. Например: < payment> id="93578" test="0" </payment>. При этом номер id должен быть уникальным для тестовых и реальных запросов. Если id был использован для тестового запроса, его нельзя использовать для реального запроса
payment/number шестнадцатисимвольный код платежа Задается буквами латинского алфавита (A,B,С,D,E,F) и десятичными цифрами. Например: A7634FC7634D3290
payment/name полное имя Плательщика (Фамилия, Имя, Отчество)
payment/passport_serie серия паспорта Плательщика
payment/passport_number номер паспорта Плательщика
payment/passport_date дата выдачи паспорта Плательщика
payment/price определяет сумму, принятую от Плательщика;"число с плавающей точкой (разделитель - .(точка) ) и для десяти с половиной может выглядеть так: 10.5 незначащие нули в конце и точка, если число целое, должны отсутствовать, например, 10.50 - не верно, 10.5 - верно, 9. - не верно, 9 - верно
payment/amount определяет сумму к зачислению на Учетный реквизит Плательщика незначащие нули в конце и точка, если число целое отсутствуют, например, 10.50 - не верно, 10.5 - верно, 9. - не верно, 9 - верно
payment/bonus сумма вознаграждения Агента вознаграждение Агента в соответствии с п. 4.1. настоящего договора. Задается десятичным числом с точностью до второго знака с разделителем «.»(точка). Сумма вознаграждения Агента, в соответствии с п. 4.1. Договора, вычисляется по формуле: bonus= price*процент Агента по договору/100.
незначащие нули в конце и точка, если число целое, должны отсутствовать, например, 10.50 - не верно, 10.5 - верно, 9. - не верно, 9 - верно
payment/rest остаток средств обеспечения сумма средств обеспечения БАНКА, возможных для приема платежа. Незначащие нули в конце и точка, если число целое, должны отсутствовать, например, 10.50 - не верно, 10.5 - верно, 9. - не верно, 9 - верно
payment/purse учетный реквизит Плательщика в системе БАНКА строка – 13 символов, первый символ латинская буква R и 12 цифр; пробелы не допускаются
payment/phone номер мобильного телефона Плательщика, используется для идентификации Плательщика Задается десятичным числом, начиная с кода страны (Россия: 7) и содержит не более 14 цифр; пробелы не допускаются
payment/cheque определяет номер документа выданный Плательщику Агентом Задается целым десятичным числом и содержит не более 16 цифр; пробелы не допускаются
payment/date дата приема платежа по "часам" Агента Имеет формат YYYYMMDD HH:mm:ss, где YYYY – число года, MM – число месяца, DD – число дня, HH – часы, mm – минуты, ss – секунды. Например: <date> 20071030 12:04:03; пробелы не допускаются
payment/kiosk_id идентификатор точки приема платежа агента Уникальный идентификатор автомата или банкомата или терминала и т.п. Задается целым десятичным числом и содержит не более 16 цифр; пробелы не допускаются
payment/wmtranid возвращает номер транзакции в системе Банка настоятельно рекомендуется хранение в учетной системе Агента связки уникального id и уникального соответствующего ему wmtranid, что позволяет 100% идентифицировать любой платеж. задается целым десятичным числом
payment/wmdate дата операции по "часам" БАНКА дата операции по "часам" БАНКА. имеет формат YYYYMMDD HH:mm:ss, где YYYY – число года, MM – число месяца, DD – число дня, HH – часы, mm – минуты, ss – секунды

Возврат <retval>0<retval> означает успешное прохождение платежа.

В случае неполучения ответа или получение кода ошибки в ответе (технические неисправности: разрыв связи, timeout и т.п.), запрос на проведение платежа необходимо повторять (с теми же реквизитами во избежание двойного зачисления) после устранения причины, вызвавшей ошибку, до тех пор, пока не будет получен положительный ответ.

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