3
我想使用Zend_Soap_Client調用webservice。這是相關的代碼:如何通過Zend_Soap_Client發送複雜類型?
$params = new stdClass();
$params->transactionId = $transactionId;
$params->transactionState = $transactionState;
$params->details = $transactionDetails;
var_dump($params->details);
try {
$this->_soapClient->updateTransaction($params);
}
的問題是與details
參數,它是在WSDL的複雜類型。 $transactionDetails
包含一個帶有複雜類型(非空)元素的數組,這在var_dump()
中可見。以前,我嘗試使用一個帶有元素作爲屬性的PHP類。在這兩種情況下,什麼SOAP客戶端實際上將是這樣的:
<SOAP-ENV:Body>
<ns1:UpdateTransactionRequest>
<transactionId>45</transactionId>
<transactionState>SUCCESS</transactionState>
<details/>
</ns1:UpdateTransactionRequest>
</SOAP-ENV:Body>
我在做什麼錯?
更新:我認爲問題的原因是爲parmeter聲明的complexType是基類型,其中幾種擴展類型存在於WSDL中,我想使用其中一種擴展類型。我猜Zend_Soap_Client不識別任何不存在於基本類型中的元素,這就是所有元素。有沒有解決的辦法?