聚合支付平台
一、聚合支付平台介紹
1、業務背景及功能介紹
1)商家對接支付,形成二維碼顯示到你的網站上。二維碼背后就是一個字符串。給到一個微型和支付寶的url。
2)Deplink 可以調到對應的APP,如:weixin:// 喚醒微信的APP。
3)對接支付入款API和回調API,回調API修改訂單狀態。
4)支付中有幾個角色,商戶:對接支付的人。接口:聚合支付平台。
支付渠道:支付寶、微信、京東等。清結算系統。
5)支付對接流程
①商務對接,身份提交給平台,還有手續費問題
②技術對接
③測試和上線(數據類型用decimal)
④對賬和提現
6)聚合支付
聚合平台自己又成了商戶的角色。
2、支付對接時序圖介紹
支付成功通知
二、一個聚合支付平台的基本需求
1、支付相關
1)支付API(出入款、查詢、異步回調通知)
2)對接不同的支付渠道(支付方式)
3)訂單系統 扣費系統
2、管理系統
1)商戶賬戶管理(配置商戶、手續費等)
2)渠道管理
3)訂單管理
4)對賬
5)權限
6)其他(權限、結算、統計)
三、聚合支付系統介紹
1、架構介紹
Adpator,對接不同支付渠道。
商戶的管理后台
通知
Mysql 和redis
2、技術棧
Java8 node.js vue mysql
3、為什么去spring化
Spring 並不是百分之百完美的,不用spring對代碼的掌控力很高。
四、無spring實現
1、web功能
Simple HTTP API Endpoint
1) 為什么這個業務場景只需要簡單的http服務
① 對B端系統用戶
② 使用簽名技術而非普通session認證
③ 接口變化非常緩慢
④ 基本無復雜前端相關業務
2) 我們需要的是:
① HTTP協議服務器
② HTTP請求分發器
③ 支持不同HTTP相應
④ 提供業務代碼框架
⑤ Cookie以及其它http協議。
2、NanoHttpd框架
Session里面有各種方法
3、Beetl3模板
選擇模板、傳入參數。
4、Requst dispatcher(分發)
定義分發規則
Url找到哪個類的哪個方法
定了一個規約
包路徑規則定義完成后,利用反射找到對應的class。
5、在非spring環境下使用MyBites
封裝DBTools類,通過傳SqlSession的lamda表達式