2012-02-07 67 views
1

我試圖使用web服務。需要使用帶參數的方法,但不會在肥皂請求中顯示。PHP 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> 

請幫助:)

回答

1

你能後的實wsdl網址,所以我可以看到裏面的Web服務定義?根據我的經驗,當過去發生在我身上的是因爲我傳遞的參數與wsdl定義不匹配。這可能是因爲我輸入了錯誤的參數名稱或者傳遞了與wsdl中指定的位置不同的位置參數。正因爲如此,SoapClient類無法創建正確的信封。