Zend_Soap_Clientを使用してWebサービスを呼び出したいとします。Zend_Soap_Client経由で複合型を送信するには?
$params = new stdClass();
$params->transactionId = $transactionId;
$params->transactionState = $transactionState;
$params->details = $transactionDetails;
var_dump($params->details);
try {
$this->_soapClient->updateTransaction($params);
}
問題は、WSDLで複合型であるdetails
パラメータ、である:これは、関連するコードです。 $transactionDetails
には、複合型の(空ではない)要素を含む配列が含まれており、これはvar_dump()
に表示されます。以前は、その要素をプロパティとして持つPHPクラスを使用しようとしました。どちらの場合でも、SOAPクライアントが実際に送信するものは次のとおりです。
<SOAP-ENV:Body>
<ns1:UpdateTransactionRequest>
<transactionId>45</transactionId>
<transactionState>SUCCESS</transactionState>
<details/>
</ns1:UpdateTransactionRequest>
</SOAP-ENV:Body>
私は間違っていますか?
UPDATE:私は、問題の原因は複合型がparmeterに対して宣言ということだと思うは、いくつかの拡張型がWSDLに存在し、私はそれらの拡張型のいずれかを使用したいの基本型、です。私は、Zend_Soap_Clientは基本型に存在しない要素をすべて認識しないと考えています。これを回避する方法はありますか?