因此,我正在尝试在 php 中使用 SoapClient,但在构建 XML 时遇到了问题。我正在使用一个期望以下 XML 的肥皂 API:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:app="http://app.whatever.com/">
<soapenv:Header/>
<soapenv:Body>
<app:WhateverCleanseAddress>
<app:address>
<address Address1="9100 Wilshire Blvd" Address2="Ste 900" Address3="" City="Beverly Hills" State="CA" Zip="90212" Country="USA"/>
</app:address>
</app:WhateverCleanseAddress>
</soapenv:Body>
</soapenv:Envelope>
我已经用soapui 做了一堆测试,这会返回正确的响应,但是我用SoapClient 进行的实际调用只返回一个错误。这是我提交的内容:
$addressdata = "<address Address1=\"9100 Wilshire Blvd\" Address2=\"Ste 900\" Address3=\"\" City=\"Beverly Hills\" State=\"CA\" Zip=\"90212\" Country=\"USA\" />";
$wsdl = 'http://www.whatever.com/WhateverWebSSAdapter.asmx?WSDL';
$client = New SoapClient($wsdl, array("trace" => 1, "exceptions" => 0));
$apiData = array(
"Address" => $addressdata
);
echo "<pre>";
print_r($client->WhateverCleanseAddress($apiData));
echo "</pre>";
我已经在网上搜索了一个很好的教程来形成这些请求,但是我没有任何运气找到显示 1:1 关系的东西,显示“如果你通过了 soap 客户端,它将提交这个”。我使用同样的技术来处理另一个完美运行的 api 调用......但在这里我看不出我做错了什么。