前言 最近在对接51book的机票接口,遇到了挺多坑,所以整理一份作为记录

机票有两个不同的接口,一个是机票,另一个是保险

一、申请

要接51book的机票,首先是要申请账号,这时候应该是有客户经理跟进,然后具体事宜都会告诉你。

拿到账号之后,客户经理会把你的账号拉入测试组,不然测试购买机票然后改签、退票都是需要钱的,做测试支付机票的时候还要去后台开通2个东西:

  1. 机票支付宝授权,添加营业员
  2. 保险支付宝授权

这两个是分别授权的,有两个网址。

对了,后台还有密码要设置,点击“我的余额”然后就可以设置了。

二、逻辑

购买机票的逻辑

  1. 查询航班
  2. 查看航班座位
  3. 选择座位预订
  4. 填写相关信息,预订订单
  5. 支付
  6. 后续改签、退票

三、开发

51book那边会有接口文档,现在已经更新http新接口

接口主页:http://ws.51book.com/
机票新接口:http://ws.51book.com/ltips/web/CustomerDetailController.in?id=13&flag=getDetail&language=CH

保险接口文档目前还没有在线的,由51book那边单独发送

接口测试需要51book那边把你的ip设为白名单

机票接口:
  1. 公共
  2. 航班查询
  3. 机票预定
  4. 支付
  5. 通知
    1. 出票通知
    2. 取消--取消订单退款通知
    3. 航变通知
    4. 退票通知
    5. 改期通知
  6. 查询订单详情
  7. 支付前校验
    1. 我们av查询时试试运价 这个已经调去一次了时时数据了,那么客人查询一直都不支付,会存在位子是否有效,那么二次验价就会起到效果,他会再次调取一次,如果发生变化他会重新验价,客户支付不了,如果没有就直接可以支付。二次验价主要是给客户更好的体验
    2. 需要开通才能用
  8. 变更查询
  9. 变更申请
  10. 变更需支付
  11. 退票查询
  12. 退票退款申请
  13. 验证舱位价格
  14. 获取客规
    1. 改签退票手续费在这里
注意事项

接口参数和返回都说的很清楚,这里就不在详细描述了,我做对接的时候遇到几个坑,需要注意一下:

  1. 要熟悉下航空公司的规则,例如:儿童是不让单独乘机的,所以买票的时候要做下判断
  2. 儿童不让单独乘机,引发改签和退票也不能单独改和退,所以这里也要做判断
  3. 带儿童的订单,接口返回有两个订单号,都要记录
  4. 因为有2个订单号,所以在接收改签和退票的时候,51book那边发的通知是2次,(但是出票通知就一次)
  5. 改签的时候,原来订单里的票号是不变的,所以后期查询订单接口就查不到变更后的信息,需要自己记录
改签相关
  1. 改签没有次数限制,因为要收手续费,只要航班没起飞就可以改签
  2. 改签不能改出发地和目的地
  3. 变更中是不能改签和退票
  4. 改签只能修改价格比当前高的,同时舱位也要比之前高
  5. 改签手续费是按照原来航班的票价
我设置的状态:

1000:待支付 ,

2000:已支付,待出票 ,

3000:已出票 ,

4000:变更审核中 ,

4100:变更需支付 ,

4200: 处理中,

4300:变更完成,

4400:无法变更,

5000:退票审核中,

5100:审核通过,待退款

5200:退款成功,

5300:无法退/废票,

5400:退款失败,

6000:已取消,

保险接口

  1. 查询保险产品接口
  2. 保险产品查询
  3. 投保
  4. 保险支付
  5. 保单查询
  6. 退保申请

保险接口没有http协议的接口,用的是wsdl格式的,php用soap来对接

首先要说的是保险接口没有异步通知,就是说你下单成功了,他们不是马上可以出保单,需要一会时间,这时候没法立刻获取到保单号,需要调用“保单查询”接口去查,而且不能立即查,需要过一会之后去查才有。查的时候把保单信息放入数据库中。

注意事项

  1. 没有异步通知

  2. 同个人买不同产品需要调用多次购买接口,同个产品的保单明细可以放多个人,就是说一个产品要下一个单

附上机票接口请求封装代码(thinkphp5写的)

链接http://blog.umaske.com/article/114

