摘要:相比起來(lái),支付寶的下單動(dòng)作由于是在前端調(diào)用的,因此,站點(diǎn)需要將自己的訂單信息返回到客戶端,然后又客戶端發(fā)起調(diào)用支付寶的下單接口,這樣一來(lái),如果安全加密等做的不到位,很容易被惡意用戶篡改信息。
作為一個(gè)具備用戶交易能力的網(wǎng)站,豐富它的支付渠道對(duì)于獲客和提高日活都有不可估量的積極作用。算起來(lái),我接觸過(guò)的支付系統(tǒng)也有幾十個(gè)了,在這里總結(jié)一下我所接觸過(guò)的支付系統(tǒng)對(duì)外接口的設(shè)計(jì)方案。
1. 支付寶作為國(guó)內(nèi)最大的支付平臺(tái),絕大多數(shù)網(wǎng)站都會(huì)與其對(duì)接,當(dāng)之無(wú)愧是最常見的支付渠道,而很多其它小的支付渠道也是參考支付寶來(lái)設(shè)計(jì)其對(duì)外接口的,很具有代表性,其支付流程如下圖:
上圖的流程中其實(shí)還隱藏了很多安全校驗(yàn)的細(xì)節(jié),例如與支付寶接口之間的數(shù)據(jù)加密規(guī)則和驗(yàn)簽規(guī)則,異步回調(diào)接口的調(diào)用者IP白名單,支付寶訂單信息反查及與A站點(diǎn)訂單信息比對(duì)校驗(yàn)(金額、用戶、狀態(tài)等)。另外,還有一些流程是可選的,例如,同步回調(diào)這一步,如果將訂單確認(rèn)的流程加在里面,則有可能影響用戶體驗(yàn),所以在這里訂單的確認(rèn)流程可以自己觸發(fā)另開線程去跑,或者去除同步回調(diào)的確認(rèn)訂單功能,完全依賴異步回調(diào)來(lái)完成訂單。而異步回調(diào)里的訂單反查也不是必須的,如果你認(rèn)為白名單和驗(yàn)簽規(guī)則足夠可信的話,不反查也可以。
2. 微信支付成交量也非??捎^的支付渠道,其支付流程也具有一定的代表性,流程如下圖:
相比支付寶,其在初始的下單階段有一些差異,主要表現(xiàn)在,下單動(dòng)作是由A站點(diǎn)的服務(wù)端調(diào)用的,而支付寶則是由前端發(fā)起調(diào)用的。相比起來(lái),支付寶的下單動(dòng)作由于是在前端調(diào)用的,因此,A站點(diǎn)需要將自己的訂單信息返回到客戶端,然后又客戶端發(fā)起調(diào)用支付寶的下單接口,這樣一來(lái),如果安全、加密等做的不到位,很容易被惡意用戶篡改信息。而微信的下單接口是服務(wù)端調(diào)用的,A站服務(wù)器只將獲得的微信預(yù)付訂單號(hào)返回給客戶端,用來(lái)發(fā)起調(diào)用微信客戶端支付接口,這樣一來(lái),訂單信息詳情沒有暴露在外,相對(duì)更安全一些。
3. 深度合作的積分抵扣模式有時(shí),一些站點(diǎn)或游戲會(huì)與某些第三方深度合作,將第三方的積分接入其中,以一定的比例來(lái)抵扣和兌換其中的商品或道具。所謂深度合作,則是第三方會(huì)直接給出授權(quán)互信接口,允許A站點(diǎn)直接調(diào)用扣減某用戶的積分,用戶只需將其第三方站點(diǎn)的賬號(hào)與A站點(diǎn)的賬號(hào)綁定即可。這種模式,大多數(shù)情況下只有接口級(jí)的調(diào)用,沒有前端收銀臺(tái)界面,流程圖如下:
從上圖可以看出,這種方式在流程上相對(duì)比較簡(jiǎn)單,只要A站點(diǎn)與第三方做好接口加密、簽名等安全措施,商定好結(jié)算規(guī)則,對(duì)接起來(lái)相對(duì)比較容易。另外,這種對(duì)接形式需要第三方支持按照A站點(diǎn)的訂單號(hào)來(lái)反查訂單信息,方便對(duì)賬結(jié)算和訂單異常的自動(dòng)化處理。
4. 總結(jié):支付系統(tǒng)對(duì)外接口的必備要素 4.1 接口部分下單接口
同步回調(diào)通知:通知的信息需要包含雙方訂單號(hào),訂單金額,用戶身份信息,訂單狀態(tài)等
異步回調(diào)通知:同“同步回調(diào)通知”
交易訂單查詢接口:支持使用雙方任一方的訂單號(hào)來(lái)查詢訂單信息,因?yàn)橛袝r(shí)A站點(diǎn)不一定能拿到支付渠道產(chǎn)生的訂單號(hào),此時(shí)則只能拿A站點(diǎn)自己的訂單號(hào)來(lái)查詢支付渠道的支付信息。之所以需要查詢,一個(gè)是在回調(diào)時(shí)確保訂單信息的有效性和準(zhǔn)確性,另一個(gè)目的則是防止異常情況下,A站點(diǎn)沒有收到支付渠道的回調(diào)信息,而用戶的確在支付渠道成功支付,為確保A站點(diǎn)用戶支付都能及時(shí)到賬發(fā)貨,需要增加異步的訂單查詢跑批。
4.2 安全部分信息加密:https、AES、非對(duì)稱加密(公鑰私鑰)等;
簽名規(guī)則:對(duì)傳輸?shù)男畔⒄w應(yīng)用簽名規(guī)則(sha256等),生成簽名字符串,用于防止傳輸信息被篡改;
IP白名單:對(duì)于服務(wù)器間調(diào)用的接口,可以將對(duì)方服務(wù)器IP加入白名單,防止非法IP調(diào)用;
訂單信息反查:A站點(diǎn)主動(dòng)向支付渠道查詢訂單信息,保證訂單信息的有效性和準(zhǔn)確性。
以上只是我對(duì)之前接觸過(guò)的支付系統(tǒng)對(duì)外接口的總結(jié),可能有一些說(shuō)的不對(duì)或有待完善的地方,如果你有任何問題或建議,可以掃描下方二維碼或者微信搜索[phpjiagoushier],關(guān)注我的微信公眾號(hào)[PHP架構(gòu)],參與互動(dòng)交流。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/11773.html
摘要:通常情況下,偽都是基于第一層次與第二層次設(shè)計(jì)的。為了解決這個(gè)版本不兼容問題,在設(shè)計(jì)的一種實(shí)用的做法是使用版本號(hào)。例如,建議第三位版本號(hào)通常表示兼容升級(jí),只有不兼容時(shí)才需要變更服務(wù)版本。 原文地址:梁桂釗的博客 博客地址:blog.720ui.com 歡迎關(guān)注公眾號(hào):「服務(wù)端思維」。一群同頻者,一起成長(zhǎng),一起精進(jìn),打破認(rèn)知的局限性。 有一段時(shí)間沒怎么寫文章了,今天提筆寫一篇自己對(duì) API 設(shè)...
摘要:通常情況下,偽都是基于第一層次與第二層次設(shè)計(jì)的。為了解決這個(gè)版本不兼容問題,在設(shè)計(jì)的一種實(shí)用的做法是使用版本號(hào)。例如,建議第三位版本號(hào)通常表示兼容升級(jí),只有不兼容時(shí)才需要變更服務(wù)版本。 原文地址:梁桂釗的博客博客地址:http://blog.720ui.com 歡迎關(guān)注公眾號(hào):「服務(wù)端思維」。一群同頻者,一起成長(zhǎng),一起精進(jìn),打破認(rèn)知的局限性。 有一段時(shí)間沒怎么寫文章了,今天提筆寫一篇...
摘要:極致的插件機(jī)制,系統(tǒng)內(nèi)的系統(tǒng),安裝和卸載不會(huì)對(duì)原來(lái)的系統(tǒng)產(chǎn)生影響強(qiáng)大的功能完全滿足各階段的需求,支持用戶多端訪問后臺(tái)微信前臺(tái)等,系統(tǒng)中的系統(tǒng)。多入口模式,多入口分為后臺(tái)前端,微信,對(duì)內(nèi)接口,對(duì)外接口,不同的業(yè)務(wù),不同的設(shè)備,進(jìn)入不同的入口。 RageFrame 2.0 為二次開發(fā)而生,讓開發(fā)變得更簡(jiǎn)單 項(xiàng)目地址:https://github.com/jianyan74/... 前言 這...
摘要:極致的插件機(jī)制,系統(tǒng)內(nèi)的系統(tǒng),安裝和卸載不會(huì)對(duì)原來(lái)的系統(tǒng)產(chǎn)生影響強(qiáng)大的功能完全滿足各階段的需求,支持用戶多端訪問后臺(tái)微信前臺(tái)等,系統(tǒng)中的系統(tǒng)。多入口模式,多入口分為后臺(tái)前端,微信,對(duì)內(nèi)接口,對(duì)外接口,不同的業(yè)務(wù),不同的設(shè)備,進(jìn)入不同的入口。 RageFrame 2.0 為二次開發(fā)而生,讓開發(fā)變得更簡(jiǎn)單 項(xiàng)目地址:https://github.com/jianyan74/... 前言 這...
閱讀 3655·2023-04-26 02:07
閱讀 3163·2021-09-22 15:55
閱讀 2540·2021-07-26 23:38
閱讀 3122·2019-08-29 15:16
閱讀 2011·2019-08-29 11:16
閱讀 1755·2019-08-29 11:00
閱讀 3590·2019-08-26 18:36
閱讀 3167·2019-08-26 13:32