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