不发送PHP SOAP参数



我尝试使用Web服务。需要使用一个带参数的方法,但不会出现在soap请求中。

`
 $poli = new SoapClient($wsdl_url, array('trace'=>true));
 $params =array(
    'param1'=>'val1',
    'param2'=>'val2'
   );
 try {
var_dump($poli->__soapCall('InitiateTransaction', array('parameters' => $params)));
 }
 catch(SoapFault $fault) {
   die($fault->faultstring . " REQUEST: " . $this->poli->__getLastRequest() . "<br/> RESPONSE: " . $this->poli->__getLastResponse());
 }`

我也试过:

var_dump($poli->InitiateTransaction(array('parameters' => $params)));

同样的结果是,soap信封中没有参数:

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://merchantapiservice.services.poli.centricom.com/">
<SOAP-ENV:Body>
   <ns1:InitiateTransaction/>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

请帮助:)

你能发布真实的wsdl url吗?这样我就可以看到web服务定义的内部了?根据我的经验,过去发生这种情况是因为我传递的参数与wsdl定义不匹配。这可能是因为我键入了错误的参数名称,或者在与wsdl中指定的位置不同的位置传递了参数。因此,SoapClient类无法创建正确的信封。

最新更新