Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >支付系统架构设计详解

支付系统架构设计详解

作者头像
IT运维技术圈
发布于 2022-08-05 07:20:07
发布于 2022-08-05 07:20:07
8090
举报
文章被收录于专栏:IT运维技术圈IT运维技术圈

内容导读:支付永远是一个公司的核心领域,因为这是一个有交易属性公司的命脉。那么,支付系统到底长什么样,又是怎么运行交互的呢? 抛开带有支付牌照的金融公司的支付架构,下述链路和系统组成基本上符合绝大多数支付场景。 其实整体可以看成是交易核心+支付核心 两个大系统。 交易系统关联了业务场景和底层支付,而支付系统完成了调用支付工具到对账清算等一系列相关操作。下面我们就来一起看下 各个系统的核心组成和交互。 作者:Petter Liu 出处:http://www.cnblogs.com/wintersun/

Part one 支付系统总览

核心系统交互

业务图谱

Part two 核心系统解析

交易核心

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

交易核心
基础交易类型抽象
多表聚合 & 订单关联

支付核心

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

支付核心总览
支付行为编排

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

异常处理

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

渠道网关

资金核算

Part three 服务治理

平台统一上下文

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

数据一致性治理

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

CAS校验
幂等 & 异常补偿
对账
准实时对账

DB拆分

异步化

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

消息异步化
外部支付调用异步化

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

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

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

异步并行化
资金核算异步化
热点账户账务单独处理
记账事务切分

Part four 生产实践

性能压测

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

稳定性治理

核心链路分离

服务依赖降级

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-07-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 IT运维技术圈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
支付系统架构设计详解
点击上方“芋道源码”,选择“设为星标” 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 10:33 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | Java 2021 超神之路,很肝~ 中文详细注释的开源项目 RPC 框架 Dubbo 源码解析 网络应用框架 Netty 源码解析 消息中间件 RocketMQ 源码解析 数据库中间件 Sharding-JDBC 和 MyCAT 源码解析 作业调度中间件 Elastic-Job 源码解析 分布式事务中间件 TCC-Transaction
芋道源码
2022/03/04
5880
支付系统架构设计详解
交易核心把公司的业务系统和底层支付关联起来,让业务系统专注于业务,不比关心底层支付。
CPP开发前沿
2022/04/13
1.8K0
支付系统架构设计详解
支付系统就该这么设计,稳的一批!!
支付永远是一个公司的核心领域,因为这是一个有交易属性公司的命脉。那么,支付系统到底长什么样,又是怎么运行交互的呢?抛开带有支付牌照的金融公司的支付架构,下述链路和系统组成基本上符合绝大多数支付场景。其实整体可以看成是交易核心+支付核心 两个大系统。交易系统关联了业务场景和底层支付,而支付系统完成了调用支付工具到对账清算等一系列相关操作。下面我们就来一起看下各个系统的核心组成和交互。
程序员蜗牛
2024/03/28
1670
支付系统就该这么设计,稳的一批!!
大厂的第三方支付业务架构设计
先搞懂支付涉及核心金融原理,按架构由简到难,逐步学习点券系统、支付系统和第三方支付公司的支付系统。就能理解支付系统咋遵循核心金融原理,一步步从简单组件发展到完善系统架构。
JavaEdge
2025/06/01
1450
大厂的第三方支付业务架构设计
支付系统就该这么设计,稳的一批!!
支付永远是一个公司的核心领域,因为这是一个有交易属性公司的命脉。那么,支付系统到底长什么样,又是怎么运行交互的呢?抛开带有支付牌照的金融公司的支付架构,下述链路和系统组成基本上符合绝大多数支付场景。其实整体可以看成是交易核心+支付核心 两个大系统。交易系统关联了业务场景和底层支付,而支付系统完成了调用支付工具到对账清算等一系列相关操作。下面我们就来一起看下各个系统的核心组成和交互。
搜云库技术团队
2023/10/21
1.1K0
支付系统就该这么设计,稳的一批!!
【干货】完整的支付系统整体架构!
  从产品分类、模块功能和业务流程,了解支付产品服务的设计。 支付产品模块是按照支付场景来为业务方提供支付服务。这个模块一般位于支付网关之后,支付渠道之前。 它根据支付能力将不同的支付渠道封装成统一的接口,通过支付网关来对外提供服务。所以,从微服务的角度来说,支付产品本身也是一个代理模式的微服务,它透过支付网关响应业务方请求, 进行一些统一处理后,分发到不同的支付渠道去执行,最后将执行结果做处理后,通过支付网关再回传给业务方。支付产品在支付系统架构图中的位置,如下图所示: 产品分类   在不同的公
