支付系统架构设计详解

内容导读:支付永远是一个公司的核心领域,因为这是一个有交易属性公司的命脉。那么,支付系统到底长什么样,又是怎么运行交互的呢?


抛开带有支付牌照的金融公司的支付架构,下述链路和系统组成基本上符合绝大多数支付场景。

其实整体可以看成是交易核心+支付核心 两个大系统。
交易系统关联了业务场景和底层支付,而支付系统完成了调用支付工具到对账清算等一系列相关操作。下面我们就来一起看下 各个系统的核心组成和交互。

作者:Petter Liu
出处:http://www.cnblogs.com/wintersun/

Part one 支付系统总览

核心系统交互

5fc43303fe9e7aa755c98f03419a7e96.png

业务图谱

19e68559b234a0a7faa146a11e5ddfb4.png

Part two 核心系统解析

交易核心

交易核心把公司的业务系统和底层支付关联起来,让业务系统专注于业务,不比关心底层支付。

交易核心
56b1c847226898115923f4674e4e41ab.png
基础交易类型抽象
34cc82bbaab05d1f400ef6b8136f7594.png
多表聚合 & 订单关联
2dde691bb597e7bbde3ed2d45a8bc276.png

支付核心

支付核心主要负责将多种支付类型进行抽象,变成 充值提现退款转账四种支付形态。同时,还要负责集成多种支付工具,对支付指令进行编排等等。

支付核心总览
6be48d6fdf7b647f86bbea0e3d5aca61.png
支付行为编排

其目的,是实现 插件式开发支付规则可配置的 灵活开发方式。

9710eac82171a68d47a28b39792febf3.png
异常处理

异常处理包括了 重复支付、部分支付、金额不一致、其他异常等异常场景。

b409f434018f033a944333f0fd39d46d.png

渠道网关

592b53e4acc39107e8a3272862cffed1.png

资金核算

7d879c19e1b2aad9e9d549d626702299.png

Part three 服务治理

平台统一上下文

通过确定系统边界、业务建模拆分之后,整个支付平台被拆分几十个服务,而如何保障在服务间流转业务信息不被丢失,是我们需要考虑的问题。平台统一上下文的要素信息(唯一业务标识码),在整个支付平台链路中全程传递,被用来解决这个问题。

b86693df05eb729fcdffc237ec815735.png

数据一致性治理

大型的支付公司,内部都有非常严格和完备的数据一致性方案,比如采用业务侵入性非常大的分布式事务等,以牺牲开发效率来提升数据的稳定,是非常有必要的。而业务公司,如果不采用分布式事务又有哪些应对策略呢?

CAS校验
85d241c19c25cae4d588cc8b0f98e80a.png
幂等 & 异常补偿
e6224bcda414568f2d78041830d839b4.png
对账
b6f0d5cde6e19bcdedd2e3f32ba3f003.png
准实时对账
df993a97404f38d999d0e4ca621fce44.png

DB拆分

5dffdde2a3d0e5f56906552a9f58b56a.png

异步化

支付是整个交易链路的核心环节,那么,怎么兼顾支付系统的稳定性和执行效率呢?是异步化。

消息异步化
d6d76ecee4ccbbbd077fd1c7f807e765.png
外部支付调用异步化
27e5655b099c2396c4912c70d78f496a.png

在外部支付中,经常需要服务方与第三方支付交互,获取预支付凭证,如上图所示。

这种同步调用的情况下,由于需要跨外部网络,响应的 RT 会非常长,可能会出现跨秒的情况。由于是同步调用,会阻塞整个支付链路。一旦 RT 很长且 QPS 比较大的情况下,服务会整体 hold 住,甚至会出现拒绝服务的情况。

bc2933058300a827062d7b0e677c696d.png

因此,可以拆分获取凭证的操作,通过独立网关渠道前置服务,将获取的方式异步化,从前置网关获取内部凭证,然后由前置网关去异步调用第三方。

异步并行化
9ade319a3d5ea79b2249eabc6daf5d62.png
资金核算异步化
94b9a576f17e92e6e524addd3fdf9e70.png
热点账户账务单独处理
c48d70d3caa5f2212c4019a371cfd14c.png
记账事务切分
6872ec804320f78249cb32e687a2a74c.png

Part four 生产实践

性能压测

构建压测模型,模拟现实真实场景;压测数据进影子库,正常业务无侵入;单机性能和集权链路都不能忽视;识别系统稳定性和容量配比。。。 ec14e867fdebb8b52cf6d92f3ffadf8e.png

稳定性治理

db769e304e0aeb2957de241c4a38f84c.png

核心链路分离

610279c1673fcc22eb0dd96e9fe5e8d7.png

服务依赖降级

2f1c340ac9da353967ac4ced98580322.png

技术学习交流群

 「架构君」建立了技术交流群,可以添加我微信拉你进群

50d94f8261b6724bf3bd2f46eb1568c2.png

