问题描述
我想使用 amadeus API 创建预订并生成 PNR
我已经按照步骤
- 带有起点和目的地的搜索以及使用以下 API 获取结果列表的单程旅行 https://developers.amadeus.com/self-service/category/air/api-doc/flight-offers-search/api-reference
- 然后验证选定的报价以获取实际机票价格。要验证我在 API 下方使用的选定报价 https://developers.amadeus.com/self-service/category/air/api-doc/flight-offers-price/api-reference
但我在验证航班报价和获取实际航班票价时面临以下问题。
使用 amadeus flight-offers-search API 使用“BLR”和“LAX”搜索航班以及单程旅行时,我得到了航班报价列表。
我调用了另一个 api“flight-offers-price”来验证航班报价以获取实际报价。
我得到了实际机票价格的回复,并在搜索 filght 时显示了“BLR”为 from 和“LAX”为 to 和单程旅行
我使用过这个 API https://developers.amadeus.com/self-service/category/air/api-doc/flight-offers-price/api-reference
这是我的请求参数
{
"data": {
"type": "flight-offers-pricing","flightOffers": [
{
"type": "flight-offer","id": "1","source": "GDS","instantTicketingrequired": false,"nonHomogeneous": false,"oneWay": false,"lastTicketingDate": "2021-07-06","numberOfBookableSeats": 4,"itineraries": [
{"duration": "PT30H58M","segments": [
{"departure": {"iataCode": "BLR","at": "2021-07-12T03:05:00"},"arrival": {"iataCode": "FRA","terminal": "1","at": "2021-07-12T09:00:00"
},"carrierCode": "AC","number": "9057","aircraft": {"code": "74H"},"operating": {"carrierCode": "LH"},"duration": "PT9H25M","id": "256","numberOfStops": 0,"blacklistedInEU": false
},{
"departure": {"iataCode": "FRA","at": "2021-07-12T13:20:00"
},"arrival": {"iataCode": "YVR","terminal": "M","at": "2021-07-12T14:15:00"
},"number": "9101","aircraft": {"code": "744"},"duration": "PT9H55M","id": "257",{
"departure": {
"iataCode": "YVR","at": "2021-07-12T18:35:00"
},"arrival": {
"iataCode": "LAX","terminal": "6","at": "2021-07-12T21:33:00"
},"number": "558","aircraft": {"code": "320"},"operating": {"carrierCode": "AC"},"duration": "PT2H58M","id": "258","blacklistedInEU": false
}
]
}
],"price": {
"currency": "USD","total": "545.62","base": "201.00","fees": [
{"amount": "0.00","type": "supplier"},{"amount": "0.00","type": "TICKETING"
}
],"grandTotal": "545.62"
},"pricingOptions": {
"fareType": ["PUBLISHED"],"includedCheckedBagsOnly": true
},"validatingAirlineCodes": ["AC"],"travelerPricings": [
{
"travelerId": "1","fareOption": "STANDARD","travelerType": "ADULT","price": {"currency": "USD","base": "201.00"},"fareDetailsBySegment": [
{
"segmentId": "256","cabin": "ECONOMY","fareBasis": "KRCZOAAW","class": "K","includedCheckedBags": {
"quantity": 2
}
},{
"segmentId": "257","includedCheckedBags": {"quantity": 2}
},{
"segmentId": "258","brandedfare": "STANDARD","includedCheckedBags": {"quantity": 2}
}
]
}
]
}
]
}
}
这是我的 API 响应
stdClass Object
(
[data] => stdClass Object (
[type] => flight-offers-pricing
[flightOffers] => Array (
[0] => stdClass Object (
[type] => flight-offer
[id] => 1
[source] => GDS
[instantTicketingrequired] =>
[nonHomogeneous] =>
[paymentCardrequired] =>
[lastTicketingDate] => 2021-07-06
[itineraries] => Array(
[0] => stdClass Object(
[segments] => Array(
[0] => stdClass Object (
[departure] => stdClass Object (
[iataCode] => BLR
[at] => 2021-07-12T03:05:00
)
[arrival] => stdClass Object (
[iataCode] => FRA
[terminal] => 1
[at] => 2021-07-12T09:00:00
)
[carrierCode] => AC
[number] => 9057
[aircraft] => stdClass Object (
[code] => 74H
)
[operating] => stdClass Object (
[carrierCode] => LH
)
[duration] => PT9H25M
[id] => 256
[numberOfStops] => 0
[co2Emissions] => Array(
[0] => stdClass Object(
[weight] => 353
[weightUnit] => KG
[cabin] => ECONOMY
)
)
)
[1] => stdClass Object (
[departure] => stdClass Object (
[iataCode] => FRA
[terminal] => 1
[at] => 2021-07-12T13:20:00
)
[arrival] => stdClass Object (
[iataCode] => YVR
[terminal] => M
[at] => 2021-07-12T14:15:00
)
[carrierCode] => AC
[number] => 9101
[aircraft] => stdClass Object
(
[code] => 744
)
[operating] => stdClass Object
(
[carrierCode] => LH
)
[duration] => PT9H55M
[id] => 257
[numberOfStops] => 0
[co2Emissions] => Array
(
[0] => stdClass Object
(
[weight] => 502
[weightUnit] => KG
[cabin] => ECONOMY
)
)
)
[2] => stdClass Object
(
[departure] => stdClass Object
(
[iataCode] => YVR
[terminal] => M
[at] => 2021-07-12T18:35:00
)
[arrival] => stdClass Object
(
[iataCode] => LAX
[terminal] => 6
[at] => 2021-07-12T21:33:00
)
[carrierCode] => AC
[number] => 558
[aircraft] => stdClass Object
(
[code] => 320
)
[operating] => stdClass Object
(
[carrierCode] => AC
)
[duration] => PT2H58M
[id] => 258
[numberOfStops] => 0
[co2Emissions] => Array
(
[0] => stdClass Object
(
[weight] => 171
[weightUnit] => KG
[cabin] => ECONOMY
)
)
)
)
)
)
[price] => stdClass Object
(
[currency] => USD
[total] => 545.62
[base] => 201.00
[fees] => Array
(
[0] => stdClass Object
(
[amount] => 0.00
[type] => supplier
)
[1] => stdClass Object
(
[amount] => 0.00
[type] => TICKETING
)
[2] => stdClass Object
(
[amount] => 0.00
[type] => FORM_OF_PAYMENT
)
)
[grandTotal] => 545.62
[billingCurrency] => USD
)
)
)
但是当我用“CCU”和“Lax”来搜索航班和单程旅行时,我得到了航班票价报价清单。 并选择特定的预订价格,然后我使用相同的请求参数调用相同的 API,但值不同,具体取决于 在出发地和目的地验证航班票价并获取实际航班价格,然后 API 返回响应错误“INVALID DATA RECEIVED”代码:4926。
我用过这些api https://developers.amadeus.com/self-service/category/air/api-doc/flight-offers-price/api-reference 这是我的另一个api请求参数
{
"data": {
"type": "flight-offers-pricing","numberOfBookableSeats": 3,"itineraries": [
{
"duration": "PT30H38M","segments": [
{
"departure": {
"iataCode": "CCU","at": "2021-07-12T15:20:00"
},"arrival": {
"iataCode": "DEL","terminal": "3","at": "2021-07-12T17:45:00"
},"carrierCode": "UA","number": "7726","aircraft": {
"code": "320"
},"operating": {
"carrierCode": "UK"
},"duration": "PT2H25M","id": "141",{
"departure": {
"iataCode": "DEL","at": "2021-07-12T23:35:00"
},"arrival": {
"iataCode": "EWR","terminal": "B","at": "2021-07-13T04:30:00"
},"number": "83","aircraft": {
"code": "77W"
},"operating": {
"carrierCode": "UA"
},"duration": "PT14H25M","id": "142",{
"departure": {
"iataCode": "EWR","terminal": "C","at": "2021-07-13T06:00:00"
},"terminal": "7","at": "2021-07-13T09:28:00"
},"number": "2434","aircraft": {
"code": "752"
},"duration": "PT6H28M","id": "143","total": "712.89","base": "336.00","fees": [
{
"amount": "0.00","type": "supplier"
},{
"amount": "0.00","grandTotal": "712.89"
},"pricingOptions": {
"fareType": [
"PUBLISHED"
],"validatingAirlineCodes": [
"UA"
],"price": {
"currency": "USD","base": "336.00"
},"fareDetailsBySegment": [
{
"segmentId": "141","includedCheckedBags": {
"quantity": 1
}
},{
"segmentId": "142",{
"segmentId": "143","brandedfare": "ECONOMY","includedCheckedBags": {
"quantity": 1
}
}
]
}
]
}
]
}
}
这是 API 响应
stdClass Object
(
[errors] => Array
(
[0] => stdClass Object
(
[code] => 4926
[title] => INVALID DATA RECEIVED
[detail] => No fare applicable
[status] => 400
)
)
)
这意味着 API 返回错误,使用一些特定的出发地和目的地来获取预订的实际航班价格。
请指导我如何找出问题并解决它 谢谢
解决方法
当航班已售罄或您所定位的舱位中没有更多可用票价时,就会发生这种情况。如果在您完成预订之前预订了最后一个座位,则在致电 Flight Offers Price 后甚至可能发生这种情况。这是正常行为,在测试环境中一次执行多次预订时,请尝试更改日期或航段以避免这种情况。