我需要生成如下所示的SOAP请求:
<s11:Envelope xmlns:s11='http://schemas.xmlsoap.org/soap/envelope/'>
<s11:Body>
<ns1:SaveQuote xmlns:ns1='http://domain.com/BDB/'>
<ns1:ClientType></ns1:ClientType>
<ns1:Claims>
<ns1:ClaimHistory>
<ns1:Nature></ns1:Nature>
</ns1:ClaimHistory>
</ns1:Claims>
<ns1:Vehicles>
<ns1:Vehicle>
<ns1:Province></ns1:Province>
</ns1:Vehicle>
</ns1:Vehicles>
</ns1:SaveQuote>
</s11:Body>
</s11:Envelope> 我有:
$url = 'http://somedomain.com/soapurl.asmx?WSDL';
try {
$client = new SoapClient($url);
$saveQuote = array('ClientType' => $clientType);
$claims = array('Nature' => $Nature);
$vehicles = array('Province' => $Province)
$response = $client->__soapCall(
'SaveQuote', array('parameters' =>$saveQuote),
'Claims', array('ClaimHistory' =>$claims),
'Vehicles', array('Vehicle' => $vehicles));
var_dump($response);
} catch (Exception $SoapException) {
printf('Errors:\n',$SoapException->__toString());
return false;
} 但是这只会产生一个错误..如何使请求中的节点正确?
发布于 2014-05-30 05:30:35
您应该使用与所需参数类型匹配的对象。为此,您可以使用WSDL到php生成器,该生成器将简化为每种参数类型生成每个必需类的过程。它允许您使用classmap选项,因此您还可以获得作为SoapClient对象的响应,这比数组要容易得多…
我建议你去看看WsdlToPhp,甚至WSDL to php网站
https://stackoverflow.com/questions/23940119
复制相似问题