添加时可以备注城市+职位+年限】

强势开源一款小程序!
2021-11-07
强力推荐一个完善的物流(WMS)管理项目(附代码)
2021-10-23
推荐一个 Spring Boot + MyBatis + Vue 音乐网站
2021-10-19
分享一套家庭理财系统(附源码)
2021-09-20
推荐一个互联网企业级别的开源支付系统
2021-09-04
推荐一套开源通用后台管理系统(附源码)
2021-08-21
一款神仙接私活儿软件,吊到不行!
2021-07-31
基于 SpringBoot 的仿豆瓣平台【源码分享】
2021-07-18
干掉 Wordpress!这个开源建站神器有点吊!
2021-06-18
从朋友那里搞了 20 个实战项目,速领!
2021-06-12

469ce8a7c4b98dc074690845e939a75e.png

如有收获,点个在看,诚挚感谢528cfc8c3a7f4deb0f940fcdd1e1f8f0.png

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第一章二手交易系统平台 1.1系统总体设计 1.1.1系统组成描述 1.1.2系统结构描述 1.1.3系统主要关系设计 1.1.4P间数据处理层 1.2数据库设计 1.3系统前台设计 1.3.1主要用户自定义控件 1.3.2首页总体设计 1.3.3注册页设计 1.3.4商品信息详细页设计 1.3.5普通商品信息添加页 1.3.6个人发布信息管理 1.3.7数据搜索结果页 1.4系统后台管理设计 1.4.1后台登录设计 1.4.2后台普通商品信息管理 1.4.3后台租用房屋信息管理 1.4.4后台信息分类管理 1.4.5注册用户信息管理 第二章电子购书网站 2.1系统总体设计 2.1.1系统组成描述 2.1.2系统结构描述 2.1.3系统主要模块关系 2.1.4业务逻辑层 2.2系统数据库设计 2.3系统界面层设计 2.3.1首页设计 2.3.2注册登录 2.3.3书籍详细信息页设计 2.3.4购物篮设计 2.3.5购物清单 2.3.6订购状态页 2.3.7缺书籍反馈页 2.3.8用户管理页 2.3.9书籍管理 2.3.10购物订单管理 2.4系统服务Web Service层设计 2.5 B2C网络支付 第三章PoRTAI.企业级门户网站 3.1系统总体设计 3.1.1系统架构描述 3.1-2系统功能模块描述 3.1.3数据库设计 3.1.4门户网站}I擎动作原理 3.1.5配置信息XM[。文件结构分析 3.1.6 XMI。配置文件操作类 3.1.7系统的层次结构 3.2门户网站引擎设计 3.2.1模块排版系统设计 3.2.2模块排版系统代码分析 3.3角色身份认证 3.3.1角色模块控件 3.4外挂自定义系统 3.5门户站点可重用模块 3.6移动模块设计 第四章BBS论坛系统 4.1系统总体设计 4.1.1系统功能 4.1. 2系统框架 4.1. 3系统附加支持模块(IJtility)概述 4.1.4系统模型对应模块(Model)概述 4.1.5业务逻辑模块(Businessl.,ogic)概述 4.1.6数据库访问层模块(SQL,ServerDAI。)概述 4.1.7系统界面模块(Stella)概述 4.2系统数据库设计 4.2.1数据库设计 4.2.2数据库表结构 4.2.3数据库存储过程设计 4.3系统典型控件和界面设计 4.3.1讨论区域版块信息控件 4.3.2论坛版块控件 4.3.3发表帖子控件设计New。Topic.aSCX- 4.3.4论坛首页index.asp设计 4.3.5分论坛theme.aspx设计 4.3.6发新帖界面new’Fopie.aspx设计 4.3.7论坛注册 4.3.8论坛后台 4.3.9论坛配置信息管理config.aspx设计 4.3.10论坛区域版块管理页district.aspx设计 4.3.11小结 第五章大型汽车新闻网站 5.1系统总体设计 5.1.1系统组成描述 5.1.2系统结构描述 5.1.3发布系统主要模块设计 5.1.4系统通用层Common设计 5.1.5系统逻辑层。Model设计 5.1.6系统数据访问层DataAccess设计 5.1.7系统界面层Web设计 5.2系统数据库设计 5.3后台发布系统设计 5.3.1稿件模板设计和管理 5.3.2发布新闻信息编辑并生成静态页 5.3.3批量静态页生成 5.3.4信息分类管理 5.3.5车型信息管理 5.3.6广告管理 5.3.7网站各栏日信息列表页创建 5.3.8网站首页创建 5.4网站前台设计 第六章oA办公自动化公文流转设计 6.1系统总体设计 6.1.1公文流转组成描述 6.1.2公文流转结构描述 6.2系统数据库设计 6.3具体功能设计 6.3.1创建公文流转 6.3.2流转流程列表 6.3.3流转流程图预览 6.3.4公文新发 6.3.5公文审核 6.3.6公文流转监控

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值