E-Build API 用户手册模版_第1页
E-Build API 用户手册模版_第2页
E-Build API 用户手册模版_第3页
E-Build API 用户手册模版_第4页
E-Build API 用户手册模版_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

10E-BuildAPI用户手册编写单位:中国航信研发中心总体设计部根底平台组本手册使用说明.......\l“_TOC_250043“1.1什么是订座 5\l“_TOC_250042“旅客姓名记录—PNR 5\l“_TOC_250041“订座流程〔从查询到出票〕 6\l“_TOC_250040“出票 6\l“_TOC_250039“民航系统的数据表述 6\l“_TOC_250038“留意事项 7二、什么是E-BuildAP...\l“_TOC_250037“E-BuildAPI. 8\l“_TOC_250036“E-BuildAPI的特点 8\l“_TOC_250035“主要功能列表 9\l“_TOC_250034“构建自己的商务模式 10\l“_TOC_250033“便利的开发 10\l“_TOC_250032“完备的日志治理 11\l“_TOC_250031“确保使用安全 11四、使用之前..\l“_TOC_250030“E-BuildAPI客户端 12\l“_TOC_250029“E-BuildAPI客户端的运行环境 12\l“_TOC_250028“E-BuildAPI客户端的使用前提 12\l“_TOC_250027“开发环境部署 12五、开发指南..\l“_TOC_250026“AV解惑 15\l“_TOC_250025“AV指令介绍 15\l“_TOC_250024“E-BUILDAPI中AV类 15\l“_TOC_250023“猎取舱位信息的方法 16\l“_TOC_250022“\l“_TOC_250021“订座指南 18\l“_TOC_250020“订座流程图 18\l“_TOC_250019“SS的使用 19\l“_TOC_250018“PNR封口 19\l“_TOC_250017“对于旅客姓名的特别说明 19\l“_TOC_250016“假A现象 20\l“_TOC_250015“PNR其它组的输入 20\l“_TOC_250014“从费改税看FF 20\l“_TOC_250013“行动代码的说明 21\l“_TOC_250012“航班变更的处理方法 22\l“_TOC_250011“外航订座技巧 22\l“_TOC_250010“代理人系统与外航订座系统的连接方式 22\l“_TOC_250009“连接状态的查看 23\l“_TOC_250008“外航订座小技巧 24\l“_TOC_250007“E-BuildAPI功能介绍 25\l“_TOC_250006“ASR〔机上座位预订〕 25.\l“_TOC_250005“关于连接问题 26\l“_TOC_250004“订座不成功问题 26\l“_TOC_250003“PNR修改问题 26\l“_TOC_250002“PAT问题 26\l“_TOC_250001“附1 27\l“_TOC_250000“E-BuildAPI指令接口 27本手册使用说明E-BuildAPI申请流程和具体开发指南。对于完全不生疏订座业务的开发人员,在本文第一章特地介绍订座常识和根本概念。已经生疏这方面业务的人员完全可以跳过这一章进入后面的内容。E-BuildAPI特点和根本功能简介。第三章介绍了E-BuildAPI能够解决哪些用户的哪些需要。第四章介绍了使用E-BuildAPIE-BuildAPI的具体流程。E-BuildAPI两个主要包的内部关系图清楚直观的给出了围绕航班查询和订座的这些类的关系和使用方法。E-BuildAPI的开发过程中E-BuildAPI支持中用户API的用户起到很好的帮助作用。本手册的编写得到了公司各方面的大力支持和协作,现在还很不完善。期望各方在读后给出修改意见,并联系我们,以便我们更好的改进。李明中国航信研发中心总体设计部根底平台组 Tel:86-10-84669396“mailto:ibesupport@travelsky“ibesupport@travelsky2023-08-05通信承受民航通信承受民航专有网络通信1.1什么是订座位信息。旅客想乘坐任何一个航空公司的客机出行,必需首先在主机系统预定一个座位。这就需要向主机询问某时间、动身到达地是否有适宜的航班、可利用的座位。假设确定预订该座位,系统就会生成一个记录编号—PNR〔PassengerNameRecoder〕,这个订座记录将会跟随旅客,从订妥座位,行程修改,付款,出票,机场登机,始终到航班起飞到达目的地后,该记录才会被系统删除。不管订座的方式、流程如何简洁多样,原理都是这样的。有受过订座指令培训的专业操作员,在专有终端上,才能够自如的与主机进展信息交互。下面就是传统订座模式图。操作终端订座指令:AVFD、操作终端订座指令:AVFD、SD、SS……主机主机上存放了大量航班信息、旅客订座信息,主机处理来自各地的查询、订座恳求,旅客姓名记录—PNR所谓的订妥座位就是生成一个PN〔PassengerNameRecode,旅客订座记录口使之生效。旅客本次订座的全部信息都记录在这里。包括乘客姓名、航段信息〔包括起飞城市、到达城市、起飞时间、舱位等级等、座位数、乘客联系方式、特别效劳要求、是否某航空公司的常旅客、票价信息、航空公司或代理人规定的出票时限等等。PNR中的信息格外丰富。旅客修改行程、航班改期、付款、出票、退票等信息都会表达出来。座位订妥后,假设旅客不马上购票,应告知PNR号和出票时限,超过出票时限,原定座位将不予保存。订座流程〔从查询到出票〕查询需要航班座位可利用状况—>确定订某航班某座位—>付款—>得到机票—>机场登机,如以以下图:确定订票航班座位查询确定订票航班座位查询取票付款登机起飞出票

