问候堆栈溢出。
我一直在使用PHP5的本机扩展修补SOAP客户机。我尝试创建的SOAP消息使用复杂的数据类型。
到目前为止,我已经使用wsdl2php工具(http://www.urdalen.no/wsdl2php/)创建了一个类文件。我已经成功地创建了部分SOAP消息,但是我确信我这样做是不正确的。如下所示:
我想创建的消息:
<soap:Envelope>
<soap:Body>
<OTA_HotelAvailRQ Version="1.0" AvailRatesOnly="true" TimeStamp="2010-10-06T16:14:26+08:00">
<POS>
<Source>
<RequestorID ID="test" Type="10"/>
</Source>
</POS>
<AvailRequestSegments>
<AvailRequestSegment AvailReqType="NonRoom">
<HotelSearchCriteria AvailableOnlyIndicator="1">
<Criterion>
<HotelRef HotelCode="PCBCMS"/>
<StayDateRange Start="2010-10-06" End="2010-11-06"/>
</Criterion>
</HotelSearchCriteria>
</AvailRequestSegment>
</AvailRequestSegments>
</OTA_HotelAvailRQ>
</soap:Body>
</soap:Envelope>使用以下代码,我可以生成消息的一部分,但是,当涉及到:
// Hotel Availability
$qOTAhrq = new OTA_HotelAvailRQ();
$qOTAhrq->AvailRequestSegments['AvailRequestSegment'] = array('AvailReqType' => 'NonRoom');
$qOTAhrq->AvailRequestSegments['AvailRequestSegment']['HotelSearchCriteria'] = array();
$qOTAhrq->AvailRequestSegments['AvailRequestSegment']['HotelSearchCriteria']['Criterion'] = array();以下消息是由上面的代码生成的。哪里出了问题:
<ns1:AvailRequestSegments>
<ns1:AvailRequestSegment AvailReqType="NonRoom">
<ns1:HotelSearchCriteria/>
</ns1:AvailRequestSegment>
</ns1:AvailRequestSegments>
needs to be
<ns1:AvailRequestSegments>
<ns1:AvailRequestSegment AvailReqType="NonRoom">
<ns1:HotelSearchCriteria AvailOnlyIndicator="1"/>
</ns1:AvailRequestSegment>
</ns1:AvailRequestSegments>希望我的问题足够广泛,能够理解我试图实现的目标。我是否使用了正确的方法来生成xml soap消息,或者我不应该以这种方式使用数组?有没有一种方法可以让我键入下面这样的内容:
$qOTAhrq->AvailRequestSegments->AvailRequestSegment =数组(‘有效请求类型=’非房间‘);
链接:我的类文件:wsdl class file (created by wsdl2php)
请帮助-也许我的信息将来会对其他人有所帮助:)
发布于 2011-01-10 12:43:20
我不能完全确定,但我似乎没有找到任何代码段可以评估为:<ns1:HotelSearchCriteria AvailOnlyIndicator="1"/>也许你想要这样的代码,
$qOTAhrq->AvailRequestSegments['AvailRequestSegment']['HotelSearchCriteria'] = array("AvailOnlyIndicator"=>"1");https://stackoverflow.com/questions/4643701
复制相似问题