Вызов метода SOAP с PHP для конкретной службы

Извините, что вам нужно это сделать, но я не получаю любви от людей, которые управляют этим конкретным веб-сервисом. Я никогда раньше не использовал SOAP.

Вот метод, который я пытаюсь вызвать

И вот код, который я думаю, должен работать

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"; } 

Теперь я предполагаю, что это говорит мне, что должна содержать скобка.

 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> 

Я предполагаю, что что-то вроде

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

Должно сработать. Но я не знаю, что такое формат даты, или какие типы номеров или как ссылаться на тарифный план.

Теперь. Перед тем, как я пойду с обезьяной, дерьмо bannana bonkers по электронной почте с ними, я ошибаюсь, думая, что нагрузка больше информации, которую они должны мне дать? Или есть какой-то трюк SOAP, который я могу использовать, чтобы получить эту информацию откуда-то?

Пытаться

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

Вам придется сериализовать свои значения даты и времени в DateFrom и DateTo и логическое значение в PromotionalRates соответствии со спецификациями XML Schema:

  • boolean : true = 'true' или 1 и false = 'false' или 0
  • dateTime : YYYY-MM-DD T hh:mm:ss Z для UTC или YYYY-MM-DD T hh:mm:ss(+/-)hh:mm для местного времени, включая информацию о часовом поясе; информация о часовом поясе является необязательной

формат даты – это dateTime (который является типом формата SOAP). Я уверен, что есть пример в Интернете, который преобразует time () (или что-то еще) в поле SOAP :: dateTime.

информация, которую вам нужно подключить, – это все. Возможно, вам стоит сначала прочитать веб-службы?

Обычно это ассоциативный массив, где ключи – это поля, которые вы находите в описании, т.е. PropertyCode, DateFrom, DateTo и т. Д. Для CwiRateDetails

так что это будет что-то вроде

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

Вы можете просмотреть информацию о всех методах на этой странице: https://cwi.rezexchange.com:9991/ Просто нажмите имя процедуры, и вы увидите ее параметры, и это ответ.

Вы не ошибаетесь, ИМО. Должны быть другие вызовы SOAP для получения необходимой вам информации. Вы просматривали типы ставок ? Как насчет списка методов здесь ?