Belirli bir hizmet için PHP ile bir SOAP yöntemini çağırma

4 Cevap php

Maalesef bunu yapmak zorunda, ama bu belirli webcoder çalıştırmak insanlardan hiçbir sevgi alıyorum. Ben daha önce SOAP'ı hiç kullanmadım.

Here's the method I'm trying to call

Ve burada çalışması gerektiğini düşünüyorum kod

    public function soapTest(){

        	echo "start <br />";
        	use_soap_error_handler(true);
        	$client = new SoapClient("https://cwi.rezexchange.com:9991/?wsdl");

                // here's the problem. What goes in the parenthesis?
        	$result = $client->CwiRateDetails(????);

        	echo($result);
        	echo "<br /> end";

        }

Şimdi ben tahmin ediyorum, bu parantez içermelidir ne söyler.

POST /Service.asmx HTTP/1.1
Host: cwi.rezexchange.com
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://hotelconcepts.com/CwiRateDetails"

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <CwiRateDetails xmlns="http://hotelconcepts.com/">
      <PropertyCode>string</PropertyCode>
      <DateFrom>dateTime</DateFrom>
      <DateTo>dateTime</DateTo>
      <RatePlan>string</RatePlan>
      <RoomType>string</RoomType>
      <PromotionalRates>boolean</PromotionalRates>
    </CwiRateDetails>
  </soap:Body>
</soap:Envelope>

Benim tahminim bir şey gibi olduğunu

$result = $client->CwiRateDetails($PCode, $DateFrom, $DateTo, $RatePlan, $RoomType, false);

Çalışmalıdır. Ama tarih formatı ne olduğunu bilmiyorum, ya da ne oda tipleri nasıl bir oran planı başvuru ya.

Şimdi. Onlarla e-posta üzerinden çılgın maymun bok bannana gitmeden önce, onlar bana vermek için gereken bir yük daha bilgi var düşünerek yanlış mıyım? Ya da ben bir yerde bu bilgileri almak için kullanabileceğiniz SOAP kandırmaca çeşit var?

4 Cevap

Denemek

$result = $client->CwiRateDetails(array(
    'PropertyCode'     => ...,
    'DateFrom'         => ...,
    'DateTo'           => ...,
    'RatePlan'         => ...,
    'RoomType'         => ...,
    'PromotionalRates' => ...,
));

Sen DateFrom ve DateTo ve PromotionalRates XML şeması özelliklerine göre de boolean değer tarih-zaman değerleri serialize gerekir:

  • boolean, true = 'true' ya da 1 ve false = 'false' ya da {[ (6)]}
  • dateTime, YYYY-MM-DD T UTC ya da yerel zamanı da dahil olmak üzere dilimi bilgi için YYYY-MM-DD T hh:mm:ss(+/-)hh:mm için hh:mm:ss Z; timezone bilgileri isteğe bağlıdır

tarih biçimi aslında (bir soap biçim türüdür) tarihzaman olduğunu. Ben bir SOAP :: tarihzaman alan için bir zaman () (ya da herneyse) dönüştürür internette bir örnek vardır eminim.

bağlanmak için gereken bilgiler tüm orada .. belki ilk webservices kadar okumalısınız?

Usualy o tuşları açıklama bulmak alanlar, CwiRateDetails için yani PropertyCode, DateFrom, DateTo vb vardır ilişkisel dizi var

bu yüzden gibi bir şey olurdu

$client->CwiRateDetails(array("PropertyCode"=>"sdsd","DateFrom"=>"",......))

Bu sayfada her yöntemlerin ayrıntılarını görebilirsiniz: https://cwi.rezexchange.com:9991/ Sadece prosedürün adını tıklatın ve bu parametreler ve o responce bulunuyor göreceksiniz.

Sen IMO, yanlış değildir. İhtiyacınız olan bilgiyi elde etmek için diğer SABUN çağrılar var olmalıdır. Eğer baktım List Rate Types? Ne yöntemleri listesiyle ilgili here?