response_data_parse.py 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729
  1. var = {
  2. "Trips": [
  3. {
  4. "TripIndex": 0,
  5. # ---
  6. "Flights": [
  7. {
  8. "IsCjFare": false,
  9. "JourneySellKey": "GK~ 36~ ~~PVG~04/21/2025 02:15~NRT~04/21/2025 06:20~~^GK~ 631~ ~~NRT~04/21/2025 12:40~KMI~04/21/2025 14:45~~",
  10. "HighlightProductClass": null,
  11. "Lob": "GKINT",
  12. "JourneyStations": "PVG-NRT-KMI", # 航班的中转路径
  13. "SelectedServiceBundleCode": null,
  14. "SelectedProductClass": null,
  15. # 这里面是各种票价
  16. "Bundles": [
  17. {
  18. "ProductClass": null,
  19. "ServiceBundleCode": "S000", # 服务套餐的唯一代码,用于系统内部标识,可用来区分不同的票价
  20. "ServiceBundleCodeType": 0, # 套餐代码类型,可能为枚举值(如 0=基础套餐,1=促销套餐等)
  21. "Amount": 0, # 当前套餐的销售价格 附加服务包费用,
  22. "CjAmount": 0, # 可能为“差价金额”(
  23. "RegularInclusiveAmount": "1219.56", # 常规包含的总金额(可能是原价或基准价
  24. "CjInclusiveAmount": 0,
  25. "FlightFareKey": "2~E1~~JQ~ELECOE1~7200~~0~1~~X^1~H~~JQ~HLECOH~7000~~0~6~~",
  26. "CjFlightFareKey": null,
  27. "SavingPercent": 0,
  28. "IsSaleFare": false, # 是否为促销价格
  29. "HasCjFareBundle": false,
  30. "IsBusinessClassBundle": false, # 是否为商务舱套餐
  31. "BundleLabel": "基本票",
  32. "BundleName": "基本票", # 套餐正式名称,
  33. "BundleSubHeader": "我們的基本票價",
  34. "BundleSsrCode": "STRT",
  35. "IsStarterBundle": true,
  36. "BundleProductName": "",
  37. "BundleColorVariant": "bundle-100"
  38. },
  39. {
  40. "ProductClass": null,
  41. "ServiceBundleCode": "P200",
  42. "ServiceBundleCodeType": 0,
  43. "Amount": 413.27,
  44. "CjAmount": 0,
  45. "RegularInclusiveAmount": "1632.83",
  46. "CjInclusiveAmount": 0,
  47. "FlightFareKey": "2~E1~~JQ~ELECOE1~7200~~0~1~~X^1~H~~JQ~HLECOH~7000~~0~6~~",
  48. "CjFlightFareKey": null,
  49. "SavingPercent": 0,
  50. "IsSaleFare": false,
  51. "HasCjFareBundle": false,
  52. "IsBusinessClassBundle": false,
  53. "BundleLabel": "基本加值套票",
  54. "BundleName": "基本加值套票",
  55. "BundleSubHeader": "行李 + 座位 + 餐膳", # 套餐子标题,描述包含的核心服务内容
  56. "BundleSsrCode": "STPL",
  57. "IsStarterBundle": false,
  58. "BundleProductName": "基本加值套票",
  59. "BundleColorVariant": "bundle-200"
  60. },
  61. {
  62. "ProductClass": null,
  63. "ServiceBundleCode": "F200",
  64. "ServiceBundleCodeType": 0,
  65. "Amount": 452.65,
  66. "CjAmount": 0,
  67. "RegularInclusiveAmount": "1672.21",
  68. "CjInclusiveAmount": 0,
  69. "FlightFareKey": "2~E1~~JQ~ELECOE1~7200~~0~1~~X^1~H~~JQ~HLECOH~7000~~0~6~~",
  70. "CjFlightFareKey": null,
  71. "SavingPercent": 0,
  72. "IsSaleFare": false,
  73. "HasCjFareBundle": false,
  74. "IsBusinessClassBundle": false,
  75. "BundleLabel": "Flex",
  76. "BundleName": "Flex",
  77. "BundleSubHeader": "積分與彈性",
  78. "BundleSsrCode": "FLXN",
  79. "IsStarterBundle": false,
  80. "BundleProductName": "Flex 套票",
  81. "BundleColorVariant": "bundle-300"
  82. },
  83. {
  84. "ProductClass": null,
  85. "ServiceBundleCode": "M200",
  86. "ServiceBundleCodeType": 0,
  87. "Amount": 599.3,
  88. "CjAmount": 0,
  89. "RegularInclusiveAmount": "1818.86",
  90. "CjInclusiveAmount": 0,
  91. "FlightFareKey": "2~E1~~JQ~ELECOE1~7200~~0~1~~X^1~H~~JQ~HLECOH~7000~~0~6~~",
  92. "CjFlightFareKey": null,
  93. "SavingPercent": 0,
  94. "IsSaleFare": false,
  95. "HasCjFareBundle": false,
  96. "IsBusinessClassBundle": false,
  97. "BundleLabel": "彈性加值",
  98. "BundleName": "彈性加值",
  99. "BundleSubHeader": "新增彈性 + 附加項目",
  100. "BundleSsrCode": "FPLS",
  101. "IsStarterBundle": false,
  102. "BundleProductName": "彈性加值套票",
  103. "BundleColorVariant": "bundle-400"
  104. }
  105. ],
  106. "OriginalBundleSsrCode": "",
  107. "EconomyPreSelectedBundleCode": null,
  108. "MobileEcoPreSelectedBundleCode": "S000",
  109. "MobileBizPreSelectedBundleCode": null,
  110. "BusinessPreSelectedBundleCode": null,
  111. "DisplayBundle": "STPL",
  112. "MerchandiseMessagesInfo": [
  113. {
  114. "Message": "超值優惠",
  115. "Bundle": "FPLS",
  116. "Position": "top"
  117. },
  118. {
  119. "Message": "節省附加項目費用!^",
  120. "Bundle": "FPLS",
  121. "Position": "bottom"
  122. }
  123. ],
  124. # 显示航班信息/ 航班数据在这里面
  125. "DisplayFlightInfo": {
  126. "Legs": [ # 有超过2个元素时,是中转航班
  127. {
  128. "Color": "flight-one",
  129. "HasToolTip": false,
  130. "IsConnectingFlight": false, # 是否转机
  131. "IsInternational": true, # 国际航班。
  132. "IsDepartingFromInternationalTerminal": false,
  133. "DepartureStation": "PVG",
  134. "ArrivalStation": "NRT",
  135. "DisplayStd": "2025年4月21日 (週一) 上午2:15",
  136. "DisplaySta": "2025年4月21日 (週一) 上午6:20",
  137. "Equipment": {
  138. "Type": "32J",
  139. "IsAircraftType": true
  140. },
  141. # 航班号 GK36
  142. "FlightDesignator": {
  143. "FlightNumber": " 36",
  144. "CarrierCode": "GK",
  145. "OpSuffix": " "
  146. },
  147. "DisplayDepartureAirportTerminal": "上海 (浦東) - 2號航站樓",
  148. "DisplayArrivalAirportTerminal": "東京 (成田) - 3號航站樓",
  149. "IsAircraftBusinessCabin": false, # 飞机是商务舱吗?
  150. "DisplayTravelDuration": "3小時 5分鐘",
  151. "DisplayAircraft": "空中巴士 A320-200",
  152. "OperatorName": "NGBE.Global.Carrier.GK", # 运营商名称
  153. "IsSubjectToGovtApproval": false,
  154. "TransitAirport": "東京 (成田)",
  155. "TransitDuration": "6小時 20分鐘",
  156. "CabinType": "Y", # 舱位类型
  157. "Lob": "GKINT"
  158. },
  159. {
  160. "Color": "flight-one",
  161. "HasToolTip": false,
  162. "IsConnectingFlight": false,
  163. "IsInternational": false,
  164. "IsDepartingFromInternationalTerminal": false,
  165. "DepartureStation": "NRT",
  166. "ArrivalStation": "KMI",
  167. "DisplayStd": "2025年4月21日 (週一) 下午12:40",
  168. "DisplaySta": "2025年4月21日 (週一) 下午2:45",
  169. "Equipment": {
  170. "Type": "32J",
  171. "IsAircraftType": true
  172. },
  173. "FlightDesignator": {
  174. "FlightNumber": " 631",
  175. "CarrierCode": "GK",
  176. "OpSuffix": " "
  177. },
  178. "DisplayDepartureAirportTerminal": "東京 (成田) - 3號航站樓",
  179. "DisplayArrivalAirportTerminal": "宮崎",
  180. "IsAircraftBusinessCabin": false,
  181. "DisplayTravelDuration": "2小時 5分鐘",
  182. "DisplayAircraft": "空中巴士 A320-200",
  183. "OperatorName": "NGBE.Global.Carrier.GK",
  184. "IsSubjectToGovtApproval": false,
  185. "TransitAirport": null,
  186. "TransitDuration": null,
  187. "CabinType": "Y",
  188. "Lob": "GKDOM"
  189. }
  190. ],
  191. # 商务航班信息
  192. "BusinessFlightInfo": {
  193. "IsPreselected": false,
  194. "IsSpecialFare": false,
  195. "IsLowOnSeats": false,
  196. "HasAlert": false,
  197. # ​机票状态
  198. "TicketsAvailability": "NotAvailable", # 不可用
  199. "RemainingSeats": 0, # 剩余座位
  200. "ShouldShowSeatCountdownLabel": false,
  201. "IsFlexSameDayChange": false
  202. },
  203. # 经济航班信息
  204. "EconomyFlightInfo": {
  205. "IsPreselected": false,
  206. "IsSpecialFare": true,
  207. "IsLowOnSeats": true,
  208. "HasAlert": false,
  209. "TicketsAvailability": "Available",
  210. "RemainingSeats": 4,
  211. "ShouldShowSeatCountdownLabel": true,
  212. "IsFlexSameDayChange": false
  213. },
  214. "FareAlertInfo": {
  215. "IsVtlFlight": false,
  216. "IsDomesticFlightDepartFromInternationalTerminal": false,
  217. "IsAnyLegsSubjectToGovtApproval": false,
  218. "IsNotEnoughInfantsSSR": false,
  219. "IsNoWheelChairAvailable": false,
  220. "IsInValidPassengerCountForQf": false,
  221. "IsRoundTrip": false,
  222. "IsNotAllAircraftWithBusinessCabin": true,
  223. "IsEconomyFlightDiscounted": false,
  224. "IsBusinessFlightDiscounted": false,
  225. "ShouldShowWaiveFlightChangeFeeTip": false,
  226. "IsMultiAirportCity": false,
  227. "TransitCustomMessageType": null
  228. },
  229. "OriginAirport": "上海 (浦東)",
  230. "DestinationAirport": "宮崎",
  231. "StandardTimeOfDeparture": "2025-04-21T02:15:00", # ​​计划起飞时间​
  232. "StandardTimeOfArrival": "2025-04-21T14:45:00", # 计划到达时间​
  233. "TravelTime": "11:30:00",
  234. "RouteName": "上海 (浦東) 至 宮崎"
  235. },
  236. "EconomyPriceBreakdown": "{\r\n \"JourneyType\": \"OutBound\",\r\n \"TotalAmountDue\": 1219.5600000000000,\r\n \"TotalFare\": 1110.6600000000000,\r\n \"TotalCharges\": 108.9000000000000,\r\n \"TotalPaxCount\": 1.0,\r\n \"TotalBusinessMaxFare\": 0.0,\r\n \"BusinessMaxFare\": 0.0,\r\n \"PriceBreakdown\": [\r\n {\r\n \"PaxType\": \"ADT\",\r\n \"PaxTypeCount\": 1,\r\n \"PerPaxAmount\": 1110.6600000000000,\r\n \"Label\": \"成人\",\r\n \"Fees\": [\r\n {\r\n \"ChargeCode\": \"HJ\",\r\n \"PerPaxAmount\": 18.9000000000000,\r\n \"Label\": \"成人 - 乘客安檢費\",\r\n \"PaxTypeCount\": 1\r\n },\r\n {\r\n \"ChargeCode\": \"CN\",\r\n \"PerPaxAmount\": 90.00,\r\n \"Label\": \"成人 - 機場服務費\",\r\n \"PaxTypeCount\": 1\r\n }\r\n ]\r\n }\r\n ]\r\n}",
  237. "BusinessPriceBreakdown": null,
  238. "EconomyMemberPriceBreakdown": null,
  239. "BusinessMemberPriceBreakdown": null,
  240. "IsEconomyFarePreselected": false,
  241. "IsBusinessFarePreselected": false,
  242. "EconomyClassSalePillInfo": {
  243. "IsShow": false,
  244. "Variant": null,
  245. "PromoText": null,
  246. "Source": null
  247. },
  248. "BusinessClassSalePillInfo": {
  249. "IsShow": false,
  250. "Variant": null,
  251. "PromoText": null,
  252. "Source": null
  253. },
  254. "FareClassOfServices": [
  255. "E1",
  256. "EP1",
  257. "EB1",
  258. "EY1"
  259. ]
  260. }
  261. ],
  262. "Lobs": [
  263. {
  264. "Lob": "GKINT",
  265. "JourneyStations": "PVG-NRT-KMI",
  266. "Bundles": [
  267. {
  268. "BundleLabel": "基本票",
  269. "ProductClass": null,
  270. "BundleCode": "S000",
  271. "Inclusions": null
  272. },
  273. {
  274. "BundleLabel": "基本加值套票",
  275. "ProductClass": null,
  276. "BundleCode": "P200",
  277. "Inclusions": null
  278. },
  279. {
  280. "BundleLabel": "Flex",
  281. "ProductClass": null,
  282. "BundleCode": "F200",
  283. "Inclusions": null
  284. },
  285. {
  286. "BundleLabel": "彈性加值",
  287. "ProductClass": null,
  288. "BundleCode": "M200",
  289. "Inclusions": null
  290. },
  291. {
  292. "BundleLabel": "Flex",
  293. "ProductClass": null,
  294. "BundleCode": "F000",
  295. "Inclusions": null
  296. },
  297. {
  298. "BundleLabel": "加值",
  299. "ProductClass": null,
  300. "BundleCode": "P000",
  301. "Inclusions": null
  302. },
  303. {
  304. "BundleLabel": "頂級",
  305. "ProductClass": null,
  306. "BundleCode": "M000",
  307. "Inclusions": null
  308. }
  309. ],
  310. "Disclaimers": {
  311. "CombinedBundleTC": "NGBE.FlightSelect.Bundles.FareRules.Disclaimer",
  312. "BusinessClassCombinedBundleTC": "NGBE.Bundles.BusinessClassLegalDisclaimer",
  313. "QFFPointsTC": "NGBE.Bundles.BundleRules.Qantas",
  314. "EKPointsTC": "NGBE.Bundles.BundleRules.Emirates",
  315. "JALPointsTC": "NGBE.Bundles.BundleRules.JAL",
  316. "SavingBundleTC": "NGBE.FlightSelect.BundlesMobile.InclusionsExplained.BundleSavingsDisclaimer"
  317. }
  318. }
  319. ],
  320. "IsServiceBundle": true,
  321. "CityPair": "PVGKMI",
  322. "SelectedFareKey": null,
  323. "IsReturningTrip": false
  324. }
  325. ],
  326. "BookingInfo": null,
  327. "DynamicBundleOnFlight": {
  328. "BundlesInFlights": [
  329. {
  330. "JourneySellKey": "GK~ 36~ ~~PVG~04/21/2025 02:15~NRT~04/21/2025 06:20~~^GK~ 631~ ~~NRT~04/21/2025 12:40~KMI~04/21/2025 14:45~~",
  331. "Bundles": [
  332. {
  333. "Id": {
  334. "ServiceBundleCode": "F200",
  335. "BundleSsrCode": "FLXN",
  336. "FareSellKey": "2~E1~~JQ~ELECOE1~7200~~0~1~~X^1~H~~JQ~HLECOH~7000~~0~6~~"
  337. },
  338. "InclusionRefIds": [
  339. "PgmDQDA29lNhh1x6eWEP+w==",
  340. "WAljjBUGWn1F/4Aux51Nmw==",
  341. "hUqf5jNQtcK/cAonxhTSJg==",
  342. "NINy80MZbJIY9F/X7EAatA==",
  343. "paelhZ9HXNaMCj/1OcPGBw==",
  344. "zEV7981MJBEmNT22hu1jkA==",
  345. "Iq3TUCj8Mj8YSjJCVTaqWw==",
  346. "/0QKU8uPz3OjR17NBllGWQ==",
  347. "fiiEljeP/MrsA9ZoTTibTg==",
  348. "CaqcKnF27ciyIsRVivcm5A=="
  349. ],
  350. "IsMemberFare": false,
  351. "CabinType": "Economy",
  352. "Title": "Flex",
  353. "SubTitle": "積分與彈性",
  354. "JclColorVariant": "bundle-300"
  355. },
  356. {
  357. "Id": {
  358. "ServiceBundleCode": "M200",
  359. "BundleSsrCode": "FPLS",
  360. "FareSellKey": "2~E1~~JQ~ELECOE1~7200~~0~1~~X^1~H~~JQ~HLECOH~7000~~0~6~~"
  361. },
  362. "InclusionRefIds": [
  363. "PgmDQDA29lNhh1x6eWEP+w==",
  364. "m/I9bLk4RlkrSeWhHf9HiQ==",
  365. "qJ/pbMNV8DS5A2IOHNaXkg==",
  366. "hcU/sG5cwAw7wXHHktvRlg==",
  367. "paelhZ9HXNaMCj/1OcPGBw==",
  368. "zEV7981MJBEmNT22hu1jkA==",
  369. "Iq3TUCj8Mj8YSjJCVTaqWw==",
  370. "4hM7b5KEA7sSPm3cj+dbIw==",
  371. "Eb+ydtDs/t1mHDDfn2dv3Q==",
  372. "CaqcKnF27ciyIsRVivcm5A=="
  373. ],
  374. "IsMemberFare": false,
  375. "CabinType": "Economy",
  376. "Title": "彈性加值",
  377. "SubTitle": "新增彈性 + 附加項目",
  378. "JclColorVariant": "bundle-400"
  379. },
  380. {
  381. "Id": {
  382. "ServiceBundleCode": "P200",
  383. "BundleSsrCode": "STPL",
  384. "FareSellKey": "2~E1~~JQ~ELECOE1~7200~~0~1~~X^1~H~~JQ~HLECOH~7000~~0~6~~"
  385. },
  386. "InclusionRefIds": [
  387. "PgmDQDA29lNhh1x6eWEP+w==",
  388. "m/I9bLk4RlkrSeWhHf9HiQ==",
  389. "p2ZbfTFp93on6OZEmvSM+A==",
  390. "hcU/sG5cwAw7wXHHktvRlg==",
  391. "HxyP2sgcEoNPJG/Pew60bQ==",
  392. "T9DWQCiTqlVfNkxThie8Vw==",
  393. "Gf5F7nNl9bVlMhfu+mYTaA==",
  394. "/0QKU8uPz3OjR17NBllGWQ==",
  395. "skjgAOyXx+yXe71m2AFbrg==",
  396. "CaqcKnF27ciyIsRVivcm5A=="
  397. ],
  398. "IsMemberFare": false,
  399. "CabinType": "Economy",
  400. "Title": "基本加值套票",
  401. "SubTitle": "行李 + 座位 + 餐膳",
  402. "JclColorVariant": "bundle-200"
  403. },
  404. {
  405. "Id": {
  406. "ServiceBundleCode": "S000",
  407. "BundleSsrCode": "STRT",
  408. "FareSellKey": "2~E1~~JQ~ELECOE1~7200~~0~1~~X^1~H~~JQ~HLECOH~7000~~0~6~~"
  409. },
  410. "InclusionRefIds": [
  411. "PgmDQDA29lNhh1x6eWEP+w==",
  412. "WAljjBUGWn1F/4Aux51Nmw==",
  413. "hfmW7rDTv6BA5r35PZqXeQ==",
  414. "NINy80MZbJIY9F/X7EAatA==",
  415. "HxyP2sgcEoNPJG/Pew60bQ==",
  416. "T9DWQCiTqlVfNkxThie8Vw==",
  417. "Gf5F7nNl9bVlMhfu+mYTaA==",
  418. "/0QKU8uPz3OjR17NBllGWQ==",
  419. "yKllSRBGWvGXMjRuYK87Bw==",
  420. "CaqcKnF27ciyIsRVivcm5A=="
  421. ],
  422. "IsMemberFare": false,
  423. "CabinType": "Economy",
  424. "Title": "基本票",
  425. "SubTitle": "我們的基本票價",
  426. "JclColorVariant": "bundle-100"
  427. }
  428. ],
  429. "Disclaimers": {
  430. "QFFPointsTC": "NGBE.Bundles.BundleRules.Qantas",
  431. "EKPointsTC": "NGBE.Bundles.BundleRules.Emirates",
  432. "JALPointsTC": "NGBE.Bundles.BundleRules.JAL",
  433. "SavingBundleTC": "NGBE.FlightSelect.BundlesMobile.InclusionsExplained.BundleSavingsDisclaimer"
  434. },
  435. "MerchandiseMessagesInfo": [
  436. {
  437. "Message": "超值優惠",
  438. "Bundle": "FPLS",
  439. "Position": "top"
  440. },
  441. {
  442. "Message": "節省附加項目費用!^",
  443. "Bundle": "FPLS",
  444. "Position": "bottom"
  445. }
  446. ],
  447. "BundleInFocusSsrCode": "STPL",
  448. "BundlePreselections": [
  449. {
  450. "PreselectedBundleSsrCode": "STRT",
  451. "CabinType": "Economy",
  452. "DeviceType": "mobile"
  453. }
  454. ]
  455. }
  456. ],
  457. # 航班包含的服务
  458. "Inclusions": [
  459. {
  460. # 标识行李类型(如手提行李、托运行李)
  461. "ProductName": "CarryOnBaggage", # 随身行李
  462. "IsIncluded": true,
  463. "DisplayText": "7 公斤", # 行李额度
  464. "Title": "手提行李", # 行李类型名称
  465. "SubTitle": null,
  466. "SsrCode": null,
  467. "SortOrder": 1,
  468. "CabinType": "Economy", # 舱位等级
  469. "RefId": "PgmDQDA29lNhh1x6eWEP+w==",
  470. "IconVariant": "economy-carry-on-baggage"
  471. },
  472. {
  473. "ProductName": "CheckedBaggage", # 托运行李
  474. "IsIncluded": false,
  475. "DisplayText": "稍後添加", # 行李额度
  476. "Title": "託運行李",
  477. "SubTitle": null,
  478. "SsrCode": null,
  479. "SortOrder": 2,
  480. "CabinType": "Economy",
  481. "RefId": "WAljjBUGWn1F/4Aux51Nmw==",
  482. "IconVariant": "clear-circle"
  483. },
  484. {
  485. "ProductName": "Seat",
  486. "IsIncluded": true,
  487. "DisplayText": "前艙或標準",
  488. "Title": "選位",
  489. "SubTitle": null,
  490. "SsrCode": "FXS2",
  491. "SortOrder": 3,
  492. "CabinType": "Economy",
  493. "RefId": "hUqf5jNQtcK/cAonxhTSJg==",
  494. "IconVariant": "economy-seat"
  495. },
  496. {
  497. "ProductName": "Meals",
  498. "IsIncluded": false,
  499. "DisplayText": "稍後添加",
  500. "Title": "機上餐飲",
  501. "SubTitle": null,
  502. "SsrCode": null,
  503. "SortOrder": 4,
  504. "CabinType": "Economy",
  505. "RefId": "NINy80MZbJIY9F/X7EAatA==",
  506. "IconVariant": "clear-circle"
  507. },
  508. {
  509. "ProductName": "DateTimeChange",
  510. "IsIncluded": true,
  511. "DisplayText": "包括",
  512. "Title": "日期和時間更改*",
  513. "SubTitle": "我們或會收取票價差額",
  514. "SsrCode": "DCHG",
  515. "SortOrder": 5,
  516. "CabinType": "Economy",
  517. "RefId": "paelhZ9HXNaMCj/1OcPGBw==",
  518. "IconVariant": "economy-date-time-change"
  519. },
  520. {
  521. "ProductName": "SameDayChange",
  522. "IsIncluded": true,
  523. "DisplayText": "包括",
  524. "Title": "免費即日更改*",
  525. "SubTitle": null,
  526. "SsrCode": "SDCH",
  527. "SortOrder": 6,
  528. "CabinType": "Economy",
  529. "RefId": "zEV7981MJBEmNT22hu1jkA==",
  530. "IconVariant": "same-day-change"
  531. },
  532. {
  533. "ProductName": "CancelFlight",
  534. "IsIncluded": true,
  535. "DisplayText": "消費額現金券",
  536. "Title": "取消你的航班*",
  537. "SubTitle": null,
  538. "SsrCode": "CVHR",
  539. "SortOrder": 7,
  540. "CabinType": "Economy",
  541. "RefId": "Iq3TUCj8Mj8YSjJCVTaqWw==",
  542. "IconVariant": "economy-cancel-flight"
  543. },
  544. {
  545. "ProductName": "OriginDestinationChange",
  546. "IsIncluded": false,
  547. "DisplayText": "不適用",
  548. "Title": "出發地/目的地更改*",
  549. "SubTitle": "我們或會收取票價差額",
  550. "SsrCode": null,
  551. "SortOrder": 8,
  552. "CabinType": "Economy",
  553. "RefId": "/0QKU8uPz3OjR17NBllGWQ==",
  554. "IconVariant": "clear-circle"
  555. },
  556. {
  557. "ProductName": "FrequentFlyer",
  558. "IsIncluded": true,
  559. "DisplayText": "包括",
  560. "Title": "忠誠獎勵",
  561. "SubTitle": null,
  562. "SsrCode": "LOYT",
  563. "SortOrder": 9,
  564. "CabinType": "Economy",
  565. "RefId": "fiiEljeP/MrsA9ZoTTibTg==",
  566. "IconVariant": "economy-loyalty-points"
  567. },
  568. {
  569. "ProductName": "QantasBusinessReward",
  570. "IsIncluded": false,
  571. "DisplayText": "不適用",
  572. "Title": "澳航商務獎勵",
  573. "SubTitle": null,
  574. "SsrCode": null,
  575. "SortOrder": 10,
  576. "CabinType": "Economy",
  577. "RefId": "CaqcKnF27ciyIsRVivcm5A==",
  578. "IconVariant": "clear-circle"
  579. },
  580. {
  581. "ProductName": "CheckedBaggage",
  582. "IsIncluded": true,
  583. "DisplayText": "20 公斤",
  584. "Title": "託運行李",
  585. "SubTitle": null,
  586. "SsrCode": "BG20",
  587. "SortOrder": 2,
  588. "CabinType": "Economy",
  589. "RefId": "m/I9bLk4RlkrSeWhHf9HiQ==",
  590. "IconVariant": "economy-checked-baggage"
  591. },
  592. {
  593. "ProductName": "Seat",
  594. "IsIncluded": true,
  595. "DisplayText": "任何適用座位",
  596. "Title": "選位",
  597. "SubTitle": null,
  598. "SsrCode": "FXS3",
  599. "SortOrder": 3,
  600. "CabinType": "Economy",
  601. "RefId": "qJ/pbMNV8DS5A2IOHNaXkg==",
  602. "IconVariant": "economy-seat"
  603. },
  604. {
  605. "ProductName": "Meals",
  606. "IsIncluded": true,
  607. "DisplayText": "包括",
  608. "Title": "機上餐飲",
  609. "SubTitle": null,
  610. "SsrCode": "ML01",
  611. "SortOrder": 4,
  612. "CabinType": "Economy",
  613. "RefId": "hcU/sG5cwAw7wXHHktvRlg==",
  614. "IconVariant": "economy-meals"
  615. },
  616. {
  617. "ProductName": "OriginDestinationChange",
  618. "IsIncluded": true,
  619. "DisplayText": "包括",
  620. "Title": "出發地/目的地更改*",
  621. "SubTitle": "我們或會收取票價差額",
  622. "SsrCode": "OCHG",
  623. "SortOrder": 8,
  624. "CabinType": "Economy",
  625. "RefId": "4hM7b5KEA7sSPm3cj+dbIw==",
  626. "IconVariant": "economy-origin-destination-change"
  627. },
  628. {
  629. "ProductName": "FrequentFlyer",
  630. "IsIncluded": true,
  631. "DisplayText": "包括",
  632. "Title": "忠誠獎勵",
  633. "SubTitle": null,
  634. "SsrCode": "LOYT",
  635. "SortOrder": 9,
  636. "CabinType": "Economy",
  637. "RefId": "Eb+ydtDs/t1mHDDfn2dv3Q==",
  638. "IconVariant": "economy-loyalty-points"
  639. },
  640. {
  641. "ProductName": "Seat",
  642. "IsIncluded": true,
  643. "DisplayText": "一般",
  644. "Title": "選位",
  645. "SubTitle": null,
  646. "SsrCode": "FXS1",
  647. "SortOrder": 3,
  648. "CabinType": "Economy",
  649. "RefId": "p2ZbfTFp93on6OZEmvSM+A==",
  650. "IconVariant": "economy-seat"
  651. },
  652. {
  653. "ProductName": "DateTimeChange",
  654. "IsIncluded": false,
  655. "DisplayText": "需支付更改費用",
  656. "Title": "日期和時間更改*",
  657. "SubTitle": "我們或會收取票價差額",
  658. "SsrCode": null,
  659. "SortOrder": 5,
  660. "CabinType": "Economy",
  661. "RefId": "HxyP2sgcEoNPJG/Pew60bQ==",
  662. "IconVariant": "clear-circle"
  663. },
  664. {
  665. "ProductName": "SameDayChange",
  666. "IsIncluded": false,
  667. "DisplayText": "不適用",
  668. "Title": "免費即日更改*",
  669. "SubTitle": null,
  670. "SsrCode": null,
  671. "SortOrder": 6,
  672. "CabinType": "Economy",
  673. "RefId": "T9DWQCiTqlVfNkxThie8Vw==",
  674. "IconVariant": "clear-circle"
  675. },
  676. {
  677. "ProductName": "CancelFlight",
  678. "IsIncluded": false,
  679. "DisplayText": "不適用",
  680. "Title": "取消你的航班*",
  681. "SubTitle": null,
  682. "SsrCode": null,
  683. "SortOrder": 7,
  684. "CabinType": "Economy",
  685. "RefId": "Gf5F7nNl9bVlMhfu+mYTaA==",
  686. "IconVariant": "clear-circle"
  687. },
  688. {
  689. "ProductName": "FrequentFlyer",
  690. "IsIncluded": false,
  691. "DisplayText": "不適用",
  692. "Title": "忠誠獎勵",
  693. "SubTitle": null,
  694. "SsrCode": null,
  695. "SortOrder": 9,
  696. "CabinType": "Economy",
  697. "RefId": "skjgAOyXx+yXe71m2AFbrg==",
  698. "IconVariant": "clear-circle"
  699. },
  700. {
  701. "ProductName": "Seat",
  702. "IsIncluded": false,
  703. "DisplayText": "稍後添加或獲得免費分配座位",
  704. "Title": "選位",
  705. "SubTitle": null,
  706. "SsrCode": null,
  707. "SortOrder": 3,
  708. "CabinType": "Economy",
  709. "RefId": "hfmW7rDTv6BA5r35PZqXeQ==",
  710. "IconVariant": "clear-circle"
  711. },
  712. {
  713. "ProductName": "FrequentFlyer",
  714. "IsIncluded": false,
  715. "DisplayText": "不適用",
  716. "Title": "忠誠獎勵",
  717. "SubTitle": null,
  718. "SsrCode": null,
  719. "SortOrder": 9,
  720. "CabinType": "Economy",
  721. "RefId": "yKllSRBGWvGXMjRuYK87Bw==",
  722. "IconVariant": "clear-circle"
  723. }
  724. ]
  725. }
  726. }