1.2订座流程示意图机。航空公司或代理人为了防止有人空耗座位,一般对出票时限有确定要求,一般最迟也2个小时出票。民航系统的数据表述要看得懂航班信息、PNR信息首先必需了解以下几个数据表述:航空公司代码:由二位英文字母表示,如中国国际航空公司:“CA”, 德国汉莎航空公司L。在完成客运行为时,也就是承运人两字码。城市三子码:动身地、到达地均用城市三子码表述,如:中国北京PE”,美国洛杉LA舱位等级:F――头等舱。C――公务舱Y——经济舱〔一般舱。在票价计算时以经济舱成人全票价为根底票价。头等舱按根底票价的150%计算,公务舱按根底票价的130%计算。(A)和折扣票价〔B〕,YB80,就表示这是一张八折票,按80%计算。航段:航段是指航线点与点之间的航程,航线的经停点越多,航段就越多,航线由一个或多个航段组成。经停与转飞:这是两个不同的概念。经停发生在一个航段的飞行中,该航段经停多少是均发生了变化。航班号MU5143。航班号编排有规律可循,这里不再详述。国家两字码:中华人民共和国“C”,美国“U币种:人民币“CNUS留意事项PNR里可以订几个不同航班的座位。人以上〔含10人,航程、乘机日期和航班一样的旅客订座。团队PNR必需定义团名。最迟出票时间的规定,这些在订票时应当留意。E-BuildAPIE-BuildAPIE-BuildAPI〔原称IBE〕,是由中国航信开发的互联网订座引擎。它转变了传统的方传统订座业务的解决方案。E-BuildAPI产品在中国航信的电子商务效劳器上封装了与主机之间的通讯,再把对主通信方式基于TCP/IP协议的互联网通信方式机的操作依据不同功能封装成客户端API公布客户;客户端与航信电子商务效劳器使用互E-BuildAPI通信方式基于TCP/IP协议的互联网通信方式网站扫瞄者:通过网页提交订座恳求,输入个人信息客户端效劳器:接收用户的订座恳求,网站扫瞄者:通过网页提交订座恳求,输入个人信息客户端效劳器:接收用户的订座恳求,发送用户恳求IBEServer监听端口,接收封装的恳求,编译并发送给主机主机响应IBEServer发送来的恳求2.1订座流程示意图E-BuildAPI的特点E-BUILDAPIAPI〔应用程序接口〕方式的接口。因此:E-BuildAPI本身不是一个完整的应用系统,它是构成客户商务系统的重要组件;E-BuildAPI的根底上进展二次开发;E-BuildAPI供给访问中国航信CRS和ICS系统的AP设计;基于标准开放的TCP/IP协议,能够运行在多种应用平台上;主机指令格式的更改不会影响客户端程序的稳定性;开放的产品,随着用户需求和应用增加其功能将不断完善,并具有很好版本兼容性;互连简洁,效率高;使用安全,效劳器端具有完备的日志记录与分析功能;主要功能列表航班时刻查询航班座位可利用状况查询航班经停点查询运价查询散客、团队旅客实时订座实时旅客订座记录查询散客、团队旅客订座记录修改删除航班最低运价信息查询三、您为什么需要构建自己的商务模式不管您是代理人、航空公司、或是为代理人供给效劳的商家,您可以使用E-BuildAPI轻松构架您的商务模式,E-BuildAPI作为连接订座主机的API,供给网上查询航班、订票等效劳支持。您在构建企业商务规律时可以充分利用E-BuildAPI,将它构建到自己的高级组件中去,从而增加企业的各项效劳功能。如图:各种企业级应用各种企业级应用Web效劳应用效劳企业业务规律图企业级组件〔EJB/bean/〕企业级文档根底组建IBE其他API其他根底组件订座主机3.1订座流程示意图便利的开发本手册的使用指南局部将会指导您顺当开头E-BuildAPI的使用;javadoc中各个类和方法的具体说明;开发前期我们将会给与确定程度的使用指导〔不包括现场参与开发;在开发中消灭的问题您可以在问题集寻求解决方法;完备的日志治理E-BuildAPI日志分析机制查看。假设消灭非法操作,系统将会对操作进展追踪。这样保证用户的正常使用安全和纠错处理。确保使用安全E-BuildAPI产品完善的安全机制将会保证您的使用安全。身份认证机制安全的传输E-BuildAPI机的操作依据不同功能封装成客户端API公布给我们的客户;客户端与航信电子商务效劳器使用tcpE-BuildAPI独有的编码解码方式使得信息传输中的安全得以保障。四、使用之前E-BuildAPI客户端E-BuildAPI分为客户端与效劳器端两个局部。E-BuildAPI用户用以同E-BuildAPIServerE-BuildAPI客E-BuildAPIServerE-BuildAPI客户端并没有特别的要求。E-BuildAPI客户端的运行环境Java产品包使用者:拥有公网〔Internet〕固定IP;JDK开发环境;Com版产品包使用者:拥有公网〔Internet〕固定IP;微软开发平台(windows2023及以上);E-BuildAPI客户端的使用前提要求客户有确定的技术开发力气;合法的代理人或航空公司身份〔假设需要预定功能;E-BuildAPI产品包〔Java包或.dll文件。开发环境部署javaibeclient.JAR,将它部署于应用pertiesjavaClassPath中。[留意]确保pertiesClassPath中的唯一性,以免在配置修改时,定位不到正确的文件。ibeclient.JAR的构造:sky.ibe.client包括了航班查询等常用指令sky.ibe.client.pnr 包括了PNR预定处理相关的指令sky.ibe.exceptions包括了全部的错误信息sky.util 供给了一些用于支持上述类的公用类sky.ibe.clientsky.ibe.client.pnr是用户最常接触的功能包,下面的两个图将包中的类之间关系加以简要介绍:航班可利用 AV座位查询:AvResultAvItemAvSegment航班时刻显示: SKSkResultSkItemSkSegment航班经停点及起降时间查询:FFFFResult票价查询:FDFDResult旅客名单提取:MLMultiResultMultiSegment MultiItem航班飞行时间显示:DSGDsgResultDsgSegmentCsky.ibe.client4.2sky.ibe.client包构成Csky.ibe.client机上座位预定:机上座位显示:ASRItemADMASRAdmResultBSP出票:DZ电子票出票:ETDZsky.ibe.client.pnr建PNR记录修改PNR信息sky.ibe.client.pnr建PNR记录修改PNR信息增加旅客组BookPassenger增加航段组BookAirSeg增加联系组BookContact增加开账地址组BookBA增加备注组BookRMKSellSeatSSResultSSSegment增加其它效劳组BookOSI增加票价组BookFNPNRManage增加票价计算组BookFCBookInformation增加付款方式组BookFP增加签注组BookEI增加婴儿信息BookInfant增加特别效劳组BookSSR增加旅游代码组BookTCPNRPassenger 旅客信息PNRAirSeg航段信息PNRContact联系组电子票出票:BARRPNRBA开账地址组PNRSSR特别效劳组提取PNR信息:RTRTResultPNRInfant婴儿信息PNROSI其他效劳信息PNROther其他组信息PNRResp责任组信息PNRRMK备注组信息PNRTkt出票信息假设您现有的开发平台是微软开发平台,可以使用我们供给的IBECom.dll。相应的配Windowsibeclient.JAR。五、开发指南E-BuildAPIJava开发为例进展现E-BuildAPI来实现从查询航班,座位预定,PNR提取的一个根本订票流程。建议您将本局部和API具体说明〔javadoc〕结合使用。查看类的具体定义和使用方法。AV解惑AVE-BuildAPIAV函数和终端上的信息是如何对应的,其FD,SKAV的原理一样。AV指令介绍AV指令,查询航信主机系统内全部航空公司的全舱位实时航班信息,供给简洁有效的航班信息实时查询通道,查询指定日期及航线上的可用航班信息〔航班号,舱位,起飞到达时间,经停点等,支持多种查询参数,支持对电子客票航段的查询。E-BUILDAPIav指令的类共四个:sky.ibe.client.AVsky.ibe.client.AvRsky.ibeAPI.client.AvIsky.ibe.client.AvSegmentAV函数输入:getAvailability(“PEK”,”XMN”,”2023090500:00:00”)对应主机指令:AV:PEKXMN/05SEP045.1AV类返回结果存储示意图一次V的结果是一个查询返回结果〔vResult对象AvItem对象,每一条航班信息可能包含一个或多个AvSegmentAVResult中的全部的具体航段信息都保存AVSegment中。特别提示:eTermAV时,假设当天没有查询的城市对航班,会显示离查询日期最近一天的航班信息。例如:E-Build APIAVeTerm信息,会显示离查询日期最近一天的航班信息。例如:try{AvResultavres=avExample.getAvailability(“PEK“,“CGD“,“2023051200:00:00“,“ALL“,true,true);System.out.println(avres);}catch(Exceptione){e.printStackTrace;}请开发人员留意查询结果的日期信息,以避开把查询结果的日期弄混。猎取舱位信息的方法AVResult中猎取舱位信息的方法有两种:一种是通过输入舱位名称来猎取F舱的舱位状况,可以用getCangweiinfoOf(„F‟)得到。另外一种是首先依据舱位等级获得舱位名称,然后再依据舱位名称得到具体的座位数StringBufferStringBufferstrtmp=newStringBuffer;intk=0;while(k<26){charcangwei=avseg.getCangweiCodeSort(k);if(cangwei==”-”)break;strtmp.append(cangwei);strtmp.append(avseg.getCangweiinfoOfSort(cangwei));strtmp.append(””);k++;}这样就能够得到等同于终端的输出显示。AVFD相结合为了预定一个座位,首先需要供给三个信息:动身地,目的地和时间。这样就能够进展AV操作,在确定航班有座的状况下,可能更关心舱位的价格,主机指FD可以用来查询航班价格。我们可以把航班座位查询和舱位价格查询组合在一起,以便获得更加直观的显示结果。AVAVFD查询价格,这样做每次都要和主机进展交互,效率低下,我们不建议您承受这种方法。建议作法AVAVResultAV的航班查询和一次FD的全航空公司的FD价格查询把航班和价格信息插入到定义的构造中。小技巧:为了便于查询航班中舱位的价格,可以使用HashTable来保存舱位的价格。具HashTableKeyHashTableFDResult来查询,同时把查询结果插入到HashTable中。privateHashtablepriceTable=newHashtable;Stringkey=airCorp+String.valueOf(cabinName);if(priceTable.containsKey(key)){tmpCabin.setSingleprice((String)priceTable.get(key));}else{StringsinglePrice=findInFDResult(fdRes,airCorp,if(singlePrice==null)tmpCabin.setSingleprice(“Unknown“);

String.valueOf(cabinName));else{}

tmpCabin.setSingleprice(singlePrice);priceTable.put(key,singlePrice);}}订座指南订座流程图对尽可能少的对尽可能少的AV结果FD航班座位查询:AV票价查询:FD封口之前必需确保已经参与这四个组,出票时限组是指定该PNR最迟出票时间将选定航段参与Pnr航段组(SellSeat.addAirSeg)参与Pnr姓名组(SellSeat.addPassenger)参与Pnr联系组〔SellSeat.addContract)参与Pnr出票时限(SellSeat.setTimelimit)„„封口,使该pnr生效(SellSeatmit1)提取PNR当前信息给订票人作确认〔RT〕PNR一旦生成,参与其他组的方式可以通过PnrManage对PNR修改来完成出票之前必需增加FN、FC、FP组.其它组可选择参与参与FN组参与FC组保证您有出票的权限配置参与FP组出票〔ETDZ〕5.2订票流程图如图,预订机票通常的流程是:1.查询航班可用座位、票价。确定某航段的一个或多个座位。将该航段参与到生成PNR中,作为航段组。当前PNR参与姓名组、联系组、出票时限组〔这些信息可以从网站数据库已保存用户信息中提取,然后对PNR封口。留意:航段组、姓名组、联系组、出票时限组这四个组是构成一个生效的PNR最根本信息,也就是说要想让一个生成PNR进展封口操作使之生效,必需保证包含了这四个组。对PNR,姓名组中要定义团名、人数。PNRFN、FC、FP组Dz出票SS的使用E-BUILDAPI需要明确的一点是:全部的函数之间没有相关性,他们之间都是相SSAVSD来订取eterm订票时常用的方法。SellSeatsellseat=newSellSeat;(方法一)sellseat.addAirSeg(“CA1301”,„Y‟,“PEK”,”CAN”,”NN”,1,”2023-10-20”)〔方法二〕BookAirSegbairseg=SellSeatsellseat=newSellSeat;(方法一)sellseat.addAirSeg(“CA1301”,„Y‟,“PEK”,”CAN”,”NN”,1,”2023-10-20”)〔方法二〕BookAirSegbairseg=newBookAirSeg(“CA1301”,„Y‟,“PEK”,”CAN”,”NN”,1,”2023-10-20”);sellseat.addAirSeg(bairseg);PNR封口sellseat.addAdult(“ZHANG/QIANG”);sellseat.addContact(“66017755-2509”);sellseat.setTimelimit(“2023-10-2012:00:00”);Stringpnrno=sellseatmit;一个PNR的最根本信息包括:姓名组,航段组,联系组,出票时限组,只要生成了这sellseat.addAdult(“ZHANG/QIANG”);sellseat.addContact(“66017755-2509”);sellseat.setTimelimit(“2023-10-2012:00:00”);Stringpnrno=sellseatmit;对于旅客姓名的特别说明英文姓名输入时必需使用“/”来分割,并且在整个姓名中只能有一个“//”前的局部中的空格全部被无视,在“/”后的局部中的空格被保存。英文姓名最长不能超过5528个。对于中文姓名和中英文混合姓名的输入,英文必需在中文之后,不能间隔输入。中文姓名输入建议小于十个汉字。如名叫“地力不拉提玉素卜江艾力”的旅客就不能完成出票,这些条件都应当在界面上进展限制,以免为后台维护带来麻烦。此外,假设姓名承受中文,编码方式必需为GBK。A现象“假A〔即10〕个座位,但是在PNR封口时消灭舱位没有订妥的状况〔如何看订妥没有订妥座位请参考下面的章节,这时候建议使用sellseatmit1方法,这个方法除了返回PNR信息还会返回一个航段信息的集合,通过逐一检查每个航段中的行动代码来推断是否订妥座位。PNR其它组的输入在PNR中除了输入必要的姓名组,航段组,联系组,设定出票时限之外,还可以输入其它的组信息,为了自动出票,可以输入F〔票价组F〔票价计算组F〔付款方式组;为了保证民航安全可以输入SSRFOID〔输入身份认证信息息〔如支付信息〕RMK〔特别效劳信息组。下面具体讲解一下这些组信息输入时的留意事项:PNR的内容由各种组构成,主要有:姓名组、航段组、联系租、出票时限组、票价组、备注组、责任组、签注组等等。一个组对应了PNR记录中的一行或几行。其它组说明:比较常用到的还有:SSR〔特别效劳组〕的使用:乘客的身份证号SSR_FOID添加常旅客信息SSR_FQTV添加护照信息SSR_PSPTOSI〔其它信息组〕的使用:重要旅客VIPRMK〔备注组〕的使用:备注组是用来记录某些可能有助于了解旅客状况的信息。假设有什么需要说明的文字,RMK来向订座说明。使用时留意不得超过三条。javadoc。从费改税看FF问题是:PNR中每个航段的机型依据机型查询机场建设费的额度FN,FC项上。为了得到每个航段的机型,可以通过使用FF指令来查询机型。FFFFff=newFF;FFResultffres=ff.flightTime(“CA1301”,”20SEP04”);Stringplanemodel=ffres.getPlaneModel;通过FD的接口findPrice(Stringorg,Stringdst,Stringdate,Stringairline,StringplaneModel,StringpassType,booleanfullFareBasis)建设费的金额。20239月公布的机场建设费计算通知,仅作参考:对于乘坐以下机型的国内支线航班的,每航段机场费为10元人民币:机型名称机型名称CESSNA208(大篷车)DONIER328ATR-72CRJ-200ERJ145208D38AT7CRJERJEM4DH8YN2FDfindPrice(Stringorg,Stringdst,Stringdate,FDfindPrice(Stringorg,Stringdst,Stringdate,Stringairline,StringplaneModel,StringpassType,booleanfullFareBasis)得出。行动代码的说明真实占座状况。如NN,表示要申请座位,系统在承受申请后可能返回HK,就是表示承受这个申请,在该航班上预留了座位给订座人,也可能返回HL,就是现在没有座位,不过有适宜的座位时,系统会自动占上这个座位。在日常使用中比较重要的行动代码:NN,表示提出申请需要占座HK,KL,KK,TK,DK,表示占座成功。RR,表示已经出票或者马上出票行动代码描行动代码描述封口〔@〕后状态及含义DR再确认RR再确认DK直接占座HK确认DW候补HL候补KK确认HK确认KL从候补状态确认HK确认SS销售HK确认TK确认,提示旅客航班时刻已更改HK确认TL候补,提示旅客航班时刻已更改HL候补TN申请,提示旅客航班时刻已更改HN申请NN申请HN申请行动代码NOUCUN

