подключение к веб-сервису с использованием PHP и Soap - PullRequest
4 голосов
/ 10 марта 2011

хорошо, я пытаюсь подключиться к веб-сервису, использующему OTA XML-схему ("http://www.opentravel.org/OTA/2003/05/GetVehAvailRate")

, этот веб-сервис размещен на rentcentric.com, который является хост-решением для бронирования и бронирования онлайн.системе требуется имя пользователя и пароль для подключения, и до сих пор каждая попытка подключения приводила к пустой белой странице.

нет сообщений об ошибках, нет вывода PHP,

Я все еще довольно нов в использованииSOAP (хотя я имел большой успех при использовании его на сайте агентов по недвижимости - для которого не требовалась какая-либо аутентификация, просто простое значение для идентификации компании в этом сервисе)

Я прочитали попробовал почти все примеры, найденные на этом сайте и другие, без радости!

запрос к службе описан ниже, каждый запрос имеет основной набор аргументов:

PickUpDateTime //date
ReturnDateTime //date
PickUpLocation.locationCode //string
ReturnLocation.locationCode //string
PromotionCod //string

URL службы http://www2.rentcentric.com/Ota2007a/OTASrvc.asmx имеет все доступные нам методы.

# GetVehAvailRate
# VehCancel
# VehLocSearch
# VehModify
# VehRes 

Запрос -: GetVehAvailRate

<?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:Header>
    <SRVCredentials xmlns="http://www.opentravel.org/OTA/2003/05">
      <Username>*USERNAME*</Username>
      <Password>*PASSWORD*</Password>
    </SRVCredentials>
  </soap:Header>
  <soap:Body>
    <OTA_VehAvailRateRQ EchoToken="string" TimeStamp="dateTime" Target="Test or Production" Version="decimal" TransactionIdentifier="string" SequenceNmbr="nonNegativeInteger" TransactionStatusCode="Start or End or Rollback or InSeries or Continuation or Subsequent" PrimaryLangID="language" AltLangID="language" RetransmissionIndicator="boolean" ReqRespVersion="string" MaxResponses="positiveInteger" MaxPerVendorInd="boolean" xmlns="http://www.opentravel.org/OTA/2003/05">
      <POS>............

пример кода:

$soapClient = new SoapClient("http://www2.rentcentric.com/Ota2007a/OTASrvc.asmx?wsdl");

    // Prepare SoapHeader parameters
    $sh_param = array(
             'Username'=>'username',
             'Password'=>'password');
    $headers = new SoapHeader('http://www2.rentcentric.com/Ota2007a/', 'UserCredentials', $sh_param);

        // Prepare Soap Client
        $soapClient->__setSoapHeaders(array($headers));

Я просто бью головой о стену, пытаясь заставить что-то вернуть, Все, что мне нужно, направлено в правильном направлении ...

Ответы [ 2 ]

2 голосов
/ 12 марта 2011

Просмотрите документацию здесь:

http://www.php.net/manual/en/soapclient.soapclient.php

, чтобы узнать, как добавить переменную трассировки в ваш конструктор SoapClient.После этого вы можете использовать

  • SoapClient :: __ getLastRequestHeaders
  • SoapClient :: __ getLastRequest
  • SoapClient :: __ getLastResponse
  • SoapClient:: __ getLastResponseHeaders

Как средство, по крайней мере, для получения некоторой обратной связи о том, почему ваши звонки не работают.

0 голосов
/ 12 марта 2011

Вы можете попробовать использовать другую реализацию мыла и посмотреть, сохраняется ли проблема.Я предлагаю вам Zend Soap

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...