Sabre SOAP - OTA_VehAvailRateLLSRQ - CarAvaiability 2.4.2 - PullRequest
0 голосов
/ 20 апреля 2020

Я пытаюсь позвонить в этот SABER API для тестирования. Проблема в том, что он выдает мне «Invalid Token», даже если я получаю токен с их сайта. Похоже, это какое-то исключение глотания.

Кто-нибудь может помочь?

URL: "https://webservices.havail.sabre.com/websvc

Запрос:

 <?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>DCG</eb:CPAId>
      <eb:ConversationId>1234</eb:ConversationId>
      <eb:Service>OTA_VehAvailRateLLSRQ</eb:Service>
      <eb:Action>OTA_VehAvailRateLLSRQ</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"><TOKEN></wsse:BinarySecurityToken>
    </wsse:Security>
  </SOAP-ENV:Header>
  <SOAP-ENV:Body>
    <eb:Manifest SOAP-ENV:mustUnderstand="1" eb:version="1.0">
      <eb:Reference xlink:href="cid:rootelement" xlink:type="simple" />
    </eb:Manifest>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Ответ:

<?xml version="1.0" encoding="UTF-8"?>
<soap-env:Envelope
  xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
  <soap-env:Header>
    <eb:MessageHeader
      xmlns:eb="http://www.ebxml.org/namespaces/messageHeader" eb:version="1.0" soap-env:mustUnderstand="1">
      <eb:From>
        <eb:PartyId eb:type="URI"/>
      </eb:From>
      <eb:To>
        <eb:PartyId eb:type="URI"/>
      </eb:To>
      <eb:CPAId>DCG</eb:CPAId>
      <eb:ConversationId>1234</eb:ConversationId>
      <eb:Service>OTA_VehAvailRateLLSRQ</eb:Service>
      <eb:Action>ErrorRS</eb:Action>
      <eb:MessageData>
        <eb:MessageId>1268526483006710967</eb:MessageId>
        <eb:Timestamp>2020-04-20T13:25:00</eb:Timestamp>
        <eb:RefToMessageId>mid:20001209-133003-2333@clientofsabre.com</eb:RefToMessageId>
      </eb:MessageData>
    </eb:MessageHeader>
    <wsse:Security
      xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext">
      <wsse:BinarySecurityToken valueType="String" EncodingType="wsse:Base64Binary">T1RLAQLKsWdy2rgwff0GLkvtNyOA/+VwuhCcnUQkuIUsGd4M5EzMI4iNAADAIhXoZ1cmf0lgWDyy+xBWtgEO07wA+JcuqIqxP9p4K6ZvtDo8yc1UfsmFgCejOpb4m0kBI/VJbfz6TDf9yzgA0bFmcS/Hq9FWXRMEf2fq3AkRETyZpTQe+vFODBp5Qstn90ox5lSDs4wv8RoYKZdN9HRo982LLwCtcAwMx6EoBd3C7MlJlkjl/mpwCxC54+teR5bJVuk6AYVS/</wsse:BinarySecurityToken>
    </wsse:Security>
  </soap-env:Header>
  <soap-env:Body>
    <soap-env:Fault>
      <faultcode>soap-env:Client.InvalidSecurityToken</faultcode>
      <faultstring>Invalid or Expired binary security token: T1RLAQLKsWdy2rgwff0GLkvtNyOA/+VwuhCcnUQkuIUsGd4M5EzMI4iNAADAIhXoZ1cmf0lgWDyy+xBWtgEO07wA+JcuqIqxP9p4K6ZvtDo8yc1UfsmFgCejOpb4m0kBI/VJbfz6TDf9yzgA0bFmcS/Hq9FWXRMEf2fq3AkRETyZpTQe+vFODBp5Qstn90ox5lSDs4wv8RoYKZdN9HRo982LLwCtcAwMx6EoBd3C7MlJlkjl/mpwCxC54+teR5bJVuk6AYVS/</faultstring>
      <detail>
        <StackTrace>com.sabre.universalservices.base.session.SessionException: errors.session.USG_INVALID_SECURITY_TOKEN</StackTrace>
      </detail>
    </soap-env:Fault>
  </soap-env:Body>
</soap-env:Envelope>

У меня такое впечатление, что я делаю что-то не так, я действительно понятия не имею, что происходит, я не вижу много документации об этом.

Спасибо.

1 Ответ

0 голосов
/ 20 апреля 2020

Прежде всего вам следует изучить руководство "Как сделать" из Sabre. https://developer.sabre.com/guides/travel-agency/how-to/get-token.

Токен создается после вызова SessionCreate. Таким образом, вы можете использовать значение BinarySecurityToken в ответе SessionCreate.

https://developer.sabre.com/docs/soap_apis/session_management/create_session

...