layout: post title: "第三方支付系統技術分享" subtitle: " "1.架構設計 2.如何實作 "" date: 2018-10-17 06:00:00 author: "青鄉" header-img: "img/post-bg-2015.jpg" catalog: true tags: - 支付
技術架構
1.網上常見的支付系統架構體系圖
2.支付寶
3.京東
簡化流程圖
技術棧
controller/service/dao
1.struts2/springMVC //控制器層
有多個web,有的是struts2(早期),有的是springMVC(後期)。
2.spring //業務層
基于配置檔案或注解。
3.ibatis //持久層
基于sql。
三大中間件
1.memcache nosql資料庫-基于記憶體的緩存。
适用于:1.常用資料 2.小資料
例如:短信驗證碼,tokenID/order等
2.metaQ
消息發送
3.mongoDB
nosql資料庫-基于磁盤的緩存
适用于:1.不常用的資料 2.大資料
例如:記錄檔等
分布式服務
分布式服務架構
1.zookeeper //服務注冊中心
2.阿裡dubbo //服務治理和服務發現
服務
1.支付系統核心服務 //幾十個
按業務流拆分,按業務拆分
2.基礎架構 //1 20個
common架構 //啟動服務,memcache緩存,metaQ消息,mongoDB,http請求,加密等
3.背景系統 //幾十個
1)總背景 //10來個
2)商家 //10來個
3)代理商 //10來個
4)錢包背景和錢包app //1 20個
4.風控系統 //20個以上
5.model //10來個
訂單
提現轉賬
賬戶
使用者 //系統庫
風控
錢包
等等
背景系統
1.總背景
2.商家
3.代理商
4.錢包
移動端
1.商家
2.代理商
3.錢包app
類似支付寶。//核心功能:友善提現和轉賬。
綁定銀行卡
四要素:姓名、身份證号、手機号、銀行卡号。
業務場景之入金(支付/訂單)和出金(提現和轉賬)
入金(賬戶加錢)
支付方式
1.掃碼 //二維碼
2.H5 //支付寶/微信/浏覽器
3.快捷支付 //簽約/解約
流程圖
3條主線
出金(賬戶減錢)
1.提現 2.轉賬
流程圖
流程差不多,最大的差別是,一個加錢,一個減錢。
清結算(主要是結算)
1.清算
生成訂單資料的時候,訂單金額和手續費都已經計算好了。
2.結算 //給賬戶金額加錢
流程圖
訂單結算表和支付流水表
結算服務和賬戶服務之間的關系
資料庫oracle
1.按業務劃分
訂單庫
提現/轉賬庫
賬戶庫
系統使用者庫 等等
2.大表
1)按new/history劃分
2)表分區
partition by range (date)
自動化運維jenkins
1.開發和測試
開發送出代碼——》git——》jenkins打包——》測試拿包測試。
2.釋出 //運維部門,運維系統
測試整包——》推送釋出包——》運維正式上線。
線上生産環境部署
1.nginx叢集 //靜态内容和負載均衡/轉發請求
2.tomcat叢集
3.服務叢集
4.cdn加速 //靜态資源
5.中間件叢集
總結
1.支付核心交易流程
2.背景營運和監控
3.對賬 //單筆訂單對賬/多筆批量對賬
4.風控 //業務比較複雜,各種風控場景、規則
5.通道路由 //實作智能化路由通道:1.負載均衡 2.監控通道品質、是否可用等
網上資料
doc.cocolian.cn/
tech.meituan.com/tag/支付
轉載于:https://juejin.im/post/5c22f3ef6fb9a049c965b7a4