奋斗了半个多月我这个菜鸟终于把公司机票给上线了。下面对我在这次开发过程中遇到的问题做一下总结。51book最主要的是你要把接口调通,通了以后就对反馈回来的xml形式的数据进行解析,然后取到你要的数据
1.航班查询[AV3]
   1.1 这个接口,这个接口将平台反馈回来的xml信息进行解析后,要考虑的情况比较多,对应着航班和seatItems(舱位信息)。这个要考虑到,我展现的方式是将读取的数据拼成一个DataTable因为是初学菜鸟,这个地方自己做一下总结:
        DataTable dt = new DataTable();  //构建表格
        DataColumn dc1 = new DataColumn("depTime", Type.GetType("System.String"));//构建对应
列和所需类型
        dt.Columns.Add(dc1);//在表格中添加构建的列
        DataRow dr = dt.NewRow();//构建表格中的行
        dr["depTime"] = depTime.ToString();//将对应数据存入到构建的表中
然后转成json前端进行读取
1.2 还有一点就是51平台反馈回来的起飞时间是2000这样的我采用的是.tostring().Insert(2,":")这种方式改成 20:00的 在第二个字段的位置添加“:”这个字符。
1.3 同时接口反馈回来的城市都是三字码的形式,机场,航司都是不一样的,我用的是List集合进行判断然后存入到表中

2.根据旅客信息创建PNR及订单[CO1]
  2.1 创建订单这个接口需要注意的地方就是linkMan(订票联系人)的电话和linkPhone(联系电话)这两个电话不能相同,如果相同会下单失败。
  2.2 notifiedUrl 被通知的url地址 出票成功后会回调这个地址 他会返回订单号(平台内部单号)、票号每一个乘客都会有一个票号,每个票号之间用“,”分隔因为我就用了这两个参数,具体需要的参数需要到需求文档上看一下
 2.3 paymentReturnUrl 支付完成后返回的url地址 支付完成后会回调这个地址 
 2.4 对于多乘客下单只需要将乘客的集合循环多次就行,然后拼接到你构造的请求的xml中,共有部分不变,这个只是拼接passengers这个集合的,有多少个人就对应多少个passengers例子:
    for (int i = 0; i < nameArrylist.Length; i++)
            {
                soap2 += " <passengers><identityNo>" + identityNoArrylist[i] +    
"</identityNo><identityType>" + identityTypeArrylist[i] + "</identityType><name>" +    
nameArrylist[i] + "</name><type>" + typeArrylist[i] + "</type> <param1>" + param1Arrylist[i]
+ "</param1> </passengers>";
            }
   2.5 对于往返这种情况,是用两个单程拼接出来的

3、订单自动支付[PA1]
   3.1 订单支付这个我们采取的是自动支付,支付宝账号绑定到51平台然后实现自动扣费,怎么绑定的话可以询问相关的客服,支付以后会回调我们在创建订单的时候那个地方的支付回调
   3.2 出票的话可以让客服把账号调到测试组里进行检验出票,出票的时候回出现票号,我在2.2中解释过,据type类型来判断出票状态,还有就是出票完成后 一定要请求返回S,否则会请求多次,因为当初没注意的时候,给我发了多次短信提醒 ,我采用的方法是ajax里面直接 Response.Write("S");
4、订单退废票申请[RC1]
  4.1 退废票的话refundTicketList(退款参数)的拼接其实和下单的时候乘客集合的拼接是一样的,例:
        string soap2=null;
               for (int i = 0; i < ticketNos.Length; i++)
                       {
                           if (passName.Length == 1)
                           {

soap2 += "<refundTicketList> <passengerName>" + passName[0] +
"</passengerName><ticketNo>" + ticketNos[i] + "</ticketNo><segment>" + segmentArrylist[j] +
"</segment></refundTicketList>";
                           }
                           else
                           {
                               soap2 += "<refundTicketList> <passengerName>" + passName[i] +
"</passengerName><ticketNo>" + ticketNos[i] + "</ticketNo><segment>" + segmentArrylist[j] +
"</segment></refundTicketList>";
                           }
                       }
4.2 refundNotifiedUrl(退票通知地址)这个和出票通知地址、支付通知地址调用方法是一样的,可以根据type类型来判断退票状态,还有就是退票完成后 一定要请求返回S,否则会请求多次,因为当初没注意的时候,给我发了多次短信提醒 ,我采用的方法是ajax里面直接 Response.Write("S");

好了,我把我在做机票的时候遇到的问题差不多都总结了一下,希望大佬们可以指出其中的不足。欢迎各位留言。

