我正在尝试生成PNR。为此,我在Air Book“OTA_AirBookRQ”中使用了“EnhancedAirBookRQ”。我使用BargainFinderMaxRQ
进行搜索,然后现在我使用EnhancedAirBookRQ
用于Air book和Price Iternary。但我得到的错误如 PNR Connector unknow,由[未找到PNR,代码:500325,严重性:中等]
EnhancedAirBookRQ
<?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" SOAP-ENV:mustUnderstand="0">
<eb:From>
<eb:PartyId eb:type="urn:x12.org:IO5:01">localhost/sabre</eb:PartyId>
</eb:From>
<eb:To>
<eb:PartyId eb:type="urn:x12.org:IO5:01">sabre</eb:PartyId>
</eb:To>
<eb:CPAId>3W2D</eb:CPAId>
<eb:ConversationId>testingId</eb:ConversationId>
<eb:Service eb:type="sabreXML">EnhancedAirBookRQ</eb:Service>
<eb:Action>EnhancedAirBookRQ</eb:Action>
<eb:MessageData>
<eb:MessageId>1426190858</eb:MessageId>
<eb:Timestamp>2016-02-08T02:37:58-06:00</eb:Timestamp>
<eb:TimeToLive>2016-02-08T03:37:58-06:00</eb:TimeToLive>
</eb:MessageData>
</eb:MessageHeader>
<wsse:Security xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext">
<wsse:BinarySecurityToken>Shared/IDL:IceSess\/SessMgr:1\.0.IDL/Common/!ICESMS\/ACPCRTD!ICESMSLB\/CRT.LB!-3421544930368575840!319427!0</wsse:BinarySecurityToken>
</wsse:Security>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<EnhancedAirBookRQ xmlns="http://services.sabre.com/sp/eab/v3_2" version="3.2.0" HaltOnError="true">
<OTA_AirBookRQ>
<HaltOnStatus Code="UC" />
<HaltOnStatus Code="LL" />
<HaltOnStatus Code="UL" />
<HaltOnStatus Code="UN" />
<HaltOnStatus Code="NO" />
<HaltOnStatus Code="HL" />
<OriginDestinationInformation>
<FlightSegment DepartureDateTime="2016-03-31T16:05:00" FlightNumber="216" NumberInParty="1" ResBookDesigCode="S" Status="NN">
<DestinationLocation LocationCode="DEL" />
<MarketingAirline Code="AI" FlightNumber="216" />
<OriginLocation LocationCode="KTM" />
</FlightSegment>
</OriginDestinationInformation>
</OTA_AirBookRQ>
<PostProcessing IgnoreAfter="true">
<RedisplayReservation/>
</PostProcessing>
<PreProcessing IgnoreBefore="false">
<UniqueID ID="JEGYLT" />
</PreProcessing>
</EnhancedAirBookRQ>
</SOAP-ENV:Body>
EnhancedAirBookRS
<?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="urn:x12.org:IO5:01">sabre</eb:PartyId>
</eb:From>
<eb:To>
<eb:PartyId eb:type="urn:x12.org:IO5:01">localhost/sabre</eb:PartyId>
</eb:To>
<eb:CPAId>3W2D</eb:CPAId>
<eb:ConversationId>testingId</eb:ConversationId>
<eb:Service eb:type="sabreXML">EnhancedAirBookRQ</eb:Service>
<eb:Action>EnhancedAirBookRS</eb:Action>
<eb:MessageData>
<eb:MessageId>13592644980251760</eb:MessageId>
<eb:Timestamp>2016-03-29T17:54:58</eb:Timestamp>
<eb:RefToMessageId>1426190858</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">Shared/IDL:IceSess\/SessMgr:1\.0.IDL/Common/!ICESMS\/ACPCRTD!ICESMSLB\/CRT.LB!-3421544930368575840!319427!0</wsse:BinarySecurityToken>
</wsse:Security>
</soap-env:Header>
<soap-env:Body>
<EnhancedAirBookRS xmlns="http://services.sabre.com/sp/eab/v3_2">
<ApplicationResults xmlns="http://services.sabre.com/STL_Payload/v02_01" status="NotProcessed">
<Error type="Application" timeStamp="2016-03-29T12:54:58.415-05:00">
<SystemSpecificResults>
<Message code="ERR.SP.PROVIDER_ERROR">PNR Connector unknow, caused by [PNR not found, code: 500325, severity: MODERATE]</Message>
<Message code="700201">PNR Connector unknow, caused by [PNR not found, code: 500325, severity: MODERATE]</Message>
</SystemSpecificResults>
</Error>
</ApplicationResults>
</EnhancedAirBookRS>
</soap-env:Body>
</soap-env:Envelope>
答案 0 :(得分:1)
如果你发送:
<PreProcessing IgnoreBefore="false">
<UniqueID ID="JEGYLT" />
</PreProcessing>
在解释EnhancedAirBook请求中的其余内容之前,Sabre将查找具有该ID的PNR。该PNR是现有的吗?
如果您是从头开始创建PNR(意味着您想在新预订中预订指定的航班),则不需要在预处理中指定PNR ID(您可以删除整个预处理来自请求的元素。)
最后,发送<PostProcessing IgnoreAfter="true">
会忽略服务完成后所做的一切,所以不确定你要在那里完成什么......