我需要在PHP中生成以下XML Soap请求:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header/>
<soapenv:Body>
<ns1:SomeRequest enddate="01-01-2018 00:00:00" authCode="exampleexample">
<ns1:status>STATUS1</ns1:status>
<ns1:status>STATUS2</ns1:status>
</ns1:SomeRequest>
</soapenv:Body>
</soapenv:Envelope>
我正在这样尝试:
$this->client = new SoapClient($this->wsdlUrl, [
'trace' => true,
'exception' => true,
'cache_wsdl' => WSDL_CACHE_NONE,
]);
$parameters = [
'authCode' => 'exampleexample',
'enddate' => '01-01-2018 00:00:00',
'status' => ['STATUS1', 'STATUS2']
];
$response = $this->client->SomeSimpleMethod($parameters);
并收到数组到字符串转换错误。 当我尝试将状态作为字符串传递时,像这样:
$parameters = [
'authCode' => 'exampleexample',
'enddate' => '01-01-2018 00:00:00',
'status' => 'STATUS1'
];
然后一切正常。
答案 0 :(得分:0)
最好的方法是使用WSDL到PHP生成器,因为您不会奇怪如何正确构造请求。由于这样做并不总是那么简单,因此使用生成的类构造请求并进行发送,您将可以轻松地使用OOP方法发送请求并处理响应。
尝试最适合从任何SOAP WSDL生成PHP SDK的PackageGenerator项目。