PHP通过SOAP传递参数

时间:2016-10-06 12:40:51

标签: php web-services soap

我正在努力设法创造" xml"基于PHP的SOAP客户端的数据。我需要制作如下内容:

<SOAP-ENV:Body>
<ns1:check_stock_level>
<ns1:api_credentials>
<ns1:username>*****</ns1:username>
<ns1:password>***</ns1:password>
</ns1:api_credentials>
<productsku>ABC-123</productsku>
</ns1:check_stock_level>
</SOAP-ENV:Body>

我可以创建授权部分,但我的代码无法创建productsku - 代码如下所示:

$client = new SoapClient("https://www.example.net/wh_api.asmx?WSDL",array("trace"=> 1, "exceptions" => 0));
$auth = array ('api_credentials' => array ('username'=>'******', 'password'=>'******'));
$sku = array('productsku'=>'ABC-123');
$result = $client->check_stock_level($auth, $sku);

产生这个:

<SOAP-ENV:Body>
<ns1:check_stock_level>
<ns1:api_credentials>
<ns1:username>*****</ns1:username>
<ns1:password>***</ns1:password>
</ns1:api_credentials>
</ns1:check_stock_level>
<param1>
<item>
<key>product_sku</key>
<value>ABC-123</value>
</item>
</param1>
</SOAP-ENV:Body>

productsku位于<check_stock_level>标记集之外且被额外标记包围的位置。

我可以在SOAP上找到的大多数示例使用NuSOAP,但我想使用本机pHP SOAP功能。任何人都可以给我任何指示吗?

1 个答案:

答案 0 :(得分:0)

我自己解决了这两个数组需要组合 - 通过将它们作为单独的数组,将productsku数据移出标签集。