|
|
|
|
|
|
|
|
 |
|
Интерфейс X7. Идентификация и аутентификация клиента - владельца WM Keeper Classic на стороннем сайте. (НЕ ПОДДЕРЖИВАЕТСЯ)
НЕ ПОДДЕРЖИВАЕТСЯ !!!
Этот интерфейс доступен только зарегистированным клиентам. Для регистрации перешлите по внутренней почте на WM ID 941977853154 (Техническая поддержка) краткую информацию о проекте, URL сайта, IP-адрес с которого будут отсылаться запросы, цель и способ использования интерфейса. Кипер подписывающий запросы должен иметь персональный аттестат (запросы обрабатываются до 3х раб. дней).
| URL для передачи запроса с авторизацией по ключами WM Keeper Classic |
https://w3s.webmoney.ru/asp/XMLClassicAuth.asp |
| URL для передачи запроса с авторизацией по ключами WM Keeper Light |
https://w3s.wmtransfer.com/asp/XMLClassicAuthCert.asp |
| метод |
POST |
| формат запроса |
|
| параметры запроса |
| название |
назначение |
примечание |
| wmid |
WMId подписавшего запрос |
используется только при авторизации с ключами WM Keeper Classic |
| sign |
подпись запроса формируется из параметров: wmid+testsign\wmid+testsign\plan+testsign\sign |
используется только при авторизации с ключами WM Keeper Classic |
| message |
параметры передаваемого сообщения |
|
| testsign\wmid |
WM-идентфиикатор клиента, которого необходимо аутентифицировать |
12 цифр |
| testsign\sign |
подпись строки, передаваемой в параметре testsign\plan, сформированная клиентом, которого необходимо аутентифицировать |
|
| testsign\plan |
строка, которую должен был подписать клиент |
|
| параметры ответа |
| название |
назначение |
примечание |
| retval |
код выполнения запроса |
0 - запрос выполнен |
| retdesc |
расшифровка кода выполнения запроса |
|
| res |
результат аутентификации |
yes - аутентификация выполнена успешно, no - аутентификация не выполнена (неверная подпись клиента) |
пример вызова интерфейса (IIS, ASP, JScript, MSXML)<%@ Language=JScript %>
<%
try
{
var AuthorizeType = 'light' // 'classic'
var url;
if ('classic'== AuthorizeType)
url = 'https://w3s.webmoney.ru/asp/XMLClassicAuth.asp'
else
url = 'https://w3s.wmtransfer.com/asp/XMLClassicAuthCert.asp'
var clientwmid = '111111111111'
var clientplanstr = 'строка для проверки'
var clientsignstr = '43daff1f851ee6899f952bf53313'+
'd975486157c3e662fa335025db723dac73746d52ae185b4'+
'525e54f4fc3eed63a36dbed47e68a50d2b258fb15acac2d3d2e2f0037'
var reqwmid = '222222222222'
var signstr // только для 'classic'
var reqn = (new Date()).valueOf()
if ('classic'== AuthorizeType)
{
var planstr = '' + reqwmid+clientwmid+clientplanstr+clientsignstr
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 += ' '+clientwmid+''
s += ' '+clientplanstr+''
s += ' '+clientsignstr+''
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, 10)
if (0==retcode)
{
Node = xmlres.selectSingleNode("w3s.response/testsign/res")
if (Node.text == 'yes')
{
// аутентификация выполнена
}
}
}
catch(e)
{
Response.Write('error:'+(new Number(e.number)).toString(16)+' \r\n')
Response.Write('desc:'+e.description+'\r\n')
}
%>
|
 |
|
|
|
|
|
|
|
|
|
|
|
|
|