51book机票接口对接,吐血整理(含PHP封装代码)的更多相关文章

  1. 吐血整理:PyTorch项目代码与资源列表 | 资源下载

    http://www.sohu.com/a/164171974_741733   本文收集了大量基于 PyTorch 实现的代码链接,其中有适用于深度学习新手的“入门指导系列”,也有适用于老司机的论文 ...

  2. 快递鸟顺丰物流api接口对接多种方法整理

    目前很多自营电商平台.ERP系统.仓储系统.快递柜企业,对物流模块数据需求还是比较旺盛的.之前有介绍过简单的接口对接方法,这次给大家整理介绍两种快递数据的获取方法. 接口秘钥可以向顺丰公司申请,或者一 ...

  3. PHP 天巡机票接口

    一个旅游网站项目,网站需要机票预订接入了天巡机票接口,获取机票信息,不搞不知道,一搞吓一跳比较麻烦. 搜索机票信息需要分2步,首先POST获得一个SESSION,2秒之后,根据这个SESSION,从一 ...

  4. EMS电子面单接口对接使用-免费版

    快递鸟电子面单接口,可一次对接15家快递公司, 无需和每一家快递公司做对接.支持快递有四通一达.顺丰.EMS.宅急送.德邦.优速等15家快递公司,对顺丰有电子面单服务需求的可以选择顺丰自有的电子面单或 ...

  5. 记录用友T+接口对接的心酸历程

    前言:公司的业务主要是对接财务系统做单据传输或者凭证处理的,难免少不了和各大财务软件做数据对接,其中当然是必须通过接口来传递数据了.于是乎,用友T+的版本来了,对接的工作自然是我来做,可没想到就是这样 ...

  6. 一看就懂之吐血整理的 Docker 学习笔记

    前言 随着devops的兴起,Docker 近年来越来越火,容器化概念也越来越火.此篇将带你瞬间入门Docker. Docker 概述 Docker 出现的背景 在我们的开发过程中,通常是这样的一种流 ...

  7. 《吐血整理》高级系列教程-吃透Fiddler抓包教程(34)-Fiddler如何抓取微信小程序的包-上篇

    1.简介 有些小伙伴或者是童鞋们说小程序抓不到包,该怎么办了???其实苹果手机如果按照宏哥前边的抓取APP包的设置方式设置好了,应该可以轻松就抓到包了.那么安卓手机小程序就比较困难,不是那么友好了.所 ...

  8. Web Api 与 Andriod 接口对接开发经验

    最近一直急着在负责弄Asp.Net Web Api 与 Andriod 接口开发的对接工作! 刚听说要用Asp.Net Web Api去跟 Andriod 那端做接口对接工作,自己也是第一次接触Web ...

  9. Asp.Net Web Api 与 Andriod 接口对接开发经验,给小伙伴分享一下!

    最近一直急着在负责弄Asp.Net Web Api 与 Andriod 接口开发的对接工作! 刚听说要用Asp.Net Web Api去跟 Andriod 那端做接口对接工作,自己也是第一次接触Web ...

随机推荐

  1. VisualStudio中集成扩展调试SOS

    SOS扩展也是可以和VisualStudio进行集成的,这样真的方便了我们调试一些性能要求比较高的程序,当程序运行一段时间后我们用VS附加到进程,然后查看一些重要的对象数据,但是此时我们看不到.NET ...

  2. ent 基本使用九 代码生成

    ent 提供了cli 工具,可以方便我们进行schema 以及代码生成,同时目前提供的cli已经够用了 安装 cli go get github.com/facebookincubator/ent/c ...

  3. Noip2018/Csp2019 ------退役记

    退役记 上记 不知道为啥,自从今下午某大佬的人生第一次政治运动(虽然最后被镇压,现在小命难保)后,仿佛有一种看破感. 以下有点在自作多情,不喜者可以不看. 学信竞快一年了.可以说有收获也有失去吧. 收 ...

  4. 【BZOJ2095】[Poi2010]Bridges

    [BZOJ2095][Poi2010]Bridges 题面 darkbzoj 题解 首先可以想到二分答案,那么我们就是要求我们新图中给所有边定向是否存在欧拉回路. 而有向图存在欧拉回路的充要条件为所有 ...

  5. vue指令用法

    vue指令 指令式带有 v- 前缀的特殊特性v-text和v-html都属于指令将数据和dom做关联,当表达式的值改变时,响应式地作用在视图 解决大胡子语法闪烁案例 [v-cloak] { dispa ...

  6. XMLHttpRequest用法介绍

    前言: 传统的Web应用请求服务器返回的一般是是完整的HTML页面,这样往往就需要页面进行刷新操作,不仅耗时而且用户体验度也不好.最典型的代表就是form表单登录操作了.如果登录失败往往是跳转到原网页 ...

  7. eventlet 模块搭建 WEB 服务器

    eventlet这个强悍的东东,看到我同事的一些整理.故贴出来,大家一起分享~ motivation 114.113.199.11服务器上nova服务中基于python eventlet实现的定时任务 ...

  8. windows 10环境下安装Tensorflow-gpu

    网上有很多教程,特别是简写上的写的都还算比较详细.但我自己还是遇到了几个坑,希望对深度学习有兴趣的同学遇到跟我一样的坑,希望这份记录能帮助到你. 问题一:要不要使用Anaconda? 我看极客时间上的 ...

  9. js - true和false

    JavaScript的true和false什么时候会出现,如何优雅的写判断条件? 以下条件为false,也可称为“falsy” - > 虚值 if (false) if (null) if (u ...

  10. 在 RPA10.X 运行异常,RPA9 却正常的问题处理

    一.现象 RPA10.X 在一些极少数 win7/win10 环境中一运行就崩溃或无运行结果. 二.原因 出现上述现象已经确定是OPenGL 驱动兼容性造成的. 三.解决方法 方法一 只要把流程的管理 ...