2012-02-07 18 views
1

Webサービスを消費しようとしました。パラメータ付きのメソッドを使用する必要がありますが、soap要求には表示されません。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 urlだから私はWebサービス定義の内部を見ることができますか?私の経験では、これが私に起こったのは、私が渡していたパラメータがwsdl定義と一致しなかったためです。これは、間違ったパラメータ名をタイプしたか、wsdlで指定されたものとは異なる位置にパラメータを渡したためです。このため、SoapClientクラスは正しいエンベロープを作成できません。

関連する問題