作為產品經理,不懂一點接口怎么行?

55 評論 195443 瀏覽 1735 收藏 10 分鐘

本文針對沒有接觸過接口的PM來說是劃知識點,對接觸過的PM來說是討論和分享。

接口有什么用?

作為一個互聯網公司,很多資源和信息需要內部共享或外部流通,那相關的數據就需要通過接口來傳輸。無論是2C還是2B的產品,都會用到接口,其中2B的產品們——數據、后臺、開放平臺/供應鏈,幾乎和接口都是正面接觸。

接口怎么用?

目的千差萬別,用法殊途同歸。本文主要以美團門票舉例,介紹接口的基本屬性、產品邏輯和異常情況等,供大家參考和討論。

怎么理解接口?

API接口是Application Programming Interface的簡稱,是一些預先定義的函數,包括接口地址、傳入參數和返回參數。

可以簡單理解為,當需要訪問某些數據,正常狀態下傳入合格參數,會收到該數據范圍內的返回參數。

場景:在美團旅游頻道,用戶選定時間、地點后搜索航班,后臺會調用搜索接口傳入時間、地點等參數,接收航班類別、價格等參數,在前臺頁面上進行排列展示。同理,下單時會調用生單接口確認是否成單,支付時會調用支付接口完成交易,自動修改訂單狀態。

產品邏輯

很多公司都有開放平臺(也叫供應鏈),比如美團作為一個平臺,很多的供應商需要把自身資源導入平臺,在平臺頁面上集中展示,供用戶選擇。一般情況下,美團會有自身的一套接口,供應商可以開發對應的接口進行對接,這種叫(運價)直連。

以下以美團門票為例,此鏈接http://open.trip.meituan.com/是商家對接的開放平臺,不涉密,商家技術、業務人員可以通過該地址上的接口說明進行商家對接。

1.系統結構

門票直連系統是通過接口,把商家的門票數據導入到美團上收單,按用戶行為軌跡來說,實現“搜索-預定-下單-支付-售后”的自動化。異常情況通過郵件等形式預警,手工介入處理。

