You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SABRE Create PNR接口问题:生成PNR与所选航班不符

SABRE Create PNR API 航班价格不符问题排查与参数补充

问题背景

集成SABRE Create PNR Rest API生产环境冒烟测试时,创建的PNR在SABRE黑屏系统中显示为最高价航班,但我方门户实际选择的是最低价航班。已在请求体中添加Fare Basis Code,问题仍未解决。

当前请求体

{
"CreatePassengerNameRecordRQ": {
    "version": "2.4.0",
    "targetCity": "targetCity-here",
    "TravelItineraryAddInfo": {
        "AgencyInfo": {
            "Ticketing": {
                "TicketType": "7TAW"
            }
        },
        "CustomerInfo": {
            "ContactNumbers": {
                "ContactNumber": [
                    {
                        "NameNumber": "1",
                        "Phone": "0799888889",
                        "PhoneUseType": "B"
                    }
                ]
            },
            "PersonName": [
                {
                    "NameNumber": "1",
                    "GivenName": "Husni",
                    "PassengerType": "ADT",
                    "Surname": "Zakarya"
                }
            ]
        }
    },
    "AirBook": {
        "OriginDestinationInformation": {
            "FlightSegment": [
                {
                    "ArrivalDateTime": "2024-03-14T12:55:00",
                    "DepartureDateTime": "2024-03-14T12:55:00",
                    "FlightNumber": "610",
                    "NumberInParty": "1",
                    "ResBookDesigCode": "Y",
                    "Status": "NN",
                    "DestinationLocation": {
                        "LocationCode": "DXB"
                    },
                    "OriginLocation": {
                        "LocationCode": "AMM"
                    },
                    "MarketingAirline": {
                        "Code": "RJ",
                        "FlightNumber": "610"
                    }
                },
                {
                    "ArrivalDateTime": "2024-03-21T16:15:00",
                    "DepartureDateTime": "2024-03-21T16:15:00",
                    "FlightNumber": "611",
                    "NumberInParty": "1",
                    "ResBookDesigCode": "Y",
                    "Status": "NN",
                    "DestinationLocation": {
                        "LocationCode": "AMM"
                    },
                    "OriginLocation": {
                        "LocationCode": "DXB"
                    },
                    "MarketingAirline": {
                        "Code": "RJ",
                        "FlightNumber": "611"
                    }
                }
            ]
        },
        "RedisplayReservation": {
            "NumAttempts": 10,
            "WaitInterval": 300
        }
    },
    "PostProcessing": {
        "EndTransaction": {
            "Source": {
                "ReceivedFrom": "11111111111111111"
            }
        }
    },
    "AirPrice": [
        {
            "PriceRequestInformation": {
                "Retain": true,
                "OptionalQualifiers": {
                    "FOP_Qualifiers": {
                        "BasicFOP": {
                            "Type": "CK"
                        }
                    },
                    "PricingQualifiers": {
                        "PassengerType": [
                            {
                                "Code": "ADT",
                                "Quantity": "1"
                            }
                        ],
                        "CommandPricing": [
                            {
                                "FareBasis": {
                                    "Code": "QANJOP"
                                }
                            }
                        ]
                    }
                }
            }
        }
    ],
    "SpecialReqDetails": {
        "SpecialService": {
            "SpecialServiceInfo": {
                "AdvancePassenger": [
                    {
                        "Document": {
                            "IssueCountry": "JO",
                            "ExpirationDate": "2026-10-20",
                            "Number": "P106022222",
                            "Type": "P"
                        },
                        "PersonName": {
                            "GivenName": "Husni",
                            "Surname": "Zakarya",
                            "DateOfBirth": "1975-05-02"
                        }
                    }
                ]
            }
        }
    }
}
}

问题分析与参数补充方案

核心问题点

  1. 舱位代码不匹配:请求中AirBook.FlightSegment.ResBookDesigCode使用的是Y(全价经济舱),但指定的Fare Basis Code QANJOP对应Q舱(低价舱位),系统会优先按预订的舱位定价,导致最高价。
  2. 未锁定低价规则:仅添加Fare Basis Code不足以强制系统使用低价,需补充票价锁定参数。
  3. 起降时间异常:DepartureDateTime与ArrivalDateTime完全相同,可能导致系统解析异常,影响定价逻辑。

需添加/修改的参数

  • 修改舱位代码:将两个FlightSegment的ResBookDesigCode从Y改为Q,匹配Fare Basis Code对应的低价舱位。
  • 添加票价锁定参数:在AirPrice.PriceRequestInformation.OptionalQualifiers.PricingQualifiers下添加FareQualifiers节点,明确锁定票价规则:
    "FareQualifiers": {
        "FareBasis": {
            "Code": "QANJOP",
            "ResBookDesigCode": "Q"
        },
        "PricingMethod": "N"
    }
    
    其中PricingMethod: "N"表示按指定票价计算,避免系统重新定价选择高价。
  • 修正起降时间:调整FlightSegment的DepartureDateTime为实际起飞时间,比如去程改为2024-03-14T10:55:00,保持ArrivalDateTime为2024-03-14T12:55:00,返程同理修正时间差。
  • (可选)添加报价ID锁定:如果之前通过SABRE询价接口获取了PriceQuoteID,可在AirPrice.PriceRequestInformation下添加PriceQuoteInfo节点,确保使用已确认的低价报价:
    "PriceQuoteInfo": {
        "PriceQuoteID": "your-price-quote-id"
    }
    

修改后的关键部分示例

AirBook修改后片段

"AirBook": {
    "OriginDestinationInformation": {
        "FlightSegment": [
            {
                "ArrivalDateTime": "2024-03-14T12:55:00",
                "DepartureDateTime": "2024-03-14T10:55:00",
                "FlightNumber": "610",
                "NumberInParty": "1",
                "ResBookDesigCode": "Q",
                "Status": "NN",
                "DestinationLocation": {
                    "LocationCode": "DXB"
                },
                "OriginLocation": {
                    "LocationCode": "AMM"
                },
                "MarketingAirline": {
                    "Code": "RJ",
                    "FlightNumber": "610"
                }
            },
            // 返程航班同理修改ResBookDesigCode和时间
        ]
    }
}

AirPrice修改后片段

"AirPrice": [
    {
        "PriceRequestInformation": {
            "Retain": true,
            "PriceQuoteInfo": {
                "PriceQuoteID": "your-price-quote-id"
            },
            "OptionalQualifiers": {
                "FOP_Qualifiers": {
                    "BasicFOP": {
                        "Type": "CK"
                    }
                },
                "PricingQualifiers": {
                    "PassengerType": [
                        {
                            "Code": "ADT",
                            "Quantity": "1"
                        }
                    ],
                    "CommandPricing": [
                        {
                            "FareBasis": {
                                "Code": "QANJOP"
                            }
                        }
                    ],
                    "FareQualifiers": {
                        "FareBasis": {
                            "Code": "QANJOP",
                            "ResBookDesigCode": "Q"
                        },
                        "PricingMethod": "N"
                    }
                }
            }
        }
    }
]

内容的提问来源于stack exchange,提问作者Omar.M

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 22:50:38