對接支付注意事項:
1,確定支付通道是否開通
支付通道一般分為網(wǎng)關(guān)支付與快捷支付膨桥。網(wǎng)關(guān)支付為跳轉(zhuǎn)網(wǎng)頁蛮浑,用戶輸入信息支付;快捷支付不需要跳轉(zhuǎn)網(wǎng)頁只嚣,直接發(fā)請求進行支付沮稚。
確定用戶需要使用哪種通道支付,以及用戶是否開通該通道册舞。W嗨X咯15其實9900你514知道73的
2蕴掏,確定支付平臺是否具有入金、出金功能
所有支付平臺都應(yīng)該有入金功能调鲸,但是只有一些平臺具有出金功能盛杰。
3,如果有代付藐石,并且不是T0(當(dāng)天充值入賬)即供,就需要用戶提前對賬號進行充值
4,確定入金于微、出金的限制及手續(xù)費率逗嫡。
5办素,服務(wù)器IP是否需要在第三方支付平臺報備。
大部分公司祸穷,只要想賺錢性穿,就得上支付系統(tǒng),讓用戶或者客戶有地方交錢雷滚。 當(dāng)然需曾,公司發(fā)展的不同階段,對支付系統(tǒng)的定位和架構(gòu)也不同祈远。整體上來說呆万,我們可以把一個公司的支付系統(tǒng)發(fā)展分為三個階段:
支付系統(tǒng):支付作為一個(封閉)的、獨立的應(yīng)用系統(tǒng)车份,為各系統(tǒng)提供支付功能支持谋减。一般來說,這個系統(tǒng)僅限于為公司內(nèi)部的業(yè)務(wù)提供支付支持扫沼,并且和業(yè)務(wù)緊密耦合出爹。
支付服務(wù):支付作為一個開發(fā)的系統(tǒng),為公司內(nèi)外部系統(tǒng)缎除、各種業(yè)務(wù)提供支付服務(wù)严就。支付服務(wù)本身應(yīng)該是和具體的業(yè)務(wù)解耦合的。
支付平臺:支付作為一個可擴展的平臺器罐, 公司內(nèi)外部的用戶可以在此基礎(chǔ)上定制開發(fā)自己的服務(wù)梢为。
這個劃分有點勉強。簡單說轰坊,支付系統(tǒng)是僅供內(nèi)部使用的铸董, 支付服務(wù)是支持公司內(nèi)外部來調(diào)用的,支付平臺是可以在服務(wù)的基礎(chǔ)上定制各種場景支持的肴沫。
區(qū)分兩個概念:支付和交易粟害。支付是交易的一部分。一個簡單的交易過程包括:客戶下訂單樊零,客戶完成支付我磁,商家接收訂單,商家出貨驻襟。這里僅考慮下訂單的流程。從軟件工程的角度芋哭, 我們首先需要明確下幾個參與者沉衣。
電商系統(tǒng),指提供在線購物服務(wù)的系統(tǒng)减牺。用戶在這個系統(tǒng)中完成交易豌习。W嗨X咯15其實9900你514知道73的
支付系統(tǒng)存谎,可以是電商系統(tǒng)的一個模塊,或者是個獨立的系統(tǒng)肥隆。這是本文的主角既荚,用來完成支付過程。
用戶栋艳,在電商系統(tǒng)中敗家的那位恰聘。如果使用銀行卡做交易,那也被稱為持卡人吸占。
用戶使用銀行卡交易時晴叨,發(fā)行這個銀行卡的機構(gòu)稱為發(fā)卡行,或者發(fā)卡機構(gòu)矾屯。
商家也需要一張卡兼蕊,就是大家在淘寶開網(wǎng)店的時候要登記的銀行卡,最終需要把用戶給的錢打到這張卡上件蚕。
和發(fā)卡機構(gòu)相對應(yīng)的孙技,大家聽到最多的是收單機構(gòu)。如支付寶排作,微信等第三方支付公司绪杏,介紹業(yè)務(wù)的時候總少不了互聯(lián)網(wǎng)收單的工作。它們把用戶訂單收起來纽绍,找發(fā)卡行要錢蕾久,就有了收單業(yè)務(wù)。
主演都有了拌夏,下面就是如何演出支付這場大戲了僧著。正常的流程應(yīng)該是這樣:
用戶提交訂單到電商系統(tǒng),電商系統(tǒng)對訂單進行檢驗障簿,無問題則調(diào)起支付接口執(zhí)行支付盹愚。注意這里支付接口是在服務(wù)器端調(diào)起的。一般支付接口很少從客戶端直接調(diào)起站故。為了安全皆怕,支付接口一般要求用HTTPS來訪問,并對接口做簽名西篓。關(guān)于支付接口的設(shè)計愈腾,我將另起博文介紹。
2.支付系統(tǒng)檢查參數(shù)有效性岂津,特別是簽名的有效性虱黄。
4.根據(jù)用戶選擇的支付方式,以及系統(tǒng)支付路由設(shè)置吮成,選擇合適的收單機構(gòu)橱乱。這里涉及三個概念辜梳,支付方式,支付路由泳叠。這又是一個槽點作瞄。簡單說,用戶可以選擇各種銀行卡支付危纫,比如寧波銀行卡宗挥,但是你的支付系統(tǒng)沒有對接寧波銀行,那對這種卡叶摄,可以選擇你接入的属韧,支持這個卡的收單機構(gòu)來執(zhí)行支付,如用微信或者支付寶等等第三方支付蛤吓,或者銀聯(lián)支付等系統(tǒng)支持的方式來執(zhí)行宵喂。這就是支付路由,根據(jù)用戶提供的銀行卡來選擇合適的收單機構(gòu)去執(zhí)行支付会傲。常用支付方式還包括第三方支付锅棕,如微信支付寶等,這種情況下就不需要支付路由了淌山。
5.調(diào)用收單接口執(zhí)行支付裸燎。這是支付系統(tǒng)的核心。每個公司的收單接口都不一樣泼疑,接入一兩個收單機構(gòu)還好德绿,接入的多了,如何統(tǒng)一這些接口退渗,就是一個設(shè)計難點移稳。W嗨X咯15其實9900你514知道73的
6.支付成功,收單機構(gòu)把錢打到商戶的賬戶上了会油。 商家就準(zhǔn)備發(fā)貨了个粱。 怎么發(fā)貨,不是本文的重點翻翩。 這里關(guān)注的要點是都许, 商家能收到多少錢? 比如100塊錢的商品嫂冻,用戶支付了100塊錢(運費胶征、打折等另算),這100塊錢絮吵,還要刨去電商系統(tǒng)的傭金弧烤、支付通道的手續(xù)費,才能最終落到商家手里蹬敲。
這是個Happy流程暇昂,一切看起來都很美好,但實際上步步都是坑伴嗡,一旦有地方考慮不周全急波,輕者掉單頻發(fā),重者接口被盜刷瘪校,損失慘重澄暮。
如何避免攻擊者修改支付接口參數(shù), 比如100塊錢的東西阱扬,改成10塊錢泣懊?
調(diào)用收單接口來執(zhí)行最終實際支付時,如果支付失敗了麻惶,比如卡上沒錢了馍刮,怎么辦?
收單接口把賬戶上的錢扣走了窃蹋,但是通知支付系統(tǒng)的時候出錯了(比如網(wǎng)絡(luò)閃斷卡啰,或者支付系統(tǒng)重啟了),支付系統(tǒng)不知道這筆交易已經(jīng)達(dá)成了警没,怎么處理匈辱?
還有好多問題….
和錢打交道,在任何公司杀迹,都跑不掉財務(wù)部門亡脸。 那財務(wù)部門會關(guān)注哪些內(nèi)容? 當(dāng)然树酪,最重要的是賬務(wù)信息浅碾。 所有的交易都要記賬,按要求公司都需要定期做審計嗅回,每一筆帳都不能出錯及穗。這當(dāng)然不能等到審計的時候再去核對,而是每天都需要對賬绵载,確保所有的交易支出相抵埂陆,也就是所說的把賬給平了。 這就有三種情況: 電商系統(tǒng)和商家對賬娃豹;電商系統(tǒng)和支付系統(tǒng)對賬焚虱;支付系統(tǒng)和收單機構(gòu)對賬。最為支付系統(tǒng)懂版,我們僅關(guān)注后兩者的情況鹃栽。
從軟件開發(fā)角度, 還有一些非功能性需求需要實現(xiàn):W嗨X咯15其實9900你514知道73的
性能: 特別是秒殺的時候躯畴,如何滿足高頻率的支付需求民鼓?
可靠性:不用說薇芝,系統(tǒng)能達(dá)到幾個9,是衡量軟件設(shè)計功力的重要指標(biāo)丰嘉。 99%是基礎(chǔ)夯到, 99.999%是目標(biāo),更多的9哪就是神了饮亏。
易用性:支付中多一個步驟耍贾,就會流失至少2%的用戶。 產(chǎn)品經(jīng)理都在削尖腦袋想想怎么讓用戶趕緊掏錢路幸。
可擴展性: 近年來支付業(yè)務(wù)創(chuàng)新產(chǎn)品多荐开,一元購、紅包简肴、打賞等晃听,還有各種的支付場景。 怎么能夠快速滿足產(chǎn)品經(jīng)理的需求着帽,盡快上線來搶占市場杂伟,可擴展性對支付系統(tǒng)設(shè)計也是一個挑戰(zhàn)。
可伸縮性:為了支持公司業(yè)務(wù)仍翰,搞一些促銷活動是必須的赫粥。 那促銷帶來的爆發(fā)流量,最佳應(yīng)對方法就是加機器了予借。 平時流量低越平,用不了那么多機器,該釋放的就釋放掉了灵迫, 給公司省點錢W嗨X咯15其實9900你514知道73的