51book机票接口对接,吐血整理(含PHP封装代码)

前言 最近在对接51book的机票接口,遇到了挺多坑,因此整理一份做为记录php

机票有两个不一样的接口,一个是机票,另外一个是保险web

1、申请

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

拿到帐号以后,客户经理会把你的帐号拉入测试组,否则测试购买机票而后改签、退票都是须要钱的,作测试支付机票的时候还要去后台开通2个东西:数据库

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

这两个是分别受权的,有两个网址。异步

对了,后台还有密码要设置,点击“个人余额”而后就能够设置了。thinkphp5

2、逻辑

购买机票的逻辑测试

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

3、开发

51book那边会有接口文档,如今已经更新http新接口blog

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

保险接口文档目前尚未在线的,由51book那边单独发送ip

接口测试须要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

相关文章
相关标签/搜索