无法在 Saber 的创建 PNR 中处理无状态交易 (REST API)
Unable to process the stateless transaction in Create PNR of Sabre ( REST API )
我使用 REST API 并遵循 Sabre 的 low fare search and book workflow
Step 1: Shop for flights using the Bargain Finder Max API.
Step 2: Book one or more flight segments, add all required information
to create a passenger name record (PNR), and end the transaction using
the Create Passenger Name Record API.
我可以检索 Bargain Finder Max(第 1 步)数据,但我被困在创建乘客姓名记录。它总是 returns Unable to process the stateless transaction. Please retry.
错误。
这是负载信息
请求数据
{
"CreatePassengerNameRecordRQ": {
"version": "2.3.0",
"targetCity": "****",
"haltOnAirPriceError": false,
"TravelItineraryAddInfo": {
"AgencyInfo": {
"Address": {
"AddressLine": "SABRE TRAVEL",
"CityName": "SOUTHLAKE",
"CountryCode": "US",
"PostalCode": "76092",
"StateCountyProv": {
"StateCode": "TX"
},
"StreetNmbr": "3150 SABRE DRIVE"
},
"Ticketing": {
"TicketType": "7TAW"
}
},
"CustomerInfo": {
"ContactNumbers": {
"ContactNumber": [
{
"NameNumber": "1.1",
"Phone": "817-555-1212",
"PhoneUseType": "H"
}
]
},
"PersonName": [
{
"NameNumber": "1.1",
"PassengerType": "ADT",
"GivenName": "John",
"Surname": "Tolliver"
}
]
}
},
"AirBook": {
"HaltOnStatus": [
{
"Code": "HL"
},
{
"Code": "KK"
},
{
"Code": "LL"
},
{
"Code": "NN"
},
{
"Code": "NO"
},
{
"Code": "UC"
},
{
"Code": "US"
}
],
"OriginDestinationInformation": {
"FlightSegment": [
{
"ArrivalDateTime": "2020-03-24T08:48:00T00:00:00",
"DepartureDateTime": "2020-03-24T08:48:00T00:00:00",
"FlightNumber": "",
"NumberInParty": "1",
"ResBookDesigCode": "Y",
"Status": "NN",
"DestinationLocation": {
"LocationCode": ""
},
"MarketingAirline": {
"Code": "",
"FlightNumber": ""
},
"OriginLocation": {
"LocationCode": ""
}
},
{
"ArrivalDateTime": "2020-03-24T08:48:00T00:00:00",
"DepartureDateTime": "2020-03-24T08:48:00T00:00:00",
"FlightNumber": "",
"NumberInParty": "1",
"ResBookDesigCode": "Y",
"Status": "NN",
"DestinationLocation": {
"LocationCode": ""
},
"MarketingAirline": {
"Code": "",
"FlightNumber": ""
},
"OriginLocation": {
"LocationCode": ""
}
}
]
},
"RedisplayReservation": {
"NumAttempts": 10,
"WaitInterval": 300
}
},
"AirPrice": [
{
"PriceRequestInformation": {
"Retain": true,
"OptionalQualifiers": {
"FOP_Qualifiers": {
"BasicFOP": {
"Type": "CK"
}
},
"PricingQualifiers": {
"PassengerType": [
{
"Code": "0",
"Quantity": "1"
}
]
}
}
}
}
],
"SpecialReqDetails": {
"AddRemark": {
"RemarkInfo": {
"FOP_Remark": {
"Type": "CHECK"
}
}
},
"SpecialService": {
"SpecialServiceInfo": {
"SecureFlight": [
{
"PersonName": {
"DateOfBirth": "2009-05-14",
"Gender": "F",
"NameNumber": "2.1",
"GivenName": "mim",
"Surname": "khan"
},
"SegmentNumber": "A"
}
],
"Service": [
{
"PersonName": {
"NameNumber": "2.1"
},
"SSR_Code": "CHLD",
"Text": "01MAY07"
}
]
}
}
},
"PostProcessing": {
"EndTransaction": {
"Source": {
"ReceivedFrom": "SP WEB"
}
},
"RedisplayReservation": {
"waitInterval": 100
}
}
}
}
响应数据
{
"errorCode": "ERR.SP.PROVIDER_ERROR",
"message": "Unable to process the stateless transaction. Please retry.",
"status": "Incomplete",
"type": "Application",
"timeStamp": "2020-03-20T01:01:30-05"
}
您很幸运,因为我能够仅根据时间戳来追踪此特定交易。
以后考虑发送以下httpheader:
Conversation-ID: ${some.unique.identifier.specific.per.each.request}
并传递它,以便 Sabre Teams 可以毫无问题地对其进行追踪! (就个人而言,我在 运行 测试时为每个请求生成一个新的 UUID。)
通常我会建议联系 Sabre 支持来处理此类错误。
您使用的 Sabre 帐户似乎 未激活 ,我强烈建议您联系该团队以启用您的测试帐户。
这条消息背后的原因是大多数时候代理机构略微超过他们的 TAM 池(session 限制)所以稍等片刻 re-trying 帮助,我们也不希望公开 Sabre 中的内部安全实现。
在这种情况下,返回到托管 CreatePassengerNameRecordRQ 的应用程序的异常的结尾部分实际上是:
error.UserIDInactive
我使用 REST API 并遵循 Sabre 的 low fare search and book workflow
Step 1: Shop for flights using the Bargain Finder Max API.
Step 2: Book one or more flight segments, add all required information to create a passenger name record (PNR), and end the transaction using the Create Passenger Name Record API.
我可以检索 Bargain Finder Max(第 1 步)数据,但我被困在创建乘客姓名记录。它总是 returns Unable to process the stateless transaction. Please retry.
错误。
这是负载信息
请求数据
{
"CreatePassengerNameRecordRQ": {
"version": "2.3.0",
"targetCity": "****",
"haltOnAirPriceError": false,
"TravelItineraryAddInfo": {
"AgencyInfo": {
"Address": {
"AddressLine": "SABRE TRAVEL",
"CityName": "SOUTHLAKE",
"CountryCode": "US",
"PostalCode": "76092",
"StateCountyProv": {
"StateCode": "TX"
},
"StreetNmbr": "3150 SABRE DRIVE"
},
"Ticketing": {
"TicketType": "7TAW"
}
},
"CustomerInfo": {
"ContactNumbers": {
"ContactNumber": [
{
"NameNumber": "1.1",
"Phone": "817-555-1212",
"PhoneUseType": "H"
}
]
},
"PersonName": [
{
"NameNumber": "1.1",
"PassengerType": "ADT",
"GivenName": "John",
"Surname": "Tolliver"
}
]
}
},
"AirBook": {
"HaltOnStatus": [
{
"Code": "HL"
},
{
"Code": "KK"
},
{
"Code": "LL"
},
{
"Code": "NN"
},
{
"Code": "NO"
},
{
"Code": "UC"
},
{
"Code": "US"
}
],
"OriginDestinationInformation": {
"FlightSegment": [
{
"ArrivalDateTime": "2020-03-24T08:48:00T00:00:00",
"DepartureDateTime": "2020-03-24T08:48:00T00:00:00",
"FlightNumber": "",
"NumberInParty": "1",
"ResBookDesigCode": "Y",
"Status": "NN",
"DestinationLocation": {
"LocationCode": ""
},
"MarketingAirline": {
"Code": "",
"FlightNumber": ""
},
"OriginLocation": {
"LocationCode": ""
}
},
{
"ArrivalDateTime": "2020-03-24T08:48:00T00:00:00",
"DepartureDateTime": "2020-03-24T08:48:00T00:00:00",
"FlightNumber": "",
"NumberInParty": "1",
"ResBookDesigCode": "Y",
"Status": "NN",
"DestinationLocation": {
"LocationCode": ""
},
"MarketingAirline": {
"Code": "",
"FlightNumber": ""
},
"OriginLocation": {
"LocationCode": ""
}
}
]
},
"RedisplayReservation": {
"NumAttempts": 10,
"WaitInterval": 300
}
},
"AirPrice": [
{
"PriceRequestInformation": {
"Retain": true,
"OptionalQualifiers": {
"FOP_Qualifiers": {
"BasicFOP": {
"Type": "CK"
}
},
"PricingQualifiers": {
"PassengerType": [
{
"Code": "0",
"Quantity": "1"
}
]
}
}
}
}
],
"SpecialReqDetails": {
"AddRemark": {
"RemarkInfo": {
"FOP_Remark": {
"Type": "CHECK"
}
}
},
"SpecialService": {
"SpecialServiceInfo": {
"SecureFlight": [
{
"PersonName": {
"DateOfBirth": "2009-05-14",
"Gender": "F",
"NameNumber": "2.1",
"GivenName": "mim",
"Surname": "khan"
},
"SegmentNumber": "A"
}
],
"Service": [
{
"PersonName": {
"NameNumber": "2.1"
},
"SSR_Code": "CHLD",
"Text": "01MAY07"
}
]
}
}
},
"PostProcessing": {
"EndTransaction": {
"Source": {
"ReceivedFrom": "SP WEB"
}
},
"RedisplayReservation": {
"waitInterval": 100
}
}
}
}
响应数据
{
"errorCode": "ERR.SP.PROVIDER_ERROR",
"message": "Unable to process the stateless transaction. Please retry.",
"status": "Incomplete",
"type": "Application",
"timeStamp": "2020-03-20T01:01:30-05"
}
您很幸运,因为我能够仅根据时间戳来追踪此特定交易。
以后考虑发送以下httpheader:
Conversation-ID: ${some.unique.identifier.specific.per.each.request}
并传递它,以便 Sabre Teams 可以毫无问题地对其进行追踪! (就个人而言,我在 运行 测试时为每个请求生成一个新的 UUID。)
通常我会建议联系 Sabre 支持来处理此类错误。 您使用的 Sabre 帐户似乎 未激活 ,我强烈建议您联系该团队以启用您的测试帐户。
这条消息背后的原因是大多数时候代理机构略微超过他们的 TAM 池(session 限制)所以稍等片刻 re-trying 帮助,我们也不希望公开 Sabre 中的内部安全实现。
在这种情况下,返回到托管 CreatePassengerNameRecordRQ 的应用程序的异常的结尾部分实际上是:
error.UserIDInactive