設計一個類似支付寶的在線支付系統,問如何着手?

首先是最前端,與用戶打交道的WEB端。考慮到用戶量的問題,必然要做負載均衡。硬件或者軟件都有很多解決方案,比如軟件可以用開源的nginx、haproxy、lvs什麼的。WEB端的基本功能是 用戶服務平臺、支付網關、商戶服務平臺(提供針對商戶的訂單管理功能)。

在WEB後面需要一系列的服務相互配合,這裏細節略去。詳情可以參考各支付平臺給商戶的各種文檔,裏頭可以窺知一二。

服務的背後就是數據,所以必然得有數據庫,得考慮用什麼數據庫。然後要考慮的兩個主要問題是:1. 數據量、請求量都很大,怎麼解決壓力的問題。分庫分表什麼的,少不了;這還不夠,你不能把所有請求都直接扔給數據庫,所以得引入memcached/redis之類的來作爲緩存;有了緩存,又得考慮數據的一致性問題…… 2. 數據的安全性,主從同步、數據恢復這些東西我都不是很熟,必然得有專業的DBA才行。

在整個核心支付流程之外,還得考慮支付的風險,這得在支付流程內外都安插一些環節。你所提到的https,這個是最最基本的。在網絡傳輸中被攔截數據的風險遠小於在客戶端被攔截的風險,所以你得有安全控件。這還遠遠不夠。即使密碼泄漏了,你也得用一定的方式保證用戶的資金不被任意使用,跟不用說常見的欺詐、釣魚之類風險,在這裏,安全控件也能幫上不少的忙,詳情可以參見知乎這個問題,裏面有Fenng和白鴉的回答。

除了支付,你還得考慮保障後勤工作的清算對賬,覈對支付的疏漏。比如說我在評論裏提到的,重複支付的問題是不能完全避免的,就得靠清算對賬來完成。通常支付平臺還得給商戶提供流水以供商戶覈對。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章