如何查找Sabre SOAP API的特定端点?新手技术咨询
解决Sabre SOAP API的Token获取与端点问题
Sabre的SOAP API和REST逻辑差异很大,它没有REST那种细分的独立端点,所有SOAP操作都共用你拿到的基础URL,核心区别在于请求的SOAP信封(SOAP Envelope)内容。
获取Access Token的SOAP请求示例
你需要构造符合Sabre规范的XML请求,发送到基础URL来获取会话token。核心是在SOAP头和体中填入你的凭证信息:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sec="http://schemas.xmlsoap.org/ws/2002/12/secext" xmlns:mes="http://www.ebxml.org/namespaces/messageHeader" xmlns:ns="http://webservices.sabre.com/auth/service/v1"> <soapenv:Header> <sec:Security> <sec:UsernameToken> <sec:Username>你的用户名</sec:Username> <sec:Password>你的密码</sec:Password> </sec:UsernameToken> </sec:Security> <mes:MessageHeader> <mes:From> <mes:PartyId>你的PartyId</mes:PartyId> </mes:From> <mes:To> <mes:PartyId>Sabre</mes:PartyId> </mes:To> <mes:CPAId>你的CPAId</mes:CPAId> <mes:ConversationId>自定义唯一标识(如GUID)</mes:ConversationId> <mes:Service>SessionCreateRQ</mes:Service> <mes:Action>SessionCreateRQ</mes:Action> <mes:MessageData> <mes:MessageId>自定义唯一标识</mes:MessageId> <mes:Timestamp>当前UTC时间(格式:yyyy-MM-ddTHH:mm:ssZ)</mes:Timestamp> </mes:MessageData> </mes:MessageHeader> </soapenv:Header> <soapenv:Body> <ns:SessionCreateRQ> <ns:POS> <ns:Source PseudoCityCode="你的伪城市代码"/> </ns:POS> </ns:SessionCreateRQ> </soapenv:Body> </soapenv:Envelope>
发送成功后,响应里的BinarySecurityToken就是你后续调用其他SOAP接口需要的token。
其他SOAP API操作要点
- 所有SOAP接口都用同一个基础URL,区分操作靠SOAP信封里的
Service、Action标签值,以及请求体里的操作名称(比如AirAvailRQ对应航班查询)。 - 后续请求的SOAP头需要替换成已获取的token,格式如下:
<sec:Security> <sec:BinarySecurityToken>获取到的token值</sec:BinarySecurityToken> </sec:Security>
排查小技巧
- 确认基础URL是Sabre的SOAP环境地址:生产环境通常是
https://webservices.sabre.com,测试环境是https://sws-crt.cert.sabre.com。 - 检查凭证是否包含PseudoCityCode、CPAId这些必填项,它们是Sabre SOAP API的核心身份标识,缺一不可。
内容的提问来源于stack exchange,提问作者Rohit Bhandari
相关产品推荐
相关产品推荐

