| Собственно сам клиент:
PHP код: <?php
require_once('lib/nusoap.php');
$proxyhost = isset($_POST['proxyhost']) ? $_POST['proxyhost'] : '';
$proxyport = isset($_POST['proxyport']) ? $_POST['proxyport'] : '';
$proxyusername = isset($_POST['proxyusername']) ? $_POST['proxyusername'] : '';
$proxypassword = isset($_POST['proxypassword']) ? $_POST['proxypassword'] : '';
$client = new nusoap_client('http://www.audatex.ru/b2b/services/TaskService_v1?wsdl', 'wsdl', $proxyhost, $proxyport, $proxyusername, $proxypassword);
$err = $client->getError();
if ($err) {
echo '<h2>Constructor error</h2><pre>' . $err . '</pre>';
}
$param = array(
'loginId' => 'myuser',
'password' => 'mypassword',
'maxCount' => '10',
'startAtIndex' => '1',
'onlyMarkedTasks' => 'false',
'fieldsToReturn' => 'CaseId,TaskId,ClaimNumber,PlateNumber');
$result = $client->call('getTaskList', array('parameters' => $param), '', '', false, true);
if ($client->fault) {
echo '<h2>Fault</h2><pre>';
print_r($result);
echo '</pre>';
} else {
$err = $client->getError();
if ($err) {
echo '<h2>Error</h2><pre>' . $err . '</pre>';
} else {
echo '<h2>Result</h2><pre>';
print_r($result);
echo '</pre>';
}
}
echo '<h2>Request</h2><pre>' . htmlspecialchars($client->request, ENT_QUOTES) . '</pre>';
echo '<h2>Response</h2><pre>' . htmlspecialchars($client->response, ENT_QUOTES) . '</pre>';
echo '<h2>Debug</h2><pre>' . htmlspecialchars($client->debug_str, ENT_QUOTES) . '</pre>';
?>
По идеи он должен отправить xml следующего вида:
Код HTML: <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ser="http://serviceinterface_v1.b2b.audatex.com"> <soapenv:Header/> <soapenv:Body> <ser:getTaskListRequest> <ser:parameter> <ser:name>loginId</ser:name> <ser:value>myuser</ser:value> </ser:parameter> <ser:parameter> <ser:name>password</ser:name> <ser:value>mypassword</ser:value> </ser:parameter> <ser:parameter> <ser:name>maxCount</ser:name> <ser:value>10</ser:value> </ser:parameter> <ser:parameter> <ser:name>startAtIndex</ser:name> <ser:value>1</ser:value> </ser:parameter> <ser:parameter> <ser:name>onlyMarkedTasks</ser:name> <ser:value>false</ser:value> </ser:parameter> <ser:parameter> <ser:name>fieldsToReturn</ser:name> <ser:value>CaseId,TaskId,ClaimNumber,PlateNumber</ser:value> </ser:parameter> </ser:getTaskListRequest> </soapenv:Body> </soapenv:Envelope> На практике при отладки я вижу что он посылает:
Код HTML: POST /b2b/services/TaskService_v1 HTTP/1.0
Host: www.audatex.ru
User-Agent: NuSOAP/0.9.5 (1.123)
Content-Type: text/xml; charset=UTF-8
SOAPAction: ""
Content-Length: 397
<?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><getTaskListRequest xmlns="http://serviceinterface_v1.b2b.audatex.com"/></SOAP-ENV:Body></SOAP-ENV:Envelope> Соответственно возвращая мне следующие:
PHP код: Array
(
[returnCode] => 2
[loginId] =>
[hostName] => axn-oc09-de.audatex.net
[timestamp] => 2012-04-19T05:52:50.189Z
[message] => Array
(
[messageCode] => B2BService.UserNotAuthenticated
[severity] => 2
[text] => Invalid user or password
)
Если кто сталкивался с похожей проблемой подскажите в какую сторону копать, ранее с SOAP вообще не работал. Заранее спасибо! |