|
|
|
|
|
|
|
|
 |
|
Интерфейс X1. Выписывание счета от одного участника (магазина, ресурса) другому участнику (покупателю).
WM ID подписывающий запрос, должен иметь аттестат не ниже Персонального.
| URL для передачи запроса с авторизацией по ключами WM Keeper Classic |
https://w3s.webmoney.ru/asp/XMLInvoice.asp |
| URL для передачи запроса с авторизацией по ключами WM Keeper Light |
https://w3s.wmtransfer.com/asp/XMLInvoiceCert.asp |
| метод |
POST |
| формат запроса |
|
| параметры запроса |
| название |
назначение |
примечание |
| reqn |
номер запроса |
целое без знака, макс. количество цифр - 15; всегда должен быть больше номера предыдущего запроса на выписывание счета!!! |
| wmid |
WMId подписавшего запрос |
используется только при авторизации с ключами WM Keeper Classic |
| sign |
подпись запроса формируется из параметров: orderid + customerwmid + storepurse + amount + desc + address + period + expiration + reqn |
используется только при авторизации с ключами WM Keeper Classic |
| invoice |
параметры выписываемого счета |
|
| invoice\orderid |
номер счета |
номер счета в системе учета магазина; любое целое число без знака |
| invoice\customerwmid |
WMId покупателя |
|
| invoice\storepurse |
номер кошелька, но который необходимо оплатить счет |
|
| invoice\amount |
сумма счета, выставленная для оплаты покупателю |
число с плавающей точкой (разделитель - .(точка) ) и для десяти с половиной может выглядеть так: 10.5; незначащие нули в конце и точка, если число целое, должны отсутствовать, например, 10.50 - не верно, 10.5 - верно, 9. - не верно, 9 - верно) |
| invoice\desc |
описание товара или услуги, на который выписывается счет |
произвольная строка от 0 до 255 символов; пробелы в начале или конце не допускаются, кодировка win-1251 |
| invoice\address |
адрес доставки товара |
произвольная строка от 0 до 255 символов; пробелы в начале или конце не допускаются |
| invoice\period |
максимально допустимый срок протекции сделки в днях при оплате счета |
целое число от 0 до 255; если 0 - протекция сделки при оплате счета не разрешена |
| invoice\expiration |
максимально допустимый срок оплаты счета в днях |
целое число от 0 до 255; если 0 - срок оплаты не определен |
| параметры ответа |
| название |
назначение |
примечание |
| reqn |
номер запроса |
|
| retval |
код выполнения запроса |
0 - запрос выолнен |
| retdesc |
расшифровка кода выполнения запроса |
|
| invoice |
параметры выписанного счета |
атрибут id - уникальный номер счета в системе учета WebMoney атрибут ts - служебный номер счета в системе учета WebMoney
|
| invoice\orderid |
номер счета |
номер счета в системе учета магазина; любое целое число без знака |
| invoice\customerwmid |
WMId покупателя |
|
| invoice\storepurse |
номер кошелька, но который необходимо оплатить счет |
|
| invoice\amount |
сумма счета, выставленная для оплаты покупателю |
число с плавающей точкой (разделитель - .(точка) ) и для десяти с половиной может выглядеть так: 10.5; незначащие нули в конце и точка, если число целое, должны отсутствовать, например, 10.50 - не верно, 10.5 - верно, 9. - не верно, 9 - верно) |
| invoice\desc |
описание товара или услуги, на который выписывается счет |
произвольная строка от 0 до 255 символов; пробелы в начале или конце не допускаются |
| invoice\address |
адрес доставки товара |
произвольная строка от 0 до 255 символов; пробелы в начале или конце не допускаются |
| invoice\period |
максимально допустимый срок протекции сделки в днях при оплате счета |
целое число от 0 до 255; если 0 - протекция сделки при оплате счета не разрешена |
| invoice\expiration |
максимально допустимый срок оплаты счета в днях |
целое число от 0 до 255; если 0 - срок оплаты не определен |
| invoice\state |
состояние счета |
0 - не оплачен 1 - оплачен по протекции 2 - оплачен окончательно или без протекции 3 - отказан |
| invoice\datecrt |
дата и время создания счета |
ГГГГММДД ЧЧ:ММ:СС |
| invoice\dateupd |
последняя дата и время изменения состояния счета |
ГГГГММДД ЧЧ:ММ:СС |
Код ошибки 110 - нет доступа к интерфейсу.
пример вызова интерфейса (IIS, ASP, JScript, MSXML)<%@ Language=JScript %>
<%
try
{
var AuthorizeType = 'light' // 'classic'
if ('classic'== AuthorizeType)
url = 'https://w3s.webmoney.ru/asp/XMLInvoice.asp'
else
url = 'https://w3s.wmtransfer.com/asp/XMLInvoiceCert.asp'
var storepurse = 'Z111111111111'
var customerwmid = '222222222222'
var orderid = 1
var amount = 1.0
var desc = 'товар'
var address = 'http://www.com'
var period = 0
var expiration = 1
var reqwmid = '111111111111'
var signstr // только для 'classic'
var reqn = (new Date()).valueOf()
if ('classic'== AuthorizeType)
{
var planstr = '' + orderid
+ customerwmid
+ storepurse
+ amount
+ desc
+ address
+ period
+ expiration
+ 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 += ' '+orderid+''
s += ' '+customerwmid+''
s += ' '+storepurse+''
s += ' '+amount+''
s += ' '+desc+''
s += ' '+address+''
s += ' '+period+''
s += ' '+expiration+''
s += ''
s += ''
var xmlhttp = Server.CreateObject ("MSXML2.ServerXMLHTTP");
xmlhttp.open('POST', url, false);
if ('light' == AuthorizeType)
{
xmlhttp.setOption(3, 'WM id: '+reqwmid)
}
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')
}
%>
|
 |
|
|
|
|
|
|
|
|
|
|
|
|
|