51book機票接口對接,吐血整理(含PHP封裝代碼)


前言 最近在對接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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM