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

相關文章
相關標籤/搜索