【问题标题】:How to retrieve Sabre profile using SOAP API如何使用 SOAP API 检索 Sabre 配置文件
【发布时间】:2020-12-17 02:45:01
【问题描述】:

我正在尝试使用 Sabre SOAP API 来检索配置文件。我在此处使用 SOAP 模板 (https://developer.sabre.com/guides/travel-agency/developer-guides/soap-apis-request-format) 和此处的详细信息 (https://developer.sabre.com/sabre_hospitality/apis/soap_apis/hotel/profile/read_profile)。我可以使用 SessionCreateRQ 请求 ok 获得 BinarySession 令牌。它以文本“Shared/IDL:IceSess/SessMgr”开头。

我的请求如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:eb="http://www.ebxml.org/namespaces/messageHeader" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsd="http://www.w3.org/1999/XMLSchema">
  <SOAP-ENV:Header>
    <eb:MessageHeader SOAP-ENV:mustUnderstand="1" eb:version="1.0">
      <eb:From>
        <eb:PartyId />
      </eb:From>
      <eb:To>
        <eb:PartyId />
      </eb:To>
      <eb:CPAId>ipcc</eb:CPAId>
      <eb:ConversationId>conversationID</eb:ConversationId>
      <eb:Service>OTA_ReadRQ</eb:Service>
      <eb:Action>OTA_ReadRQ</eb:Action>
      <eb:MessageData>
        <eb:MessageId>mid:20001209-133003-2333@clientofsabre.com</eb:MessageId>
        <eb:Timestamp>2001-02-15T11:15:12Z</eb:Timestamp>
        <eb:TimeToLive>2001-02-15T11:15:12Z</eb:TimeToLive>
      </eb:MessageData>
    </eb:MessageHeader>
    <wsse:Security xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext">
      <wsse:BinarySecurityToken valueType="String" EncodingType="wsse:Base64Binary">MY SECURITY TOKEN GOES HERE</wsse:BinarySecurityToken>
    </wsse:Security>
  </SOAP-ENV:Header>
  <SOAP-ENV:Body>
    <eb:SoapAPIServiceActionCode>
      <OTA_ReadRQ Version="1" EchoToken="1122" PrimaryLangID="en" xmlns="http://www.opentravel.org/OTA/2003/05">
  <ReadRequests>
      <ProfileReadRequest>
          <UniqueID Type="1" ID="14EF985B2C" ID_Context="crs">
              <CompanyName CodeContext="hotel" Code="10001"/>
          </UniqueID>
      </ProfileReadRequest>
  </ReadRequests>
</OTA_ReadRQ>
    </eb:SoapAPIServiceActionCode>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

但是当我这样做时,我得到了错误:

    <soap-env:Fault>
        <faultcode>soap-env:Client.InvalidAction</faultcode>
        <faultstring>Action specified in EbxmlMessage does not exist.</faultstring>
        <detail>
            <StackTrace>com.sabre.universalservices.base.exception.ApplicationException: errors.xml.USG_INVALID_ACTION</StackTrace>
        </detail>
    </soap-env:Fault>
    

谁能告诉我哪里出错了?

【问题讨论】:

    标签: soap sabre


    【解决方案1】:

    尝试改用&lt;eb:Action&gt;OTA_ProfileReadRQ&lt;/eb:Action&gt;

    Sabre 回复 OTA_ProfileReadRS,所以我想 Action 代码也可能包含“ProfileRead”。

    【讨论】:

      【解决方案2】:

      首先您必须在您的 iPCC/EPR 中获得使用此服务的授权。

      The faultstring="EbxmlMessage 中指定的操作不存在。" 错误出现在 OTA_ReadRQ。 您可以在以下位置阅读有关款待服务的更多详细信息:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-01-07
        相关资源
        最近更新 更多