Этот интерфейс доступен только зарегистированным клиентам.
Для регистрации перешлите по внутренней почте на WM ID 941977853154 (Техническая поддержка) краткую информацию о проекте, URL сайта, IP-адрес с которого будут отсылаться запросы, цель и способ использования интерфейса. Кипер подписывающий запросы должен иметь персональный аттестат (запросы обрабатываются до 3х раб. дней).
| URL для передачи запроса с авторизацией по ключами WM Keeper Classic |
https://w3s.webmoney.ru/asp/XMLFindWMPurse.asp |
| URL для передачи запроса с авторизацией по ключами WM Keeper Light |
https://w3s.wmtransfer.com/asp/XMLFindWMPurseCert.asp |
| метод |
POST |
| формат запроса |
|
| параметры запроса |
| название |
назначение |
примечание |
| reqn |
номер запроса |
целое без знака, макс. количество цифр - 15; всегда должен быть больше номера предыдущего запроса перевод средств!!! |
| wmid |
WMId подписавшего запрос |
используется только при авторизации с ключами WM Keeper Classic |
| sign |
подпись запроса формируется из параметров: testwmpurse\wmid+testwmpurse\purse |
используется только при авторизации с ключами WM Keeper Classic |
| testwmpurse |
параметры запроса |
в зависимости от решаемой поисковой задачи можно указывать как один параметр так и оба. возможные варианты приведены в таблице ниже |
| testwmpurse\wmid |
WM-идентификатор |
12 цифр |
| testwmpurse\purse |
кошелек |
первый символ один из - Z,R,E,U,C,D и 12 цифр |
| параметры ответа |
| название |
назначение |
примечание |
| reqn |
номер запроса |
|
| retval |
код выполнения запроса (поиска) |
1 - поиск успешный, 0 - не нашли |
| retdesc |
расшифровка кода выполнения запроса |
|
| testwmpurse |
параметры ответа |
возможные варианты возвращаемых параметров приведены в таблице ниже |
| testwmpurse\wmid |
искомый WM-идентификатор |
если поиск успешный (WM-идентификатор существует) - искомый идентификатор, если нет - значение отсутствует |
| testwmpurse\purse |
искомый кошелек |
если поиск успешный (кошелек существует или принадлежит указанному идентификатору) - заданный кошелек |
Возможные варианты использования запроса для различных поисковых задач
| решаемая задача |
передаваемые параметры |
результат поиска/ значение retval |
возвращаемые параметры |
| поиск по идентификатору |
wmid |
найден/1 |
wmid |
| не найден/0 |
|
| поиск по кошельку |
purse |
найден/1 |
wmid purse |
| не найден/0 |
purse |
| принадлежит ли кошелек идентфикатору |
wmid purse |
принадлежит/1 |
wmid purse |
| не принадлежит/1 |
wmid |
| идентификатор не зарегистрирован/0 |
|
пример вызова интерфейса (IIS, ASP, JScript, MSXML)
<%@ Language=JScript %>
<%
try
{
var AuthorizeType = 'classic' // 'light'
var url;
if ('classic'== AuthorizeType)
url = 'https://w3s.webmoney.ru/asp/XMLFindWMPurse.asp'
else
url = 'https://w3s.wmtransfer.com/asp/XMLFindWMPurseCert.asp'
var findwmid = '111111111111'
var findpurse = 'Z111111111111'
var reqwmid = '941977853154'
var signstr // только для 'classic'
var reqn = (new Date()).valueOf()
if ('classic'== AuthorizeType)
{
var planstr = '' + findwmid+findpurse
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 += ' '+findwmid+''
s += ' '+findpurse+''
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 = 0
var purse
var Node = xmlres.selectSingleNode("w3s.response/retval")
if (null!=Node)
retcode = parseInt(Node.text, 10)
if (1==retcode)
{
// wmid существует
purse = xmlres.selectSingleNode("w3s.response/testwmpurse/purse")
if (purse.Text == findpurse)
{
// purse принадлежит wmid
}
}
}
catch(e)
{
Response.Write('error:'+(new Number(e.number)).toString(16)+'
\r\n')
Response.Write('desc:'+e.description+'\r\n')
}
%>