[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: отправить xml-запрос
Страницы: 1, 2
ApuktaChehov
quickxyan - все верно, но у вас ошибка в xml: <info& gt;ss</info>

Учитывая что юзается https не уверен что будет работать. Там ведь сертификат нужен.

_____________
VELIK505
Цитата (quickxyan @ 4.04.2011 - 09:49)
та я пробовал юзать модуль wmsigner, но его надо компилировать через шелл на хостинге, а доступа к шеллу нет. как по другому я хз.

судя из твоих слов я понял, что на вебмани можно попасть только через x11 !?

Конечно wmsigner + webmonet.ca + md4.php там файлик такой есть всё надо скомпилировать вот только тогда у тебя чёто получиться.
А щас ты извини меня занимашься сам знаешь чем user posted image
VELIK505
Попасть можно через любой интерфейс и через х2 и через х6 и через х8 и тп.
Но доступ к серваку обязательно нужен для компиляции и ещё там кучу расширений PHP надо врубить и даже установить каких не хватает.
Ещё забыл сказать с ключами от кипера надо это всё скомпилировать
quickxyan
спасибо. вроде уразумел, что фигней страдал день) буду выбивать доступ к серверу и буду ковырятся

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

плюсуем карму не стесняемся
quickxyan
полазив по всяким сайтам нашел такой код.

wmxml.inc.php

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

$Global_WMID="145039166015"; // Ваш WMID
$Path_Folder = "/home/w/wmrub/public_html/sign/"; // Путь к директории, в которой лежит .kwm
$Path_Signer = "/home/w/wmrub/public_html/signer/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,1);
// Метод 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="
<request>
<wmid></wmid>
<passportwmid>
$wmid</passportwmid>
<sign></sign>
<span s class=mceItemParam></span>
<dict>1</dict>
<info>1</info>
<mode>0</mode>
</params>
</request>"
;
$resxml=_GetAnswer($XML_addr[11], $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

<?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>";
?>


при вызове test.php в браузер пишется:

Цитата

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


на сколько я понимаю, то запрос просто не отсылается?!

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

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

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