[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: xml-интерфейс X11 webmoney
quickxyan
кто пользовался данным интерфейсом и удачно помогите пожалуста.
суть задачи узнать данные о доверенном WMID.

пробовал http://wmx.ru/for_developers/articles/xml_...ebmoney_part_2/
все далаю по инструкции и вроде бы даже запрос отправляется и данные получаю, но те что закрыты мне не показываются, а должны так как доверенный ВМИД может просматривать закрытые данные.

подкиньте ссылку или идею. заранее спасибо



Спустя 1 час, 42 минуты, 42 секунды (7.04.2011 - 19:56) VELIK505 написал(а):
Цитата (quickxyan @ 7.04.2011 - 15:13)
кто пользовался данным интерфейсом и удачно помогите пожалуста.
суть задачи узнать данные о доверенном WMID.

пробовал http://wmx.ru/for_developers/articles/xml_...ebmoney_part_2/
все далаю по инструкции и вроде бы даже запрос отправляется и данные получаю, но те что закрыты мне не показываются, а должны так как доверенный ВМИД может просматривать закрытые данные.

подкиньте ссылку или идею. заранее спасибо

Я пользовался. И почему хмл интерфейсы относяться к JS я не понимаю=)
У тебя подключены интерфейсы сами то хоть на вмид? Ты в техподдержку писал просить подключить интерфейсы х11 тебе???
Тебе щас как я понимаю retval 110 приходит

Спустя 31 минута, 15 секунд (7.04.2011 - 20:27) quickxyan написал(а):
сам не знаю, почему тут создал тему. голова уже не варит. ВМИД подключен.
вот по поводу письма администрации, то я вроде читал, что для 11 интерфейса не нужно или же нужно???

retval возвращает 0.
отображается инфа про номер ВМИД и еще всякая ненужная инфа. а нужные мне поля пусты

Спустя 13 часов, 51 минута, 6 секунд (8.04.2011 - 10:18) VELIK505 написал(а):
retval возвращает 0. говорит о том что запрос составлен не корректно. Надо retval 1.
Конечно надо писать в ТП и просить чтобы подключили интерфейс х11 и описать для каких целей.
Х11 я щас и не вспомню как составлял но х8 помню впринципе суть одна:
<w3s.request>
<reqn>
128638159734547</reqn>
<wmid>
886332964801</wmid>
<sign>
43832fa645b704f64987e721e9c0f5594dec0cd
22216eb627ac2358c81ad87c36627f89008d 4cf880db6379fd
96ea9fde6b047 64734356f286d77e3c402e10f402d7</sign>
<testwmpurse>
<wmid>
334214105260</wmid>
<purse>
R391554785179</purse>
</testwmpurse>
</w3s.request>


(sign) Подпись запроса – формируется из параметров: testwmpurse\wmid + testwmpurse\purse c помощью модуля WMSigner

Для отправки данных используем библиотеку libcurl

Для разбора ответа используем библиотеку simplexml

При отправке данных по ссылке https://w3s.webmoney.ru/asp/XMLFindWMPurseNew.asp или https://w3s.webmoney.ru/asp/XMLFindWMPurse.asp

Приходит ответ: retval = 1 - Что означает XML запрос корректен.

Спустя 1 час, 38 минут, 1 секунда (8.04.2011 - 11:56) quickxyan написал(а):
вот файл wmxml.inc.php в нем определение ссылок по которым надо идти. смотря какой надо интерфейс такую и выбираем. отправка курлом и прием ответа


<?php
// wmxml.inc.php - файл с функциями
// БЛОК ГЛОБАЛЬНЫХ ПЕРЕМЕННЫХ

$Global_WMID="145039166015"; // Ваш WMID
$Path_Folder = "home/d/"; // Путь к директории, в которой лежит .kwm
$Path_Signer = "home/d/wmsigner"; // Путь к WMSigner

$XML_addr[1]="https://w3s.webmoney.ru/asp/XMLInvoice.asp";
$XML_addr[2]="https://w3s.webmoney.ru/asp/XMLTrans.asp";
$XML_addr[3]="https://w3s.webmoney.ru/asp/XMLOperations.asp";
$XML_addr[4]="https://w3s.webmoney.ru/asp/XMLOutInvoices.asp";
$XML_addr[5]="https://w3s.webmoney.ru/asp/XMLFinishProtect.asp";
$XML_addr[6]="https://w3s.webmoney.ru/asp/XMLSendMsg.asp";
$XML_addr[7]="https://w3s.webmoney.ru/asp/XMLClassicAuth.asp";
$XML_addr[8]="https://w3s.webmoney.ru/asp/XMLFindWMPurse.asp";
$XML_addr[9]="https://w3s.webmoney.ru/asp/XMLPurses.asp";
$XML_addr[10]="https://w3s.webmoney.ru/asp/XMLInInvoices.asp";
$XML_addr[11]="https://passport.webmoney.ru/asp/XMLGetWMPassport.asp";
// ФУНКЦИЯ ФОРМИРУЕТ УНИКАЛЬНЫЙ УВЕЛИЧИВАЮЩИЙСЯ REQN
function _GetReqn(){
$time=microtime();
$int=substr($time,11);
$flo=substr($time,2,5);
return $int.$flo;
};
// ФУНКЦИЯ ФОРМИРОВАНИЯ ПОДПИСИ
// На входе: строка для подписи. На выходе: строка с результатом подписывания

