Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
966 views
in Technique[技术] by (71.8m points)

soap - How to guarantee air price quote after PNR creation on Sabre API?

I'm trying to create a PNR with "Time to think/Fare lock" option offered by airlines like AF, KLM, LH and more. The idea is to create the PNR to temporarily "block" the price until the time limit is reached (48~72hs) but I don't know how.

I'm able to create the PNR, with CreatePassengerNameRecord, without problems and it returns the retained PriceQuote but the fare is not guaranteed until ticketed and the system will re-price the itinerary with the current fare before ticketing.

Request/response example CreatePassengerNameRecordRQ

"CreatePassengerNameRecordRQ" : {
"version" : "2.2.0",
"haltOnAirPriceError" : true,
"TravelItineraryAddInfo" : {
    "AgencyInfo" : {
        "Address" : {
            "AddressLine" : "TEST",
            "CityName" : "TEST",
            "CountryCode" : "FR",
            "PostalCode" : "99999",
            "StreetNmbr" : "TEST 123"
        },
        "Ticketing" : {
            "PseudoCityCode" : "L4GJ",
            "TicketType" : "7TAW"
        }
    },
    "CustomerInfo" : {
        "ContactNumbers" : {
            "ContactNumber" : [ 
                {
                    "Phone" : "99999999",
                    "PhoneUseType" : "A"
                }
            ]
        },
        "CustLoyalty" : [],
        "Email" : [ 
            {
                "Address" : "[email protected]"
            }, 
            {
                "Address" : "[email protected]"
            }
        ],
        "PersonName" : [ 
            {
                "NameNumber" : "1.1",
                "PassengerType" : "ADT",
                "GivenName" : "TEST",
                "Surname" : "TEST"
            }
        ]
    }
},
"AirBook" : {
    "HaltOnStatus" : [ 
        {
            "Code" : "HL"
        }, 
        {
            "Code" : "KK"
        }, 
        {
            "Code" : "LL"
        }, 
        {
            "Code" : "NN"
        }, 
        {
            "Code" : "NO"
        }, 
        {
            "Code" : "UC"
        }, 
        {
            "Code" : "US"
        }
    ],
    "OriginDestinationInformation" : {
        "FlightSegment" : [ 
            {
                "DepartureDateTime" : "2021-02-17T13:15:00",
                "ArrivalDateTime" : "2021-02-17T13:45:00",
                "FlightNumber" : "1780",
                "NumberInParty" : "1",
                "ResBookDesigCode" : "G",
                "Status" : "NN",
                "DestinationLocation" : {
                    "LocationCode" : "LHR"
                },
                "MarketingAirline" : {
                    "Code" : "AF",
                    "FlightNumber" : "1780"
                },
                "OriginLocation" : {
                    "LocationCode" : "CDG"
                }
            }, 
            {
                "DepartureDateTime" : "2021-02-26T11:30:00",
                "ArrivalDateTime" : "2021-02-26T13:50:00",
                "FlightNumber" : "1581",
                "NumberInParty" : "1",
                "ResBookDesigCode" : "X",
                "Status" : "NN",
                "DestinationLocation" : {
                    "LocationCode" : "CDG"
                },
                "MarketingAirline" : {
                    "Code" : "AF",
                    "FlightNumber" : "1581"
                },
                "OriginLocation" : {
                    "LocationCode" : "LHR"
                }
            }
        ]
    }
},
"AirPrice" : [ 
    {
        "PriceComparison" : {
            "AcceptablePriceDecrease" : {
                "Amount" : 125.3,
                "HaltOnNonAcceptablePrice" : true
            },
            "AcceptablePriceIncrease" : {
                "Amount" : 5,
                "HaltOnNonAcceptablePrice" : true
            },
            "AmountSpecified" : 125.3
        },
        "PriceRequestInformation" : {
            "Retain" : true,
            "OptionalQualifiers" : {
                "MiscQualifiers" : {
                    "BaggageAllowance" : []
                },
                "FOP_Qualifiers" : {
                    "BasicFOP" : {
                        "Type" : "CK"
                    }
                },
                "PricingQualifiers" : {
                    "ItineraryOptions" : {
                        "SegmentSelect" : [ 
                            {
                                "Number" : "1",
                                "RPH" : "1"
                            }, 
                            {
                                "Number" : "2",
                                "RPH" : "2"
                            }
                        ]
                    },
                    "PassengerType" : [ 
                        {
                            "Quantity" : "1",
                            "Code" : "ADT"
                        }
                    ],
                    "SpecificFare" : [ 
                        {
                            "FareBasis" : "GS50OALG",
                            "RPH" : "1"
                        }, 
                        {
                            "FareBasis" : "XS50OALG",
                            "RPH" : "2"
                        }
                    ]
                }
            }
        }
    }
],
"SpecialReqDetails" : {
    "SpecialService" : {
        "SpecialServiceInfo" : {
            "AdvancePassenger" : [],
            "SecureFlight" : [ 
                {
                    "PersonName" : {
                        "NameNumber" : "1.1",
                        "DateOfBirth" : "1991-01-13",
                        "Gender" : "M",
                        "GivenName" : "TEST",
                        "Surname" : "TEST"
                    }
                }
            ],
            "Service" : [ 
                {
                    "SSR_Code" : "CTCM",
                    "PersonName" : {
                        "NameNumber" : "1.1"
                    },
                    "Text" : "0033142890939"
                }, 
                {
                    "SSR_Code" : "CTCE",
                    "PersonName" : {
                        "NameNumber" : "1.1"
                    },
                    "Text" : "TEST"
                }
            ]
        }
    }
},
"PostProcessing" : {
    "RedisplayReservation" : {
        "waitInterval" : 1000
    },
    "EndTransaction" : {
        "Email" : {
            "eTicket" : {
                "PDF" : {
                    "Ind" : false
                },
                "Ind" : false
            },
            "Ind" : true
        },
        "Source" : {
            "ReceivedFrom" : "TEST"
        }
    }
}

} }

