Извините, что вам нужно это сделать, но я не получаю любви от людей, которые управляют этим конкретным веб-сервисом. Я никогда раньше не использовал 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:
true
= 'true'
или 1
и false
= 'false'
или 0
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 для получения необходимой вам информации. Вы просматривали типы ставок ? Как насчет списка методов здесь ?