51book机票总结相关推荐

  1. 疫情之下,我和公司都快熬不住了

    作者 | 孔明明  唐亚华 孟亚娜 金玙璠 闫丽娇 苏琦 黎明 赵磊 周昶帆 编辑 | 周昶帆 突如其来的疫情之下,中小企业创业者们要陆续面对更大的困难和挑战. 客户流失无法开工.没有业务依然需要支付 ...

  2. 太任性!17 岁少年买不到回国机票,因“泄愤”攻击航司系统,被判刑 4 年

    整理 | 王晓曼 出品 | 程序人生(ID:coder _life) 因买不到回国机票,一气之下,身处境外的17岁少年陈某竟多次.持续攻击某航空公司计算机系统,致使该航空公司对外服务网络全面瘫痪近四小 ...

  3. 17岁少年买不到回国机票就攻击航司系统,获刑四年!自称因疫情严重和女朋友怀孕压力大...

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 明敏 发自 凹非寺 量子位 报道 | 公众号 QbitAI &quo ...

  4. java输出机票问题_java编程,机票例题纠正改错,谢谢

    机票价格分旺季.淡季影响,4--10月份旺季头等舱9折,经济舱8折,淡季头等舱5折经济舱4折,机票价格5000元要求:输出如下人容输入出行月份1--12输出1.2选择头等舱和经济舱输出价... 机票价 ...

  5. 包吃包住包机票的培训你见过吗?云南高通量条形码培训班,截止5月31日

    文章目录 2019年中国云南高通量条形码培训班 划重点 简介 日程 申请 授课教师 课程安排 培训地点 旅行 要求 参考文献 猜你喜欢 写在后面 2019年中国云南高通量条形码培训班 2019年云南高 ...

  6. 太任性!00 后少年买不到回国机票,因“泄愤”找黑客攻击系统,被判刑 4 年

    整理 | 王晓曼 出品 | 程序人生(ID:coder _life) 因买不到回国机票,一气之下,身处境外的17岁少年陈某竟多次.持续攻击某航空公司计算机系统,致使该航空公司对外服务网络全面瘫痪近四小 ...

  7. KS001 基于Springboot机票预订系统

    基于Springboot机票预订系统 本项目基于Springboot框架构建,使用SpringMvc和Mybatis框架进行相应的开发,数据库采用mysql,前端页面采用html实现,基于Jquery ...

  8. 美国诚实签经验——中英文行程单、往返机票、用英语面试的申请者通过率用中文面试的申请者的通过率、一直保持着微笑,看上去很自信,也很诚恳、户口簿带上最好...

    在排队等待时据我的观察,用英语面试的申请者通过率>用中文面试的申请者的通过率.一家人申请通过率>单个人通过率:商务签证通过率>旅游签证通过率 一.    面签材料 1.    必备材 ...

  9. 数据结构课程设计——机票售卖系统(C++)

    引言 这学期最后的数据结构课程设计需要我们完成一个简单的小程序,我选择了一个机票售卖系统,实现了一些基本的功能:因为时间给的比较短,又赶在复习周补课,所以并没有什么突出的地方,我就在这里聊聊我的代码实 ...

最新文章

  1. 苹果12 Pro Max和mini测评来了,看完我选择了iPhone 12
  2. 使用ajax方法实现form表单的提交
  3. Java实现清屏功能
  4. 【华为云技术分享】mongos-sharding连接池配置
  5. 几种常见的微服务架构方案——ZeroC IceGrid、Spring Cloud、基于消息队列、Docker Swarm...
  6. 二进制编辑器BZ-1621网址
  7. SpringBoot+SQLSERVER2000问题一
  8. 深度解析京东个性化推荐系统演进史
  9. 讲解制作“Icon”
  10. MT6625平台SP_META软件测试工具下载
  11. 获取数据库最后一条数据
  12. 团体程序设计天梯赛-练习集 L1-058 6翻了 (15 分)
  13. typescript 装饰器
  14. java鸡兔同笼用循环_Java使用for循环解决经典的鸡兔同笼问题示例
  15. 铁路cj继电器,一种铁路继电器底座锁住方法专利_专利申请于undefined_专利查询 - 天眼查...
  16. 风格的要素 C语言 pdf,英语写作手册:风格的要素(新译本) [Elements of Style]
  17. k8s(一):基础核心概念
  18. linux查看二进制文件的两种方法
  19. python输入公式,Python公式
  20. php查拼音,PHP-Pinyin

热门文章

  1. 用python画好看的图片,第二天用python绘画一些简单图片
  2. ViewModel源码分析
  3. 《Splunk智能运维实战》——3.7 制作请求方法、浏览量和响应时间的时间图
  4. kbengine运行mysql error access denied for user ‘kbe@localhost‘
  5. GitHub:如何从GitHub上下载文件(下载单个文件或者下载整个项目文件)之详细攻略(图文教程)
  6. 线性方程求解之 二范数类型
  7. qtcreator5很卡解决方法
  8. 判断季节,是春夏秋冬哪一个季节
  9. 漫画|讲解一下如何写简历项目
  10. 亚马逊接口NextToken分页调用时AuthFailure问题的解决