连接到webservice使用PHP和Soap

好吧,我正在尝试连接到使用OTA
XML架构的Web服务

( “
http://www.opentravel.org/OTA/2003/05/GetVehAvailRate”)

这个网络服务托管在rentcentric.com,这是一个在线预订和预订的托管解决方案,系统需要用户名和密码来连接和到目前为止,每次连接尝试都会产生一个空白的白页.

没有错误消息没有PHP输出,

我仍然是使用SOAP的新手,(虽然我在房地产代理网站上使用它时确实取得了很大的成功 – 它不需要任何身份验证只是一个简单的值来识别该服务上的公司)

我已阅读并尝试了本网站上发现的几乎所有示例.别人没有快乐!

对服务的请求概述如下,
每个请求都有一组核心参数,它们是:

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

服务网址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));

我只是把头靠在墙上试图找回东西,
我所需要的只是指向正确的方向……

最佳答案 看看这里的文档:

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

了解如何将跟踪变量添加到SoapClient构造函数中.一旦你完成了,你可以使用

> SoapClient :: __ getLastRequestHeaders
> SoapClient :: __ getLastRequest
> SoapClient :: __ getLastResponse
> SoapClient :: __ getLastResponseHeaders

作为一种手段,至少可以获得一些反馈,说明您的呼叫失败的原因.

点赞