function _GetSign($inStr) {
global $Path_Folder, $Path_Signer;
chdir($Path_Folder);
$descriptorspec = array(
0 => array("pipe", "r"),
1 => array("pipe", "w"),
2 => array("pipe", "r") );
$process = proc_open($Path_Signer, $descriptorspec, $pipes);
fwrite($pipes[0], "$inStr?04rn");
fclose($pipes[0]);
$s = fgets($pipes[1], 133);
fclose($pipes[1]);
$return_value = proc_close($process);
return $s;
}
// АЛЬТЕРНАТИВНАЯ ФУНКЦИЯ ПОДПИСИ ДЛЯ PHP НИЖЕ 4.3.0
// На входе: строка для подписи. На выходе: строка с результатом подписывания

function _GetSign2($inStr){
global $Path_Folder, $Path_Signer;
chdir($Path_Folder);
$PlanStr = "$inStr?04rn";
$fp = popen($Path_Signer, "r+");
fwrite($fp,$PlanStr);
$s = fgets($fp, 133);
pclose($fp);
return $s;
}
// ОТПРАВКА POST-ЗАПРОСА ЧЕРЕЗ CURL
// На входе: URL для отправки и содержимое XML-запроса. На выходе: XML-ответ от WebMoney

function _GetAnswer($address, $xml){
// Инициализируем сеанс CURL
$ch = curl_init($address);
// В выводе CURL http-заголовки не нужны
curl_setopt($ch, CURLOPT_HEADER, 0);
// Возвращать результат, а не выводить его в браузер
curl_setopt($ch, CURLOPT_RETURNTRANSFER,0);
// Метод http-запроса - POST
curl_setopt($ch, CURLOPT_POST,1);
// Что передаем?
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
// Путь к корневому сертификату WebMoney:
curl_setopt($ch, CURLOPT_CAINFO, "/public_html/sign/cert/WebMoneyCA.crt");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, TRUE);
// Выполняем запрос, ответ помещаем в переменную $result;
$result=curl_exec($ch);
return $result;
}

// ИНТЕРФЕЙС X11. ПОЛУЧЕНИЕ ИНФОРМАЦИИ ИЗ АТТЕСТАТА.
// На выходе: массив ['att'=>код аттестата, 'recalled'=>флаг отзыва аттестата,'retval'=>код выполнения, 'retdesc'=>описание результата]

function _WMXML11 ($wmid) {
global $XML_addr;
$xml="
<w3s.request>
<reqn>128638159734547</reqn>
<wmid>886332964801</wmid>
<sign>43832fa645b704f64987e721e9c0f5594dec0cd
22216eb627ac2358c81ad87c36627f89008d 4cf880db6379fd
96ea9fde6b047 64734356f286d77e3c402e10f402d7</sign>
<testwmpurse>
<wmid>334214105260</wmid>
<purse>R391554785179</purse>
</testwmpurse>
</w3s.request>"
;
$resxml=_GetAnswer($XML_addr[8], $xml);
echo $resxml;
$xmlres = simplexml_load_string($resxml);
if(!$xmlres) {
$result['att']=0;
$result['retval']=1000;
$result['retdesc']="Не получен XML-ответ";
return $result;
}
if($xmlres->certinfo->attestat->row)
$result['att']=strval($xmlres->certinfo->attestat->row->attributes()->tid);
else {
$result['att']=0;
$result['retval']=1001;
$result['retdesc']="Информация об аттестате не получена. Возможно, неверно указан WMID.";
return $result;
}
$result['recalled']=$xmlres->certinfo->attestat->row->attributes()->recalled;
$result['retval']=strval($xmlres->attributes()->retval);
return $result;
}
?>


вот test.php. в нем подключение файла wmxml.inc.php и отправка запроса


<?php
// test.php - скрипт для тестирования
include("wmxml.inc.php");
$wmid="145039166015";
$r=_WMXML11($wmid);
echo "Код аттестата - ".$r['att']."<br>";
echo "Флаг отзыва (1 - отозван) - ".$r['recalled']."<br>";
echo "Результат (0 - успешно) - ".$r['retval']."<br>";
echo "Расшифровка - ".$r['retdesc']."<br>";
?>


ответ который мне приходит.


Код аттестата - 0
Флаг отзыва (1 - отозван) -
Результат (0 - успешно) - 1000
Расшифровка - Не получен XML-ответ


поменял запрос с 11 на 8 так как у вас.. может ли быть это из-за того, что цифровую подпись не формирую, а просто вашу вставил? хотя в 11 интерфейсе вроде можно и без подписи и в ответе просто будут не все данные. но тут вообще никак не работает


_____________
печатаю со скоростью 320 минут в знак...

плюсуем карму не стесняемся
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.