我试图使用网络服务。需要使用带参数的方法,但不要在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)));
具有相同的结果,肥皂信封中没有参数:
<?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>
请帮助:)
答案 0 :(得分:1)
你可以发布真正的wsdl网址,这样我就可以在网络服务定义中看到了吗?根据我的经验,当我在过去发生这种情况时,因为我传递的参数与wsdl定义不匹配。这可能是因为我输入了错误的参数名称或者将参数传递给了与wsdl中指定的位置不同的位置。因此,类SoapClient无法创建正确的信封。