基于中航信国内FlightShopping机票查询接口的研究

2017-06-19 19:49郑兵胡南
科技创新导报 2017年6期
关键词:序列化机票航班

郑兵+胡南

摘 要:FlightShopping是由中国民航信息集团公司(简称:中航信)最新推出的国内机票查询接口。该文主要工作是完成通过手机端及时对国内机票查询的研究。其中的关键信息是查询私有运价(低价)机票,通过特定方法和程序,可查询出代理人的一些特殊价位的机票,而查询的结果通过JSON数据返回,供其他程序解析使用。

关键词:FlightShopping 查询 机票

中图分类号:TP181 文献标识码:A 文章编号:1674-098X(2017)02(c)-0120-02

1 研究意义

随着国民经济的提升,近年来,乘坐飞机出行的人越来越多,2016年国庆期间,海口美兰国际机场执飞航班2 503架次,同比增长19.22%,其中计划进港航班1 248架次,计划出港航班1 255架次,同比分别增长18.51%和15.94%。而北京首都国际机场(首都机场)2016年9月28日至10月10日期间,进出港航班21 788架次,日均1 676架次,较2015年同期增长2.83%。运送旅客338.24万人次,日均26.02万人次,较2015年同期增长4.49%。客户希望有一个安全可靠、服务到位的机票订坐平台。而国内目前的一些平出现出票不及时、出假票、出高价票等问题逐渐凸显出来。

中航信的主营业务是面向航空公司、机场、机票销售代理、旅游企业及民航相关机构和国际组织,全方位提供航空客运业务处理、航空旅游电子分销、机场旅客处理、航空货运数据处理、互联网旅游平台、国际国内客货运收入管理系统应用和代理结算清算等服务,目前国内所有航公司的数据都要经过中航信。

查询到的机票时时与中航信对接,保证数据的可靠与准确,重点在于提供便捷、可靠、准确而完善的交易过程,而难点则在于系统并放性与安全性的控制和实现。

2 FlightShopping接口的相关设置

FlightShopping接口是由中航信提供并开通其功能,该文采用的是C#版接口,所以在web.config文件中的节点需要添加如下配置信息:

同时,中航信还提供封装好的动态文件库IBEClient.dll,需要在整个项目中添加引用,方可以使用后面的类和方法。

3 具體操作过程

总体流程:FlightShopping对象—>设置IBE配置—>设置HeaderIn—>设置OD—>设置TravelPreferences—>设置Option—>Output对象—>调用doFlightShopping方法。

3.1 FlightShopping对象

初使化对象,使用方法如下:

FlightShopping fltshopping = new FlightShopping();

FareInterface service = new FareInterface();

Input input = new Input();

3.2 设置IBE配置信息

由于在web.config文件中已经配置,所以此步无需要配置。

3.3 设置HeaderIn

在第一步设置的Input类中的SetHeaderInType方法是专门用来设置HeaderIn,此方法的定义如下:

public void SetHeaderInType(HeaderInType headerInType_0);

根据此方法需要传输的参数,需要自定义一个HeaderInType的类型。在HeaderInType类型中,需要说明的有用户类型(sysCode)参数,根据情况设置成CRS(代理人)或者ICS(航空公司用户),销售渠道(SetChannelID)参数设置成”1E“或”CAET“。

3.4 设置OD

设置查询航段和日期(originDestinationInfo),由于此类封装是在请求类(Request)中,所以需要先初使化请求类,Request request = new Request(),由于originDestinationInfo是一个多参数的类,需要先将相关内容放置在动态数组ArrayList中,然后再在Request类设置,方法如下:

FlightShopRequestType flightShopRequestType = new FlightShopRequestType();

ArrayList originDestinationInfo = new ArrayList();

originDestinationInfo.Add(getOriginDestinationInfoType());

flightShopRequestType.SetOriginDestinationInfo(originDestinationInfo);

在getOriginDestinationInfoType()方法设置出发城市、目的城市、出发日期,需要说明的是出发和目的城市需要置机场三字码(国际通用),起飞日期需要设置DDMMMYY格式。

3.5 设置TravelPreferences

在TravelPreferences中,需要设置的参数有飞行价格的相关参数等,如货币、直达、查询价格的人数、乘机人的类型(成人或者儿童),方法如下:

flightShopRequestType.SetTravelPreferencesType(getTravelPreferencesType());

3.6 设置Option

Option类是设置显示相关属性,包括价格是最低价、退改签信息、数据格式信等,方法如下:

flightShopRequestType.SetOption(getOption());

3.7 信息链接

设置完上6个步骤后,需要将相关信息进行连接,方法如下:

request.SetFlightShopRequestType(flightShopRequestType);

input.SetRequest(request);

service.SetInput(input);

3.8 输出对象并根据返回结果显示相关数

首先需要初使化输出对象,Output outT = new Output(),利用Output对象的DoFlightShopping方法设置,第一步设置FareInterface,然后输出字符串。

4 序列化输出结果

由于Output输出的结果是字符串,不方便使用,所以需要对输出的结果进行序列化。

4.1 价格序列化

根据Output输出GetResult().GetFlightShopResult().GetPSn().GetPS()获取到价格数据并保存在PricingSolutionType这个类中,需要说明的是这个结果会有多条,需要通过循环语句获取。

4.2 其他数据序列化

定义一个数据集类,通过Output输出GetResult().GetFlightShopResult().GetAvJourneys()的相对应的结果并存在相对应的数据集类当中,然后再通过Newtonsoft.Json.dll这个类库文件转换成JSON数据输出。

输出结果如下:

[{"rPH":"010101","dt":"26AUG16","Carrier":"CZ","Airline":"6767","Orgcity":"HAK","Deptime":"0750","Dstcity":"CSX","Arritime":"0945","Planestyle":"320","Stopnumber":0,"DepTermAndArriTerm":null,"arrTermAndArriTerm":"T2","Meal":"C","tpm":1100,"listCabinPriceInfo":

[{"CabinNo":"J","CabinInfo":"4","Price":"2360.000000","disCurrCode":"CNY","AirportTax":"50.000000","FuelTax":"0","zValue":"-1.000000","DisCount":"全價","OI":"O"},

{"CabinNo":"C","CabinInfo":"4","Price":"1770.000000","disCurrCode":"CNY","AirportTax":"50.000000","FuelTax":"0","zValue":"-1.000000","DisCount":"7.5","OI":"O"},

{"CabinNo":"D","CabinInfo":"3","Price":"1240.000000","disCurrCode":"CNY","AirportTax":"50.000000","FuelTax":"0","zValue":"7.000000","DisCount":"5.3","OI":"O"}}]

参考文献

[1] 王皘.面向Web加速的HTTP协议优化机制的研究与设计[D].北京邮电大学,2014.

[2] 端木海.分析旅游业电子商务商业模式——以携程、去哪儿、途牛为例[J].旅游纵览(下半月),2014(6):77-80.

[3] 王明宇,刘淑贞.中国领先的互联网旅游搜索引擎企业——去哪儿网的商业模式分析[J].电子商务,2013(12):20-21.

[4] 张翔.HTML5——移动营销新利器[J].上海经济,2015(11):37-38.

[5] 中航信.IBE客户端FlightShopping接口使用手册[Z].2013.

猜你喜欢
序列化机票航班
全美航班短暂停飞
山航红色定制航班
山航红色定制航班
山航红色定制航班
Java 反序列化漏洞研究
虚拟体验式营销对顾客在线行为的作用机制--以线上机票销售为例
作文训练微格化、序列化初探
Java序列化技术的探讨
Unit 15重难点解析