Java技术栈
2018/03/30
11.8K1
【干货】完整的支付系统整体架构!
图解:支付系统产品架构
关于产品架构和业务架构的区别,一直存在争议。由于产品架构没有固定的标准,许多产品架构借鉴了TOGAF的4A架构理论中的业务架构方法。如果非要区分技术和产品,可以这样理解:产品主要关注用户使用的功能和内在关系的展示,而技术则更侧重于功能实现和技术栈的支持。
Louis XIV
2025/01/16
4870
图解:支付系统产品架构
资金视角看支付系统架构设计
在线支付是一个有近 20 年发展历程的行业,其背后系统的技术设计也随着时间、政策、技术的迭代,不断发生着变化。作为一个与钱直接打交道的行业,支付系统的准确性、安全性、稳定性要求都非常高,对程序员而言无疑是一个非常有挑战性的技术领域。 本文从资金的视角提炼了支付系统背后的业务与技术要点,帮助大家理清支付和资金的关系,文中多处架构示意图非常直观,相信能给大家一些全面的技术输入!
腾讯云开发者
2024/12/11
5000
资金视角看支付系统架构设计
支付系统中,账户体系的设计与记账处理
点击上方“芋道源码”,选择“设为星标” 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 10:33 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | Java 2021 超神之路,很肝~ 中文详细注释的开源项目 RPC 框架 Dubbo 源码解析 网络应用框架 Netty 源码解析 消息中间件 RocketMQ 源码解析 数据库中间件 Sharding-JDBC 和 MyCAT 源码解析 作业调度中间件 Elastic-Job 源码解析 分布式事务中间件 TCC-Transaction
芋道源码
2022/03/04
2.4K0
【支付系统设计从0到1】支付系统账户体系设计(上)
在银行、支付公司以及电商平台的支付系统中,如果不是只做交易转发,而是真正需要做账务处理清结算,一定会涉及到账户体系的设计,一套好的账户体系应该是与业务无关的。账户体系在银行叫核心系统,在支付公司或者电商平台都是虚拟账户体系。在这一篇里我们主要讲讲支付系统的账户体系的产品设计,在下一篇里重点介绍技术设计中需要考虑的问题。
金融民工小曾
2018/09/14
3.1K0
【支付系统设计从0到1】支付系统账户体系设计(上)
系统架构设计之道,论如何构建一个资金账户系统
资金账户是互联网和金融业务中非常常见的系统,尤其是在电商、支付等业务中必不可少。资金账户系统本身其核心模块的整体架构往往并不复杂,但其对于资金安全和可用性的要求非常高,导致建设好一个资金账户系统并不容易。本文以笔者在实际工作中实现的资金账户系统为例,探讨了在资金账户系统设计和实现中会遇到的问题以及相应的解决方案。需要强调的是,笔者也是资金相关系统的入门者,本文目的是抛砖引玉,有误之处,还请大家多多指正、多多探讨、不吝指教,笔者不胜感激。
腾讯云开发者
2023/09/14
3.9K0
系统架构设计之道,论如何构建一个资金账户系统
支付系统
支付系统是连接消费者、商家(或平台)和金融机构的桥梁,管理支付数据,调用第三方支付平台接口,记录支付信息(对应订单号,支付金额等),金额对账等功能,根据不同公司对于支付业务的定位不同大概有几个阶段:第一阶段:支付作为一个(封闭)的、独立的应用系统,为各系统提供支付功能支持。一般来说,这个系统仅限于为公司内部的业务提供支付支持,并且和业务紧密耦合。第二阶段:支付作为一个开发的系统,为公司内外部系统、各种业务提供支付服务,支付服务本身应该是和具体的业务解耦合。
纯洁的微笑
2018/12/21
3K1
支付系统
银行核心系统介绍
从定义与发展、银行核心总架构、银行账户体系、客户信息管理、存款核心、贷款核心、支付结算、卡与账户关系、批处理等几个模块展开
RookieCyliner
2025/06/11
1970
浅析支付系统的整体架构
每个公司根据其业务和公司发展的不同阶段,所设计的支付系统也会有所不同。我们先看看互联网公司的一些典型的支付系统架构。
爱撸猫的杰
2019/03/28
1.6K0
浅析支付系统的整体架构
电商系统架构设计浅析
自上个世纪末电子商务初露端倪以来,电商场景在互联网中的地位愈发不可忽视,逐渐演变成商业生态系统的不可或缺的核心组成部分。在这不断演进的过程中,电商系统设计也经历了创新和发展,以迎合商业的需求和市场的变化。
windealli
2023/12/04
4.7K0
电商系统架构设计浅析
vivo 全球商城:商品系统架构设计与实践
随着用户量级的快速增长,vivo官方商城v1.0的单体架构逐渐暴露出弊端:模块愈发臃肿、开发效率低下、性能出现瓶颈、系统维护困难。
2020labs小助手
2021/11/08
1K0
大众点评支付渠道网关系统的实践之路
业务的快速增长,要求系统在快速迭代的同时,保持很好的扩展性和可用性。其中,交易系统除了满足上述要求之外,还必须保持数据的强一致性。对系统开发人员而言,这既是机遇,也是挑战。本文主要梳理大众点评支付渠道网关系统在面对这些成长烦恼时的演进之路,以及过程中的一些思考和实践。 在整个系统的演进过程中,核心思路是:大系统做小,做简单(具体描述可参考《高可用性系统在大众点评的实践与经验》)。在渠道网关系统实践过程中,可以明显区分出几个有代表性的阶段。 能用阶段 早期业务流量还不是很大,渠道网关系统业务逻辑也很简单,一句
美团技术团队
2018/03/12
1.4K0
大众点评支付渠道网关系统的实践之路
核心交易链路架构设计与演进
随着双11进入千亿时代,电商平台正在向“全球化,娱乐互动化,无线化,全渠道”发展。
春哥大魔王
2019/03/14
2.2K0
核心交易链路架构设计与演进
40页PPT分享万亿级交易量下的支付平台设计
苏宁金融交易量3年内从1000亿增长到万亿+,服务用户3亿+,服务场景从服务于苏宁易购内部生态,扩展到服务全渠道,全场景,多业态的线上线下智慧零售的开放生态圈,一方面要满足公司业务发展要求,快速研发新产品,另一方面要满足818大促,双11等大促设计要求;
数据和云
2019/05/20
2.6K0
40页PPT分享万亿级交易量下的支付平台设计
我的支付总结(二) 系统设计
枕边书
2018/01/04
2K1
我的支付总结(二) 系统设计
相关推荐
支付系统架构设计详解
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档