我需要創建一個SOAP請求,看起來像這樣:SOAP的錯誤:編碼:對象沒有「起始日期」屬性
<s:element name="GetOrders">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Token" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="Context" type="s:string"/>
<s:element minOccurs="1" maxOccurs="1" name="StartDate" type="s:dateTime"/>
<s:element minOccurs="1" maxOccurs="1" name="EndDate" type="s:dateTime"/>
<s:element minOccurs="1" maxOccurs="1" name="IncludeFulfilledOrders" type="s:boolean"/>
<s:element minOccurs="0" maxOccurs="1" name="ProductNumber" type="s:string"/>
</s:sequence>
</s:complexType>
</s:element>
我創建了一個變量類:
class GetOrders {
public $Token = "THE_TOKEN"; // string
public $Context='THE_CONTEXT'; // string
public $StartDate=""; // dateTime
public $EndDate=""; // dateTime
public $IncludeFulfilledOrders=true; // boolean
public $ProductNumber=""; // string
}
運行SOAP調用該函數如下:
public function GetOrders(GetOrders $parameters) {
return $this->__soapCall('GetOrders',array('parameters'=>array($parameters)), array(
'uri' => 'http://www.domain.net/',
'soapaction' => ''
)
);
}
,我發現了錯誤: 的SOAPFault excepti於:[客戶] SOAP的錯誤:編碼:對象沒有「起始日期」在...
財產這裏是$參數我傳遞的的var_dump:
object(GetOrders)#1 (6) {
["Token"]=>
string(17) "THE_TOKEN"
["Context"]=>
string(7) "THE_CONTEXT"
["StartDate"]=>
string(25) "2012-09-01T00:00:00-05:00"
["EndDate"]=>
string(25) "2012-09-30T00:00:00-05:00"
["IncludeFulfilledOrders"]=>
bool(true)
["ProductNumber"]=>
string(10) "P-PRODUCT"
}
我似乎無法找出StartDate的問題是什麼。我相信這個格式是正確的。我不太瞭解SOAP,但是我很抱歉如果這是一個新問題。
謝謝!
我直接從WSDL定義中生成了php類。我從來沒有使用__doRequest函數。我會傳遞給$ request變量的是什麼?它不會是真正的XML嗎?這需要我整天寫出和測試。我所擁有的函數應該將數組解析爲XML。 – tomjung