sabre - 创建乘客姓名记录 - 消息 NO FARE FOR CLASS USED
问题描述
我们正在使用 Bargain Finder Max 并创建乘客姓名记录来预订航班
我们发现大约 50% 的测试用例存在问题,我们看到 Create PNR 调用返回以下错误
"code":"ERR.SP.PROVIDER_ERROR","content":"Unable to perform air booking step"
其次是
[{"Message":[{"code":"WARN.SWS.HOST.ERROR_IN_RESPONSE", "content":"EnhancedAirBookRQ: NO FARE FOR CLASS USED"}]
我们的 Create PNR 呼叫正在使用来自 BFM 呼叫的响应
如您所见,我们正在传递 B 和 W 的 ResBookDesigCode,我们从 BFM 调用中检索到
这是我们想从 BFM 电话预订的截断细节,它是 4 次返程航班,我们正在使用一对定价的行程,我们不会尝试从一个定价的 Itin 中使用一个 out 并从另一个返回。
...[{
"DepartureDateTime": "2018-12-23T06:00:00",
"ArrivalDateTime": "2018-12-23T08:40:00",
"StopQuantity": 0,
"FlightNumber": "345",
"ResBookDesigCode": "B",
"ElapsedTime": 100,
"DepartureAirport": {
"LocationCode": "LHR",
"TerminalID": "2",
"content": ""
},
"ArrivalAirport": {
"LocationCode": "ZRH",
"content": ""
},
"OperatingAirline": {
"Code": "LX",
"FlightNumber": "345",
"content": ""
},
"Equipment": [{
"AirEquipType": "320",
"content": ""
}],
"MarketingAirline": {
"Code": "LX",
"content": ""
},
"MarriageGrp": "O",
"DepartureTimeZone": {
"GMTOffset": 0.0
},
"ArrivalTimeZone": {
"GMTOffset": 1.0
},
"TPA_Extensions": {
"eTicket": {
"Ind": true
},
"Mileage": {
"Amount": 491
}
}
}...
这是我们的创建 PNR 呼叫
{
"CreatePassengerNameRecordRQ": {
"version": "2.1.0",
"targetCity": "XXXX",
"haltOnAirPriceError": true,
"TravelItineraryAddInfo": {
"AgencyInfo": {
"Address": {
"AddressLine": "XXXXXX",
"CityName": "XXXXX",
"CountryCode": "GB",
"PostalCode": "XXX XXX",
"StateCountyProv": {
"StateCode": "XXXXX"
},
"StreetNmbr": "XXXXX"
},
"Ticketing": {
"TicketType": "XXXX"
}
},
"CustomerInfo": {
"ContactNumbers": {
"ContactNumber": [{
"NameNumber": "1.1",
"Phone": "0844 555 5555 ",
"PhoneUseType": "B"
}]
},
"CreditCardData": {
"BillingInformation": {
"cardHolderName": "XXXXX",
"streetAddress": "XXXX",
"city": "Feering",
"stateOrProvince": "Essex",
"PostalCode": "XXXXX"
}
},
"PersonName": [{
"NameNumber": "",
"NameReference": "",
"PassengerType": "ADT",
"GivenName": "BOB",
"Surname": "BOBBINGTON"
}]
}
},
"AirBook": {
"HaltOnStatus": [{
"Code": "NN"
}, {
"Code": "HL"
}, {
"Code": "KK"
}, {
"Code": "LL"
}, {
"Code": "NO"
}, {
"Code": "UC"
}, {
"Code": "US"
}],
"OriginDestinationInformation": {
"FlightSegment": [{
"DepartureDateTime": "2018-12-23T06:00:00",
"ArrivalDateTime": "2018-12-23T08:40:00",
"FlightNumber": "345",
"NumberInParty": "1",
"ResBookDesigCode": "B",
"Status": "NN",
"InstantPurchase": true,
"DestinationLocation": {
"LocationCode": "ZRH"
},
"MarketingAirline": {
"Code": "LX",
"FlightNumber": "345"
},
"MarriageGrp": "O",
"OriginLocation": {
"LocationCode": "LHR"
}
}, {
"DepartureDateTime": "2018-12-23T11:45:00",
"ArrivalDateTime": "2018-12-23T14:25:00",
"FlightNumber": "2114",
"NumberInParty": "1",
"ResBookDesigCode": "B",
"Status": "NN",
"InstantPurchase": true,
"DestinationLocation": {
"LocationCode": "AGP"
},
"MarketingAirline": {
"Code": "LX",
"FlightNumber": "2114"
},
"MarriageGrp": "O",
"OriginLocation": {
"LocationCode": "ZRH"
}
}, {
"DepartureDateTime": "2018-12-24T13:00:00",
"ArrivalDateTime": "2018-12-24T15:40:00",
"FlightNumber": "2111",
"NumberInParty": "1",
"ResBookDesigCode": "W",
"Status": "NN",
"InstantPurchase": true,
"DestinationLocation": {
"LocationCode": "ZRH"
},
"MarketingAirline": {
"Code": "LX",
"FlightNumber": "2111"
},
"MarriageGrp": "O",
"OriginLocation": {
"LocationCode": "AGP"
}
}, {
"DepartureDateTime": "2018-12-24T20:55:00",
"ArrivalDateTime": "2018-12-24T21:40:00",
"FlightNumber": "340",
"NumberInParty": "1",
"ResBookDesigCode": "W",
"Status": "NN",
"InstantPurchase": true,
"DestinationLocation": {
"LocationCode": "LHR"
},
"MarketingAirline": {
"Code": "LX",
"FlightNumber": "340"
},
"MarriageGrp": "O",
"OriginLocation": {
"LocationCode": "ZRH"
}
}]
}
},
"AirPrice": [{
"PriceComparison": {
"AmountSpecified": 403,
"AcceptablePriceIncrease": {
"HaltOnNonAcceptablePrice": true,
"Amount": 847
}
},
"PriceRequestInformation": {
"Retain": true,
"OptionalQualifiers": {
"FOP_Qualifiers": {
"BasicFOP": {
"Type": "CK"
}
},
"PricingQualifiers": {
"NameSelect": [{
"NameNumber": "1.1"
}],
"PassengerType": [{
"Code": "ADT",
"Quantity": "1"
}]
}
}
}
}],
"MiscSegment": {
"VendorPrefs": {
"Airline": {
"Code": "LX"
}
},
"DepartureDateTime": "12-23",
"NumberInParty": 1,
"Text": "TEST OTH MISCELLANEOUS SEGMENT",
"Type": "OTH",
"OriginLocation": {
"LocationCode": "LHR"
},
"Status": "GK"
},
"SpecialReqDetails": {
"AddRemark": {
"RemarkInfo": {
"FOP_Remark": {
"Type": "CASH"
}
}
},
"SpecialService": {
"SpecialServiceInfo": {
"SecureFlight": [{
"SegmentNumber": "A",
"PersonName": {
"DateOfBirth": "1977-07-17",
"Gender": "M",
"NameNumber": "1.1",
"GivenName": "BOB",
"Surname": "BOBBINGTON"
},
"VendorPrefs": {
"Airline": {
"Hosted": false
}
}
}],
"Service": []
}
}
},
"PostProcessing": {
"RedisplayReservation": true,
"ARUNK": "please do the arunk thing",
"EndTransaction": {
"Source": {
"ReceivedFrom": "SP TEST"
}
},
"PostBookingHKValidation": {
"waitInterval": 100,
"numAttempts": 6
},
"WaitForAirlineRecLoc": {
"waitInterval": 100,
"numAttempts": 6
}
}
}
}
我一直在阅读这样的帖子,上面写着“就是这样,价格会发生变化”,但如果是这种情况,为什么当我们再次启动该流程时,我们会在随后的通话中获得相同的定价和可用性?
解决方案
推荐阅读
- r - 允许用户从 R 中的 RGtk2 列表中选择多个值?
- python - 在pyqt5中设置禁用复选框的选择背景
- c# - -AWS C# .Net Core-如何将 .jpg 图像上传到 S3 存储桶而不将其保存为文件
- python - 用另一列的条件模式填充列
- r - 带有 nginx 和 https 的闪亮服务器:应用程序的 404
- php - laravel 5.8 直接导航链接和重定向路由问题
- python - OSError:找不到 geos_c.dll 或加载其任何变体
- python-3.x - 如何为整个集合转换带有 int 字符的字符串?
- spring-cloud - 有没有办法防止 Spring Cloud Gateway 重新排序查询参数?
- javascript - 如何将这些过滤器按钮更改为下拉菜单?