wsd2php üretilen dosyasını kullanarak karmaşık soap ileti

0 Cevap php

Selamlar StackOverflow.

Ben php5 yerli uzantısı kullanarak bir SOAP istemcisi ile müdahalesi olmuştur. Ben oluşturmak çalışıyorum soap ileti, karmaşık veri türleri kullanır.

Şimdiye kadar ben wsdl2php aracını (http://www.urdalen.no/wsdl2php/) kullanarak bir sınıf dosyası oluşturduk. Ben başarıyla Ancak, ben bu yanlış yapıyorum eminim benim SOAP mesajının parçalarını oluşturduk. Lütfen aşağıya bakın:

Ben oluşturmak istiyorum mesaj:

<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>

Bu söz konusu olduğunda ancak aşağıdaki kod ile ben mesajın parçası üretmek mümkün duyuyorum:

// Hotel Availability
$qOTAhrq = new OTA_HotelAvailRQ();

$qOTAhrq->AvailRequestSegments['AvailRequestSegment'] = array('AvailReqType' => 'NonRoom');
$qOTAhrq->AvailRequestSegments['AvailRequestSegment']['HotelSearchCriteria'] = array();
$qOTAhrq->AvailRequestSegments['AvailRequestSegment']['HotelSearchCriteria']['Criterion'] = array();

Aşağıdaki mesaj, yukarıdaki kod tarafından üretilir. Nedir yanlış gidiyor: (

<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>

Umarım benim soru ulaşmak için çalışıyorum anlamak için yeterli geniş kapsamlıdır. Benim xml soap mesajı üretmek için doğru yöntemi kullanıyorum yoksa dizilerle bu şekilde kullanıyor olmamalıdır? I gibi bir şey yazabilirsiniz bir yolu var mı:

$ QOTAhrq-> AvailRequestSegments-> AvailRequestSegment = array ('AvailReqType =' nonRoom ');

bağlantılar: Benim classfile: wsdl class file (created by wsdl2php)

lütfen yardım - belki de benim mesajı gelecekte başkası yardımcı olacaktır :)

0 Cevap