使用Sabre Bargain Finder Max SOAP接口遇版本弃用错误求助
解决Sabre Bargain Finder Max响应版本弃用错误
我帮你梳理了几个关键的排查方向和解决办法,结合你的请求与响应报文来看,核心问题是Sabre没有正确识别你指定的3.4.0版本,或者该版本已被官方弃用,你可以逐一尝试以下方案:
1. 确认3.4.0版本是否仍被Sabre测试环境支持
Sabre会定期淘汰旧版API,虽然你指定了Version="3.4.0"和ResponseVersion="3.4.0",但测试环境(Target="Test")可能已经不再支持这个版本。建议你先确认当前Sabre BFM官方支持的版本范围,优先升级到推荐的稳定版本(比如3.5.0或更高)。
2. 检查SOAP请求的完整性,补全必要的SOAP Header
你的请求缺少标准的Sabre SOAP Header,这可能导致Sabre无法正确解析版本参数,默认回退到旧版处理。尝试添加完整的SOAP Header,示例如下:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Header> <wsse:Security xmlns:wsse="http://schemas.xmlsoap.org/ws/2003/06/secext"> <!-- 这里填入你的安全认证信息(如UsernameToken) --> </wsse:Security> <eb:MessageHeader xmlns:eb="http://www.ebxml.org/namespaces/messageHeader" eb:version="1.0" SOAP-ENV:mustUnderstand="1"> <eb:From> <eb:PartyId eb:type="urn:x12.org:IO5:01">你的PCC编码</eb:PartyId> </eb:From> <eb:To> <eb:PartyId eb:type="urn:x12.org:IO5:01">Sabre</eb:PartyId> </eb:To> <eb:CPAId>你的CPA ID</eb:CPAId> <eb:ConversationId>唯一会话标识</eb:ConversationId> <eb:Service eb:type="OTA">OTA_AirLowFareSearchRQ</eb:Service> <eb:Action>OTA_AirLowFareSearchRQ</eb:Action> <eb:MessageData> <eb:MessageId>唯一消息ID</eb:MessageId> <eb:Timestamp>当前UTC时间戳(如2024-05-20T12:00:00Z)</eb:Timestamp> </eb:MessageData> </eb:MessageHeader> </SOAP-ENV:Header> <SOAP-ENV:Body> <!-- 你的OTA_AirLowFareSearchRQ请求内容 --> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
3. 调整TPA_Extensions中的请求类型参数
你当前使用的<RequestType Name="50ITIN" />是请求返回50条行程结果,部分旧版BFM对这个参数的兼容性不佳。可以尝试替换为标准低价搜索类型,或者暂时移除该参数测试:
<TPA_Extensions> <IntelliSellTransaction> <RequestType Name="ALFS" /> <!-- 标准低价搜索类型 --> </IntelliSellTransaction> </TPA_Extensions>
4. 直接升级到更高版本测试
如果确认3.4.0已被弃用,直接将请求中的版本参数升级到当前支持的版本(比如3.5.0):
<OTA_AirLowFareSearchRQ xmlns="http://www.opentravel.org/OTA/2003/05" Target="Test" Version="3.5.0" ResponseType="OTA" ResponseVersion="3.5.0">
5. 联系Sabre官方支持
如果以上步骤都无法解决问题,可能是你的PCC权限受限,或者测试环境存在配置异常。建议你提供完整的请求报文和PCC编码,联系Sabre开发者支持团队排查具体问题。
你的请求报文:
<?xml version="1.0" encoding="UTF-8"?> <OTA_AirLowFareSearchRQ xmlns="http://www.opentravel.org/OTA/2003/05" Target="Test" Version="3.4.0" ResponseType="OTA" ResponseVersion="3.4.0"> <POS> <Source PseudoCityCode="xxxx"> <RequestorID Type="1" Instance="1" ID="1" /> </Source> </POS> <OriginDestinationInformation RPH="1"> <DepartureDateTime>2018-01-15T00:00:00</DepartureDateTime> <OriginLocation LocationCode="YYZ" /> <DestinationLocation LocationCode="SDQ" /> </OriginDestinationInformation> <OriginDestinationInformation RPH="2"> <DepartureDateTime>2018-01-18T00:00:00</DepartureDateTime> <OriginLocation LocationCode="SDQ" /> <DestinationLocation LocationCode="YYZ" /> </OriginDestinationInformation> <TravelerInfoSummary> <AirTravelerAvail> <PassengerTypeQuantity Code="ADT" Quantity="1" /> </AirTravelerAvail> <PriceRequestInformation CurrencyCode="USD" /> </TravelerInfoSummary> <TPA_Extensions> <IntelliSellTransaction> <RequestType Name="50ITIN" /> </IntelliSellTransaction> </TPA_Extensions> </OTA_AirLowFareSearchRQ>
你的响应报文:
<?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Header /> <SOAP-ENV:Body> <OTA_AirLowFareSearchRS xmlns="http://www.opentravel.org/OTA/2003/05" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Version="1.0"> <Errors> <Error Type="SRV.DRE" Code="REQ.FLR" ShortText="dre request failed" /> <Error Type="IF2" Code="PROCESS" ShortText="PROCESSING ERROR DETECTED" /> <Error Type="MAIN" Code="DEPRECATEDRS" ShortText="This response version is deprecated and will be decommissioned once a newer version is released." /> <Error Type="WORKERTHREAD" Code="TRANSACTIONID" ShortText="6572224660929009932" /> <Error Type="SERVER" Code="TTFHLC850" ShortText="27042" /> <Error Type="ERR" Code="ERR" ShortText="Error during Processing" /> </Errors> </OTA_AirLowFareSearchRS> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
内容的提问来源于stack exchange,提问作者José De León
相关产品推荐
相关产品推荐