描 述航空公司不允许销售不承受候补或订座,航班已关闭〔不承受申请〕航班取消

封口〔@〕后状态及含义PNRPNRPNRUS 不承受订座〔航班已关闭,可以候补〕 HL 候补UU 不承受订座〔可以候补〕 HL 候补XL 取消候补XX 取消确认或申请

PNRPNR航班变更的处理方法E-BUILDAPI没有供给关于航班变更的通知功能,也不建议用户通过定时程序循环提取已经订票的PNR,再通过检测航段状态的方法来推断航班变更状况,这样会对主机系统产生很大的压力,一经查出,后果自负。可行的方法是在网站后台人为通过监控Queue信息来获得航班变更信息。外航订座技巧代理人系统与外航订座系统的连接方式CACAMU航信航空公司系统〔1E〕无缝连接航信代理人系统〔1E〕CZ...国外GDS(1W)AMADEUS联盟SQUABR...UA...NW...5.3国内外订座主机连接图中航信的主机系统分航空公司系统和代理人系统两局部。两系统主机硬件和数据库相互独立,但由于使用了先进的技术手段,故系统联接极其严密,随时进展数据交换。例如航空公司的航班信息传送到代理人系统,代理人建立的订座记录也会传给航空公司系统。上感觉不到是在不同系统进展销售,销售的实时性和准确性是格外高的。*直接存取NN-SS-HK有*直接存取NN-SS-HK有从连接角度考虑,与代理人系统联接的航空公司大致分为如下几类:直联的航空公司〔图中黄色箭头AV、SD数据都会准确;通过其它系统〔国外分销系统/航空公司系统〕联接的航空公司〔图中紫色箭头:与该系统间的联接等级高的航空公司,----AV、SD与该系统间的联接等级低的航空公司,----AV、SD无联接关系的航空公司〔图中未列出, 无法取得数据,只能申请座位。连接状态的查看与航空公司系统的连接状态可以直接通过AVAVSegment.getlink方法可以查看。依据返回的连接标识,我们可以推断进展哪些操作。航班显示标识与联接方式比照表国内航空公司:联接方式 SS结果记录编示的标识说明 显示结果号返回DS#无缝联接 直接看到航班的准确的舱位状态DK→HK有及可利用座位数DW→HLNN→HNAS#无缝联接 与上述内容一样,只是提示营业员DK→HK有该航班做过修改DW→HLNN→HN国外航空公司:联接方式 AV加航空公司SS结果示的标识说明 显示结果 代码号返回DK→HKDS*直接销售DW→HL有NN→HN同CRS存航班座位状况显示具体航班座DK→HKTY*在直接销不明,显示Z 售的联接 AV后加代码继数字DW→HLNN→HN有AB*直接响应续查询NN-SS-HK有CRS存DK→HKTY在直接销ZDW→HL有售的联接通过申请订座NN→HN直接响应AB存在记录编号反响Z通过申请订座NN-SS-HK有空格无联接Z,NN→HN无通过申请订座外航订座小技巧1)航班查询您要查询或销售国外航空公司的航班座位时,为了得到准确的航班信息,一般需要两个步骤:AV对该航线的承运航空公司的航班状况进展查询,如>AV:LONLAX;对于有“*”标识的航班,承受指定航空公司的方式进一步查询,以便得到更为准确的航班数据。其次次数据提取是实时的、准确的。建议大家在订座时,要依据其次次(即加上航空公司代码)提取而得到的航班信息。座位预订与修改阶段〔1)PNR封口要确认记录编号返回回,存在了记录编号说明在航空公司系统中订上了座位。PNR中航空公司系统的记录编号〔需要留意的是各航空公司记录编号返回格式不同〕PNR的操作在对所订外航座位进展分别操作时确定要留意确认该外航允许分别PNR,或得到对方许可对外航的分别确定要等分别出来的局部的外航记录编号返回,才算完成,在此期间切PNR进展其它操作,否则可能造成与外航记录的不全都,影响旅客正常登机。3PNR状态。修改姓名的操作绝大局部国外航空公司不允许修改姓名,或只允许修改局部姓名,假设违反,一般会取消代理人的订座。PNRQUEUEDRMKCA/XXXXX/QUEUEDFORMANUALHANDLING/XXXXXXXXXX假设PNR中消灭上述信息,表示订座或修改操作不成功,确定要通知航空公司或与中航信在线支持中心联系处理。对于重复订座重复订座也是航空公司取消您的预订的一个重要缘由,如无特别理由请不要重复订座。对于重复订座航空公司一般均会只保存一套。有时航空公司会以OSI,SSR的形式通知你,PNR中此类说明项。出票阶段公司取消。E-BuildAPI功能介绍E-BuildAPI是一个不断完善的产品。尽管目前发放的E-BuildAPI产品包中已包含了机票查询、预订等根本功能,还有一些拓展功能。但是为了使其使用更便利、功能更完善,E-BuildAPI的开发工作。下面对您介绍一下最的一些功能开发:ASR〔机上座位预订〕首先必需明确,订座系统的机上座位预订在功能上不等同于离港值机中的指定机上座位。在订座中预订某航班上的某个座位,并指定座位在机舱中具体位置,这是为旅客供给的一项效劳。座位信息会保存在旅客订座的pnr记录中,在离港值机时,旅客的座位会默认为vip旅客座位冲突等等缘由,最终不能坐在最初预订的座位,这都是有可能的。也就是说,最终打算机上座位的是机场值机系统。固然订座中的机上预订将赐予参考和默认值的功能。有关机上座位预订的类主要有:机上座位图查看:ADM、AdmResult机上座位预订:ASR、ASRItem他们均存在于sky.ibe.client.pnr包中,使用方法可参看以下代码:Stringpnrno=“J900L“;Stringpnrno=“J900L“;ADMadm=newADM;AdmResultadmresult=null;ASRasr=newASR;ASRItem(“赵炎“,“12A“,2);Vectorv1=newVector;v1.addElement(asritem);asr.doASR(pnrno,v1);admresult=adm.advanceDisplayMap(pnrno,2);System.out.println(admresult.getSeatmap);六、使用中的问题集关于连接问题perties文件正常设置而且没有被改动。假设确实找不到出错原因,再联系E-BUILDAPI技术支持人员赐予帮助。确认连接成功E-BUILDAPI6891E-BUILDAPI客户端的连接,确认网E-BUILDAPItelnet航信E-BUILDAPI6891端口:telnet***.***.***.***6891〔***E-BUILDAPIip地址〕telnetE-BUILDAPI效劳拒绝的特别〔返回结果消灭IBE_EXCEPTION即可认为网络已经开通,在确认您申请开通的E-BUILDAPIE-BUILDAPI效劳许可。订座不成功问题E-BUILDAPI客户端的开发人员对民航订座学问的不了解造成的。E-BUILDAPIE-BUILDAPI的恳求照旧需要遵E-BUILDAPI返回的信息查阅相关特别说明,协作中国航信《订座业务操作手册》找出问题所在。在确定时期内,我们的技术支持人〔此时您应当供给错误发生的时间,您的程序进展的操作以及返回的特别,有可能的话将程序代码段通过电子邮件发送给我们。PNR修改问题PnrManage的方法可以修改预订成功PNR中的乘客姓名、航段、证件号、出PNRPNR项的删除。请认真阅读该类的JAVADOCPAT问题eTERMPAT;APnrManage类中通过doPat(Stringpnrno,Stringoption,Stringtype,intindex,booleanifinput)doPatASecond(PATResultpatres_pre,Stringpnrno,intindex,intpsgid)两步完成自动运价计算。1javaE-BUILDAPI代码简洁范例E-BuildAPI指令接口订票流程主要应用E-BuildAPI指令接口留意:本文档全部测试程序使用城市对,日期为编写程序时所写,如要参考这些程序,请更换日期〕E-BuildAPI订票过程1〕第一步:av查询程序如下:importimportsky.ibe.client.*;importsky.ibe.exceptions.IBEException;importsky.util.QDateTime;publicpublicclassStep_1_AV{publicstaticvoidmain(String[]args){try{AVav=newAV;AvResultavres=av.getAvailability(“PEK“,“SHA“,QDateTime.stringToDate(“20230901“,“yyyymmdd“),true,true);System.out.println(avres);System.out.println(“-------------------------------------------“);}catch(IBEExceptione){e.printStackTrace;}catch(Exceptione){e.printStackTrace;}}}得到的结果如下:其次步:订票importimportjava.util.Calendar;importjava.util.Date;importimportsky.ibe.client.pnr.SellSeat;importsky.ibe.exceptions.IBEException;importsky.util.QDateTime;publicpublicclassStep_2_SellSeat{publicstaticvoidmain(String[]args){try{Datetktldt=QDateTime.stringToDate(“20230819“,“yyyymmdd“);Datedt=QDateTime.stringToDate(“20230901“,“yyyymmdd“);SellSeatss=newSellSeat;ss.addAdult(“Test/Test“);ss.addAirSeg(“CA1895“,”Y”,“PEK“,“SHA“,“NN“,1,dt);ss.addContact(“NC“);ss.addSSR_FOID(“CA“,“NI“,“1234567890“,“Test/Test“);ss.addFN(“FCNY2250.00/SCNY2250.00/C3.00/TCNY50.00CN/TCNY40.00YQ“);ss.addFP(“CASH,CNY“);ss.setTimelimit(tktldt);StringpnrNo=ssmit;System.out.println(System.out.println(“[INFO]PNR+pnrNo);}catch(IBEExceptione){e.printStackTrace;e.printStackTrace;}catch(Exceptione){e.printStackTrace;}}}这就可以完成订票了,得到了pnrRTimportimportsky.ibe.client.pnr.RT;importsky.ibe.client.pnr.RTResult;publicpublicclassStep_3_RT{publicstaticvoidmain(String[]args){RTRTrt=newRT;try{RTResultrs=rt.retrieve(“JBH09“);System.out.println(rs);System.out.println(“-------------------------------------------“);}catch(Exceptione){System.out.println(e);}}}得到的结果:ADMASRADMpublicpublicclassTestADM{/*利用ADM查询航班的座位图,选择想要的座位号调用ADM的advanceDisplayMap参数为:〔string〕pnr号〔int〕航段在pnr中的序号选择的座位号为两位数字和一位字母,例如“10E”选择好座位号后,就可以利用ASR来选定座位*/publicstaticvoidmain(String[]args){ADMadm=newADM;trytry{AdmResultadmres=adm.advanceDisplayMap(“JBH09“,2);System.out.print(System.out.print(“航班号:“+admres.getAirNo);System.out.print(“\t舱位:“);System.out.print(admres.getCabin);System.out.print(“\t航班日期:“);System.out.print(admres.getDepDate);System.out.print(admres.getDepDate);System.out.print(“\r\n“);System.out.print(“始发城市:“);System.out.print(admres.getOrgCity);System.out.print(“\t到达城市:“);System.out.print(admres.getDstCity);System.out.print(“\t机型:“);System.out.print(admres.getPlaneType);System.out.print(“\n座位\n“);System.out.print(admres.getSeatmap);}catch(IBEExceptione){e.printStackTrace;}}}}得到的座位图示:20EASR中的doASRpublicclassTestASR{publicstaticvoidmain(String[]args){ASRasr=newASR;ASRItemai=newASRItem(“TEST/TEST“,“16D“,2);Vectorai_vec=newVector;ai_vec.add(0,ai);try{Stringa=asr.doASR(“JBH09“,ai_vec);////假设成功,a的值为“ok”System.out.print(a);}catch(IBEExceptione){e.printStackTrace;}}}最终就得到“okrt其它E-BUILDAPISK:指令的使用:航班时刻显示信息importsky.ibe.client.SK;importsky.ibe.client.SkResult;importsky.ibe.exceptions.IBEException;publicimportsky.ibe.client.SK;importsky.ibe.client.SkResult;importsky.ibe.exceptions.IBEException;publicclassSKtest{publicpublicstaticvoidmain(String[]args){SKsk=newSK;try{SkResultrs=sk.getSchedule(“pek“,“csx“,“2023051010:00:00“,“ca“);/*getSchedule(Stringorg,Stringdst,java.util.Datedate,Stringairline,*booleandirect,booleannostop)getSchedule(Stringorg,Stringdst,Stringdate,Stringairline,booleandirect,booleannostop)参数org为起始城市代码;dst为到大城市代码;date;airline码;direct;nostop*getSchedule(Stringorg,Stringdst,Datedate,Stringairline,boolean*direct)*getSchedule(Stringorg,Stringdst,Stringdate,Stringairline,boolean*direct)*getSchedule(Stringorg,Stringdst,Datedate,Stringairline)*getSchedule(Stringorg,Stringdst,Stringdate,Stringairline)*getSchedule(Stringorg,Stringdst,Datedate)*getSchedule(Stringorg,Stringdst,Stringdate)*getSchedule(String*getSchedule(Stringorg,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论