CreatePassengerNameRecordRS (partial)

"CreatePassengerNameRecordRS" : {
"ApplicationResults" : {
    "status" : "Complete",
    "Success" : [ 
        {
            "timeStamp" : "2020-11-19T06:29:15.342-06:00"
        }
    ],
    "Warning" : [ 
        {
            "type" : "BusinessLogic",
            "timeStamp" : "2020-11-19T06:29:14.016-06:00",
            "SystemSpecificResults" : [ 
                {
                    "Message" : [ 
                        {
                            "code" : "WARN.SWS.HOST.WARNING_RESPONSE",
                            "content" : "EndTransactionLLSRQ: TTY REQ PEND"
                        }
                    ]
                }
            ]
        }
    ]
},
"ItineraryRef" : {
    "ID" : "HOKJCQ"
},
"AirBook" : {
    "OriginDestinationOption" : {
        "FlightSegment" : [ 
            {
                "ArrivalDateTime" : "02-17T13:45",
                "DepartureDateTime" : "02-17T13:15",
                "eTicket" : true,
                "FlightNumber" : "1780",
                "NumberInParty" : "001",
                "ResBookDesigCode" : "G",
                "Status" : "NN",
                "DestinationLocation" : {
                    "LocationCode" : "LHR"
                },
                "MarketingAirline" : {
                    "Code" : "AF",
                    "FlightNumber" : "1780"
                },
                "OriginLocation" : {
                    "LocationCode" : "CDG"
                }
            }, 
            {
                "ArrivalDateTime" : "02-26T13:50",
                "DepartureDateTime" : "02-26T11:30",
                "eTicket" : true,
                "FlightNumber" : "1581",
                "NumberInParty" : "001",
                "ResBookDesigCode" : "X",
                "Status" : "NN",
                "DestinationLocation" : {
                    "LocationCode" : "CDG"
                },
                "MarketingAirline" : {
                    "Code" : "AF",
                    "FlightNumber" : "1581"
                },
                "OriginLocation" : {
                    "LocationCode" : "LHR"
                }
            }
        ]
    }
},
"AirPrice" : [ 
    {
        "PriceCompariso

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
等待大神答复

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...