Помогите создать запрос soap в PHP

#php #soap

#php #soap

Вопрос:

как мне создать массив для такой структуры

Извините, но я знаю, как отправить запрос soap [php.net ].. Я просто хочу подтвердить структуру массива, которая мне нужна, чтобы привести к такому запросу с пользовательскими атрибутами

 <?xml version="1.0" encoding="utf-8"?>
  

    <SOAP-ENV:Header>

          <m:AuthenticationInfo xmlns:m="https://xml.hotelclub.net/xmlws/services/v2/">

                 <m:AffiliateID>xxx</m:AffiliateID>

                 <m:Password>xxx</m:Password>

                 <m:ClientIP>xxx</m:ClientIP>

          </m:AuthenticationInfo>

   </SOAP-ENV:Header>

   <SOAP-ENV:Body>

          <m:HotelBookingRequest xmlns:m="https://xml.hotelclub.net/xmlws/services/v2/" Version="2" LanguageCode="EN" CurrencyCode="AUD" AffiliateUniqueID="Rodel9">

                 <m:StayDateRange CheckIn="2011-03-28" CheckOut="2011-03-29" ArrivalTime="12"/>

                 <m:Hotel ID="54"></m:Hotel>

                 <m:ItemsRequest>

                       <m:ItemRequest Type="Room" QuantityRequired="1"

                                                   NumberOfAdults="1"

                                                   NumberOfChildren="0"

                                                   Code="117;54;45877">

                              <m:Guests>

                                     <m:Guest IsChild="false">

                                            <m:FirstName>Rodel</m:FirstName>

                                            <m:LastName>Surat</m:LastName>

                                     </m:Guest>

                              </m:Guests>

                       </m:ItemRequest>

                 </m:ItemsRequest>

                 <m:GuestRequest SmokingPreference="NoPreference" BabyCot="false" LateCheckIn="false"></m:GuestRequest>

                 <m:MainGuest IsMainGuest="true" IsChild="false">

                       <m:FirstName>Rodel</m:FirstName>

                       <m:LastName>Surat</m:LastName>

                       <m:Address>

                              <m:Country ID="3"/>

                              <m:Telephone>123456789</m:Telephone>

                       </m:Address>

                       <m:EmailAddress>rodel.surat@hotelclub.com</m:EmailAddress>

                 </m:MainGuest>

                 <m:PaymentDetail ItineraryTotalAmount="520">

                       <m:CreditCardDetail SerialCode="XXX" CardType="VSA" CardNumber=" XXXXXXXXXXXXXXXX" ExpiryDate="0811">

                              <m:CardHolderName>Rodel Surat</m:CardHolderName>

                              <m:Address>

                                     <m:AddressLine>680 George St</m:AddressLine>

                    <m:City Name="Sydney" />

                                     <m:State>NSW</m:State>

                    <m:Country ID="3" />

                    <m:Postcode>2000</m:Postcode>

                              </m:Address>

                       </m:CreditCardDetail>

                 </m:PaymentDetail>

  </m:HotelBookingRequest>

   </SOAP-ENV:Body>
  

а затем отправьте его как soap-запрос . я абсолютно новичок в SOAP на PHP

Ответ №1:

Ознакомьтесь с документацией по адресу http://php.net/manual/en/book.soap.php

Ответ №2:

Вот простой тест службы wcf, который я собрал

 /* Default location of WSDL Service (if used) */
define("DEFAULT_WSDL", "http://yourserver.com/Yoursvc.svc?wsdl");

/* Misc WSDL settings */
define("WSDL_SOAP_VERSION", SOAP_1_1);
define("WSDL_EXCEPTIONS", true);
define("WSDL_TRACE", 1);


/** Methods below **/
function testWcf() {

    try {
        $wsdloptions = array(
            'soap_version' => constant('WSDL_SOAP_VERSION'),
            'exceptions' => constant('WSDL_EXCEPTIONS'),
            'trace' => constant('WSDL_TRACE')
        );

        $client = new SoapClient(constant('DEFAULT_WSDL'), $wsdloptions);

        pr($client->__getFunctions());
        pr($client->__getTypes());
    } catch (Exception $exc) {
        echo $exc->getTraceAsString();
    }
}

function pr($array) {
    echo "<xmp>";
    print_r($array);
    echo "</xmp>";
}
  

Надеюсь, это поможет вам на вашем пути вперед.

Комментарии:

1. Извините, но я знаю, как отправить запрос soap.. Я просто хочу подтвердить структуру массива, которая мне нужна, чтобы привести к такому запросу с атрибутами

2. Итак, что вы на самом деле хотите сделать, это создать xml, подобный тому, который вы опубликовали?