(詳細流程見此鏈接https://www.processon.com/view/link/5943ec7ae4b0bdefc0582e3e)

①正常情況下,涉及前臺和用戶行為的業務流程:

②涉及后臺的產品數據&訂單狀態更新(部分簡略):

2.接口總覽

按接口類型和屬性可分為三類:數據類、交易類和通知類。有一部分為美團接口,另一部分接口需要商家進行開發。

  1. 數據類:商家數據對接到美團(涉及到商家的4個接口,拉取產品信息、產品變化通知、拉取景點信息、拉取價格日歷)
  2. 交易類:“用戶——美團——商家”的交易行為(涉及到商家的5個接口)
  3. 通知類:包括商家開發的已出票、票已使用、已退款3個接口,美團自有的已退款、查余額、編審狀態通知的3個接口。

異常問題

我做過的接口產品不多,但問題類似,主要包括兩類:接口問題、產品問題。接口問題就是無響應、響應過慢、重復響應等,產品問題就是存量少、變價快、時間差導致下架更新不及時等。

在做接口相關的產品時,異常與正常流程同等重要,這與核心用戶和邊緣用戶不是一個概念。所以在考慮每一步的流程時,必須兼顧異常問題的發生與解決方法,盡量避免損害用戶體驗和商家損失。

一般的解決方法是數據監控,通過對每個業務節點的多項指標進行監控,一旦超出閾值,就可以用郵件、短信等形式通知相關人員,及時解決問題。

接下來我們從兩個方面具體探討如何應對這些問題。

1.用戶體驗——具體場景&數據監控

對用戶來說,流程的任一節點不順暢,都會導致體驗不好,故根據用戶行為軌跡來進行數據監控。

①頁面展示慢——接口響應時長、用戶頁面停留時長、跳失率

  • Reason:實時調接口查詢景點&產品信息,因數據量大或頻率快導致。
  • Solution:緩存數據,每N分鐘更新一次。

②數據展示異?!笈_返回接口異常的次數和概率

  • Reason:接口超時或異常。
  • Solution:可以設定重復調用,多次重試失敗后,通過郵件等形式通知到運營、技術或商家。

針對數據型接口,對產品進行下架或隱藏處理。

針對交易型接口,下單、支付的問題可以提醒用戶、為用戶推薦同類產品、對產品進行下架或隱藏處理;退票類問題可以建議用戶之后重試,如果比較緊急可以聯系客服加急處理。

針對通知型接口,不涉及用戶,郵件處理即可,可人工介入更新信息。

③產品變動,特別是變價——下單失敗率、變價率、出票失敗率

  • Reason:數據更新有時間差。
  • Solution:
  1. 當某一產品的失敗率或變價率超出規定,可隱藏或下架;
  2. 針對某些產品庫存少的情況進行提示,預告風險;
  3. 設定合理的定時更新任務。

④下單/支付/退票失敗——失敗率、失敗原因

  • Reason:用戶可能多次提交,或者訂單已使用、已關閉等客觀原因,無法成功。
  • Solution:
  1. 需要加入檢驗機制,比如在短時間內重復提交不調用接口,直接返回原結果;
  2. 善意提醒用戶不要重復提交,如“您的手太快了,請休息30s后再試”;
  3. 可以提供IM人工或電話咨詢、留言等選項。

⑤服務響應時間長——手工操作訂單量和占比

  • Reason:比如用戶提交退票后長時間不退款;支付后長時間不出票
  • Solution:
  1. 定時調用訂單查詢接口,更新訂單狀態并短信/推送消息告知用戶;
  2. 超過服務規范時間前發送預警郵件,人工介入處理。

2.商家體驗——數據監控&具體場景

對商家來說,用戶體驗不重要,轉化率和利潤才是重點,故數據監控以業務指標為主。

①重復生單、生單不支付占庫存——訂單量、訂單支付轉化率、支付失敗率、庫存占用量和支付量

  • Reason:用戶手速太快;惡意占庫存
  • Solution:制定規則,同一人只能占一個庫存;同一訂單最多只能訂N個人。

②惡意重復調用接口——涉及到的每個接口調用頻率

  • Reason:比如短時間重復調用某一接口
  • Solution:
  1. 規定同一IP地址不能在短時間內多次調用;
  2. 直接返回第一次調用接口的結果,不再重復調用;
  3. 每個接口在同一時間最多N次調用,否則返回失敗等。

③因數據更新不及時等導致的虧損——(傭金、廣告)投入產出比、人為損失

  • Reason:用戶使用后退款完成、用戶支付后變價等
  • Solution:根據時間差、處理規則來明確劃定責任方。

④結算問題——財務對賬自身支出(退款)和收入(美團給商家的結算金額)

  • Reason:平臺和商家以“T+N”的方式結算
  • Solution:
  1. B端訂單系統里的財務對賬功能,可以用郵件形式每日發送;
  2. 監測異常數據,如當日無結算、結算金額與訂單金額不一致。

以上即為接口主要的應用對象和邏輯,邏輯不難但復雜度高,需要細心周到地考慮各種情況,希望能與大家一起討論。

 

本文由 @小喬 原創發布于人人都是產品經理。未經許可,禁止轉載。

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 我想問透傳該怎么理解。。。

    回復
    1. 透明無感知地傳輸數據的含義。舉個例子:
      發短信功能(利用第三方服務騰訊云的發短信接口):當用戶輸入手機號碼點擊發送驗證碼時,先調用我們自己后臺的發短信接口,然后我們后臺調用騰訊云的發短信接口,把用戶從前端傳過來的手機號碼再繼續傳給騰訊云接口。數據傳遞的鏈路是:前端->我們后臺->騰訊云。后臺沒有對數據做任何修改就直接傳給騰訊云的這個過程就是透傳。

      來自湖北 回復
  2. 作者姐姐,我想問一下,系統與外部系統對接,是兩邊都需要出說明文檔嗎?各自對各自的,有的直接接口,沒的再做?我是小白,老板讓我負責這個

    回復
    1. 首先你們是平臺方還是接入方?文檔是平臺方出的,接入方按照文檔做就可以了。

      來自江蘇 回復
  3. 是否異步出票為“是”時,為什么支付狀態是“支付中”呢,前面不是已經支付過了嗎?

    來自四川 回復
    1. 前面的是否支付成功我認為應該是客戶支付驗證是否成功,提交后,還未劃款,需要先做驗證—是否可以出票,如果出票不成功,則支付無效,結果是支付不成功。故在出票過程中可定義為支付中。如果理解錯了,歡迎指正

      來自江蘇 回復
    2. 前面還有一步“是否可支付”,不是在驗證訂單是否可支付么

      來自四川 回復
  4. 作者大大可以問兩個問題么?
    1.為什么拉取商戶的產品信息要透傳,加密傳輸一般寫一套應該就行,加密傳輸不會影響效率也不會增加工作量,所以這里使用透傳和非透傳是不是沒有什么區別?
    2.什么叫變價率呢?
    期盼回復~~ ??

    來自北京 回復
    1. 1.沒有特殊要求,都行沒區別。
      2.變價率是指某一條數據產生的價格變動的情況較多,超出自設的警戒值。

      來自北京 回復
  5. 接口其實就是實現兩個系統(平臺)之間數據相互調用,以保證數據閉環。對于2C產品來說,數據的共享是很敏感的事情,必須有商務運作。

    來自遼寧 回復
  6. 能加個聯系方式嗎 微信或者QQ什么的

    來自北京 回復
    1. 公眾號:qiaomaihexiaoqiao(亂入花間化綠葉)
      有問題可以私聊

      來自北京 回復
  7. 接口文檔也是產品寫嗎?

    來自廣東 回復
    1. 是技術寫,但是需要了解一下會出現的問題 知己知彼

      來自浙江 回復
  8. 已退款消息,應該是合作方→美團吧。

    來自北京 回復
  9. 透傳是啥意思

    來自北京 回復
    1. 不加工的傳輸

      來自北京 回復
  10. 你是數據產品嗎?

    來自廣東 回復
    1. 不是,算是參與過

      來自北京 回復
  11. 突然想拜你為師了,可以嗎

    回復
    1. 來啊來啊,關注我的公眾號吧~~ ??

      來自北京 回復
    2. 公眾號是啥

      來自廣東 回復
    3. qiaomaihexiaoqiao(亂入花間化綠葉)

      來自北京 回復
    4. 搜不到這個公眾號呀

      來自四川 回復
  12. 可以轉發到朋友圈嗎

    來自北京 回復
    1. 可以啊,你說的是轉載還是轉發?

      來自北京 回復
  13. 感謝分享

    來自四川 回復
  14. 文章寫的很好,再接再厲!

    回復
  15. get知識點了~~

    來自湖北 回復
  16. 感同身受。遇到接口調用無響應、響應過慢、重復響應,接口調用無重發機制,回調超時……

    來自北京 回復
  17. 很厲害

    來自湖南 回復
  18. mark

    來自江蘇 回復
  19. 作為程序員給作者點個贊,頭像也好看

    來自廣東 回復
  20. 收藏了,不錯 ??

    來自上海 回復
  21. 接口總覽那里的通知類接口是不是說反了?已出票、票已使用、已退款3個接口是美團開發的,已退款、查余額、編審狀態通知的3個接口是商家開發的才對吧?

    來自廣東 回復
    1. 不是的。有些接口其實意思一致,但因為行為發起方和接收方不同,所以開發者不同。
      已出票是商家在接到付款成功訂單后為用戶出票,然后通知美團票已出,之后美團再去通知用戶,票已使用、已退款這兩個接口同理。
      訂單退款通知接口和已退款接口其實是一樣的,只不過行為分別由商家和美團發起(因為用戶提交申請的理由和時間等情況不同),所以分別開發接口。查余額是美團通知商家,需要連接商家的接口才能通知到;編審狀態通知也是美團去通知商家。

      來自北京 回復
    2. 我突然間混亂了。。。。

      來自北京 回復
    3. 正確的應該為:“通知類接口:包括美團開發的已出票、票已使用、已退款3個接口,商家的訂單退款、查余額、編審狀態通知的3個接口?!?/p>

      來自北京 回復
    4. 恩恩,感謝作者的認真解答~對接口的理解更進了一步 ??

      來自廣東 回復
    5. 謝謝你的細心和反饋~~ ??

      來自北京 回復
  22. 作者對接口了解這么多 是程序出身嗎

    來自吉林 回復
    1. 不是,正經文科生 ??

      來自北京 回復
    2. 難得

      來自北京 回復
    3. 向你學習了。

      來自上海 回復
  23. 好文 好文 收藏了!我喜歡主頁那個圖片哦!

    來自上海 回復
  24. 小喬你好,我是大喬。來吧,一起王者榮耀。

    來自廣東 回復
    1. 沒玩過~

      回復
    2. 好尷尬

      來自廣東 回復
    3. 我是周瑜

      來自江蘇 回復
    4. 圍觀丑拒。

      來自北京 回復
    5. 撩妹失敗 換個套路吧

      來自北京 回復
    6. 圍觀丑拒。

      來自四川 回復
    7. 圍觀丑拒。

      來自北京 回復
    8. 會員強撩翻車現場

      來自上海 回復
    9. 你好我是孫權,快跟我回家。

      來自廣東 回復