集成第三方接口的技巧總結


現在系統中集成越來越顯得很重要了,不管是釘釘還是支付寶等等等等,每個系統都集成了多方的接口,而且越來越多系統功能都會集成的越來越多,我們的信息化之網會越鋪越大:

那么調用第三方的接口,使用第三方的api文檔有什么技巧嗎?

1、借鑒下別人寫一個博客一句話,感覺不錯:

其實調接口很簡單,原理和使用數據庫的數據差不多,

我們使用本地數據庫的時候是通過: 連接數據庫——獲取數據(傳遞參數,獲取表中的數據)——返回前端——前端處理(封裝返回的數據,前端校驗是否成功)這么一個流程,

調用接口其實也差不多是這樣,發送請求(向第三方發送請求,傳遞參數)——收到數據(收到第三方的返回數據)——數據處理(數據解析)——返回前端——前端處理(前端展示封裝數據)。

 

通過將SDK方法中返回的數據划分為正常返回數據以及錯誤返回的數據兩部分,讓調用者更簡單的對接口調用錯誤進行處理。

將SDK調用第三方服務接口的流程划分為: 數據准備,http請求,結果處理三部分,以重用代碼。

 

2、具體操作的一些技巧:

(1)api文檔閱讀:主要看請求參數和返回數據,有些文檔有很多demo,這些demo會幫助我們很多。

參考這個內容:http://www.pmcaff.com/discuss/index/480006465919040?pmc_param=1

 

為了讓更多同學更能看懂這個傳說中的API接口文檔,我舉個栗子,並予以詳細描述,其實真的很簡單!

首先得明白,任何對外接口,都至少(不僅限)包含兩個任務分類:
講清楚這個問題:首先分清楚平台:

三種角色:
A)互聯網公司
B)終端用戶
C)第三方商家/服務提供者
平台和非平台的區別在於,用戶用的產品/服務/信息,直接由A生產,還是直接或間接由C生產。
舉個例子,印象筆記就是個互聯網產品,它由印象筆記開發,歸印象筆記所有,用戶消費印象筆記提供的產品。
再舉個例子,淘寶就是個平台產品,用戶在上面購買的商品和阿里巴巴沒有直接關系,是由淘寶上面的C)第三方商家提供的。 淘寶只是為商家提供了這樣的場所/系統,引來了顧客。

還有很多平台類公司,你看不到具象的C,例如趕集,知乎,他們通過聚合普通用戶的信息,加工組織,再為普通用戶服務。我管他們叫信息平台,也就是通常的UGC平台。
判定是否為互聯網平台主要有一下兩個標准:1 是否對商家開放;2 盈利模式是否為分成。從這個意義上講,微信不算平台,是騰訊公司自營。直播比較接近平台,直播上的帥哥靚妹屬於商家性質。


作者:知乎用戶
鏈接:https://www.zhihu.com/question/21491868/answer/18825854
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
1> 服務接口:在平台產品中,一般由商戶調用,平台負責處理;

2> 通知接口:在平台產品中,一般由平台調用,商戶負責處理;

如上,接口的規范包括URL和請求的參數兩部分。

在這里,我拿我們支付平台的『短信驗證碼扣款接口』做個案例,如看不明白的,可以在評論里告知,我會抽時間回復,當然了,妹紙可以私信我,飯不吃,工不做也第一時間回復。// 由於這個涉及到一些內部私密,本人只作一個簡要的說明,但作為牛逼如你的PM,應該能看懂的

1、短信驗證碼扣款接口

1.1 業務流程(描述)

商戶在入駐簽約我們產品時(代收代付),可以選擇是否開通這個服務,並設定這個服務的規則,很顯然,商戶開通了,並且設定了用戶支付時發送短信驗證碼

商戶發起扣款,我們根據商戶設定的發送短信限額,如果單筆扣款金額超出短信金額限制,那么會給用戶發送一條短信驗證碼,用戶須用短信回復驗證碼,我們收到后再繼續檢查驗證碼並進行扣款

1.2 接口規范

因為涉及到扣用戶的資金,原則上是不能的,但這個用戶是和銀行和我們達成了三方協議,所以有了協議保障,再扣款則無問題

調用接口的流程略,那么到現在,列位看官,這個接口是服務接口還是通知接口呢?

URL:http://www.pmcaff.com/discuss/edit/523163678204992

請求方式:GET

請求參數:(至少包含以下幾個字段)

1> 參數名:

2> 參數含義:

3> 格式說明:

4> 是否必須:

WechatIMG949.jpeg

返回值參數

Clipboard Image.png

返回碼如下:

圖片.png

當這個接口被調用時,先校驗這個商戶與我們的簽名(sign&sign_method)是否OK,為什么需要校驗?不是你媳婦,人家能讓你牽手嗎?

然后把上述的URL帶上,再把簽名,再把上述4個參數拼接(需要哪些就拼接哪些)在一起,大概樣子如下:

URL:http://www.pmcaff.com/discuss/edit/523163678204992?contract_no=201407110000159812&sp_no=135800000001&sign=XXXXXXXXXXXXXXXXXXXX&sign_method=1&total_amount=1

然后會返回一個結果:

{"err":"0","msg":"OK","token":"b0947e3456032b74c5awarfafe8de1bcd55"}

到現在你看懂了嗎?然后再回到我第一段里說的,

產品經理在這個環節,需要關注的不是文檔本身,而是API文檔里包含的字段參數是否符合我方業務訴求

 

  

 

(2)json數據解析:net.fs.json還是阿里的fastjson還是jacksondegnd

具體參考:https://www.cnblogs.com/huoer33/p/6638378.html

(3)調用第三方使用的工具:Httpclient、urlConnection還是RestTemplate

具體內容參考:http://blog.csdn.net/lmb55/article/details/70247018

 


免責聲明!

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



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