Небольшой вопрос по веб-сервисам ...
Есть веб-сервис http://www.crossroam.com/BARSWS/WS.asmx
Есть клиент на php который не работает =) Не могу понять в чем замес
Сам код
<?php
$debug = 1;
ini_set("soap.wsdl_cache_enabled", "0"); // disable WSDL cache
$parms = array(new SoapParam(
/* Значение параметра */
"RUS93",
/* Имя параметра */
"WispCarrierCode"
));
$qopts = array("soapaction"=>"http://www.t-systems.com/getAllowedProviders",'uri'=>"http://www.t-systems.com/getAllowedProviders");
$opts = array('location' => "http://www.crossroam.com/BARSWS/WS.asmx",
'uri' => "http://www.t-systems.com",
'trace' => 1,
'exceptions' => 1,
'style' => SOAP_DOCUMENT,
'use' => SOAP_LITERAL);
$client = new SoapClient(null, $opts);
$out = $client->__call('getAllowedProviders', $parms, $qopts);
echo "<pre>" . htmlspecialchars($client->__getLastRequest()) . "</pre>";
echo "<pre>" . htmlspecialchars($client->__getLastResponse()) . "</pre>";
var_dump($out);
?>
В итоге если смотреть примеры xml-сообщений тут http://www.crossroam.com/BARSWS/WS.asmx?op=getAllowedProviders
И взять то что у меня, то мы увидим что запросы отличаются ... Если изменить style/use на RPC/ENC то вид становится более менее похожий но в ответ идет все то же пустое сообщение ...
Запрос
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<WispCarrierCode>RUS93</WispCarrierCode>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Запрос RPC/ENC
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://www.t-systems.com" 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:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<ns1:getAllowedProviders>
<WispCarrierCode xsi:type="xsd:string">RUS93</WispCarrierCode>
</ns1:getAllowedProviders>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Ответ:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<soap:Header>
<wsa:Action>http://www.t-systems.com/getAllowedProvidersResponse</wsa:Action>
<wsa:MessageID>uuid:ba4ed5ab-0e18-427b-adf8-a61a6fa7c596</wsa:MessageID>
<wsa:RelatesTo>uuid:074a0b4d-c866-45c5-8b13-4e51ee42305c</wsa:RelatesTo>
<wsa:To>http://schemas.xmlsoap.org/ws/2004/03/addressing/role/anonymous</wsa:To>
<wsse:Security>
<wsu:Timestamp wsu:Id="Timestamp-6a368585-4d8f-418d-a1c9-119fa5eb12e3">
<wsu:Created>2005-09-14T11:35:25Z</wsu:Created>
<wsu:Expires>2005-09-14T11:40:25Z</wsu:Expires>
</wsu:Timestamp>
</wsse:Security>
</soap:Header>
<soap:Body>
<getAllowedProvidersResponse xmlns="http://www.t-systems.com">
<getAllowedProvidersResult />
<getAllowedProvidersResponse>
</soap:Body>
</soap:Envelope>
У кого есть опыт работы с веб-сервисами из php средствами штатного soap?