|
|
|
|
|
|
|
|
 |
|
Интерфейс X3. Получение истории операций по кошельку. Проверка выполнения операции по переводу средств.
| URL для передачи запроса с авторизацией по ключами WM Keeper Classic |
https://w3s.webmoney.ru/asp/XMLOperations.asp |
| URL для передачи запроса с авторизацией по ключами WM Keeper Light |
https://w3s.wmtransfer.com/asp/XMLOperationsCert.asp |
| метод |
POST |
| формат запроса |
|
| параметры запроса |
| название |
назначение |
примечание |
| reqn |
номер запроса |
целое без знака, макс. количество цифр - 15; всегда должен быть больше номера предыдущего запроса на перевод средств!!! |
| wmid |
WMId подписавшего запрос |
используется только при авторизации с ключами WM Keeper Classic |
| sign |
подпись запроса формируется из параметров: purse + reqn |
используется только при авторизации с ключами WM Keeper Classic |
| getoperations |
параметры запрашиваемой операции, по которым ведется поиск |
обязательные параметры purse, datestart, datefinish, остальные можно не задавать или указывать 0 |
| getoperations\purse |
номер кошелька для которого запрашивается операция |
|
| getoperations\wmtranid |
номер операции (в системе WebMoney) |
целое число > 0, максимально 231-1 |
| getoperations\tranid |
номер перевода |
номер перевода в системе учета отправителя; любое целое число без знака (см. trans\tranid в интерфейсе X2) |
| getoperations\wminvid |
номер счета (в системе WebMoney) по которому выполнялась операция |
целое число > 0, максимально 231-1 |
| getoperations\orderid |
номер счета |
номер счета в системе учета магазина; любое целое число без знака (см. trans\tranid в интерфейсе X2) |
| getoperations\datestart |
минимальное время и дата выполнения операции |
ГГГГММДД ЧЧ:ММ:СС |
| getoperations\datefinish |
максимальное время и дата выполнения операции |
ГГГГММДД ЧЧ:ММ:СС |
| параметры ответа |
| название |
назначение |
примечание |
| reqn |
номер запроса |
|
| retval |
код выполнения запроса |
0 - запрос выполнен |
| retdesc |
расшифровка кода выполнения запроса |
|
| operations |
список платежей, полученных по запросу |
атрибут cnt - кол-во платежей, удовлетроряющих запросу |
| operations\operation |
параметры платежа |
атрибут id - уникальный номер платежа в системе учета WebMoney атрибут ts - служебный номер платежа в системе учета WebMoney
|
| operation\tranid |
номер перевода |
номер перевода в системе учета отправителя; любое целое число без знака, должно быть уникальным (два перевода с одним и тем же tranid невозможно) |
| operation\pursesrc |
номер кошелька с которого выполняется перевод (отправитель) |
|
| operation\pursedest |
номер кошелька, но который выполняется перевод (получатель) |
|
| operation\amount |
сумма платежа |
|
| operation\comiss |
комиссия за выполненный платеж |
|
| operation\opertype |
тип перевода (платежа) |
исходящий платеж:
0 – обычный,
4 – с протекцией (не завершена),
12 – с протекцией (вернулась). входящий платеж:
2 – обычный,
6 – с протекцией (не завершена),
14 – с протекцией (вернулась). |
| operation\period |
срок протекции сделки в днях |
целое число от 0 до 255; если 0 - операция без протекции сделки |
| operation\wminvid |
номер счета (в системе WebMoney), по которому выполняется перевод |
целое число > 0; если 0 - перевод не по счету, максимально 231-1 |
| operation\orderid |
номер счета (в системе магазина, выдавшего счет), по которому выполняется перевод |
целое число > 0; если 0 - перевод не по счету, максимально 231-1 |
| operation\desc |
описание оплачиваемого товара или услуги |
|
| operation\datecrt |
дата и время выполнения операции |
|
| operation\dateupd |
дата и время последнего изменения состояния операции |
|
| operation\corrwm |
WMID корреспондента |
|
| operation\rest |
остаток после выполнения операции |
|
пример вызова интерфейса (IIS, ASP, JScript, MSXML)<%@ Language=JScript %>
<%
try
{
var AuthorizeType = 'light' // 'classic'
var url;
if ('classic'== AuthorizeType)
url = 'https://w3s.webmoney.ru/asp/XMLOperations.asp'
else
url = 'https://w3s.wmtransfer.com/asp/XMLOperationsCert.asp'
var purse = 'R111111111111'
var wmtranid = 0
var tranid = 89
var wminvid = 0
var orderid = 0
var datestart = '20020409 00:00:00'
var datefinish = '20020412 00:00:00'
var reqwmid = '111111111111'
var signstr // только для 'classic'
var reqn = (new Date()).valueOf()
if ('classic'== AuthorizeType)
{
var planstr = purse+reqn
var reqwmpwd = 'password'
var reqwmfilename = 'c:\\wmkeeperclassickeyfile.kwm'
var Signer = Server.CreateObject("WMSignerX.Signer")
Signer.Login = reqwmid
Signer.Passwd = reqwmpwd
Signer.KeyFName = reqwmfilename
signstr = Signer.SignString(planstr)
}
var s = ''
s += ''+reqn+''
if ('classic' == AuthorizeType)
{
s += ''+reqwmid+''
s += ''+signstr+''
}
s += ''
s += ' '+purse+''
s += ' '+wmtranid+''
s += ' '+tranid+''
s += ' '+wminvid+''
s += ' '+orderid+''
s += ' '+datestart+''
s += ' '+datefinish+''
s += ''
s += ''
var xmlhttp = Server.CreateObject ("MSXML2.ServerXMLHTTP");
if ('light' == AuthorizeType)
{
xmlhttp.setOption(3, 'WM id: '+reqwmid)
}
xmlhttp.open('POST', url, false);
xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xmlhttp.send(s);
var texttes = xmlhttp.responseText;
// Response.Write(texttes) // при отладке можно посмотреть весь ответ
var xmlres = Server.CreateObject ('Microsoft.XMLDOM');
xmlres.loadXML(texttes);
var retcode = -1
var Node = xmlres.selectSingleNode("w3s.response/retval")
if (null!=Node)
retcode = parseInt(Node.text)
if (0==retcode)
{
// получилось
}
}
catch(e)
{
Response.Write('error:'+(new Number(e.number)).toString(16)+' \r\n')
Response.Write('desc:'+e.description+'\r\n')
}
%>
|
 |
|
|
|
|
|
|
|
|
|
|
|
|
|