通用支付系统设计

news2024/12/23 15:54:43

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

  1. 支付系统总览

核心系统交互

 

业务图谱

 

核心系统解析

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

交易核心

 

基础交易类型抽象

 

支付核心

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

 

支付行为编排

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

 

异常处理

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

 

渠道网关

 

资金核算

 

  1. 服务治理

平台统一上下文

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

商户、订单类型、订单场景、支付机构、链路编号

数据一致性治理

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

CAS校验

 

幂等 & 异常补偿

 

对账

 

准实时对账

 

异步化

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

消息异步化

外部支付调用异步化

 

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

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

 

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

异步并行

 

资金核算异步化

 

热点账户账务单独处理

 

记账事务切分

 

生产实践

性能压测

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

稳定性治理

监控先行,关键指标管控

核心链路剥离

服务依赖治理

核心链路分离

 

服务依赖降级

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/584357.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【人脸识别】insightface 使用记录和搭建服务注意点 从0到1

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言1.开始1.1 前置1.2 再次运行,人脸检测跑通 前言 人脸识别项目,再走一遍。之前是公司老人留下的,没部署过,没交付…

【HMS Core】Health Kit关于获取历史数据问题

【问题描述1】 应用已经开通了历史数据访问权限,同时用户在授权页面已经勾选了”历史数据“项,然后我们是调用healthkit的rest接口查询健康数据,那么是否用户授权之前一年的健康数据都能被查询到呢? 【解决方案】 当用户授予应用…

5月底了,让我看看有多少准备跳槽的····

前两天跟朋友感慨,今年的铜三铁四、裁员导致好多人都没拿到offer!现在已经5月底了,具体金九银十只剩下3个月。 对于想跳槽的职场人来说,绝对要从现在开始做准备了。这时候,很多高薪技术岗、管理岗的缺口和市场需求也出来了。 所…

字节跳动测试岗,3面都过了,HR告诉我这个原因被刷了...

说在前面 面试时最好不要虚报工资。本来字节跳动是很想去的,几轮面试也通过了,最后没offer,自己只想到下面几个原因: 虚报工资,比实际高30%; 有更好的人选,这个可能性不大,我看还在…

6个月的测试,来面试居然要18K,我一问连8K都不值

2023年4月份我入职了深圳某家创业公司,刚入职还是很兴奋的,到公司一看我傻了,公司除了我一个自动化测试,公司的测试人员就只有2个开发3个前端1个测试还有2个UI,在粗略了解公司的业务后才发现是一个从零开始的项目&…

笔记本电脑正常开机但是桌面变成错误代码怎么办?

笔记本电脑正常开机但是桌面变成错误代码怎么办?有用户将自己的笔记本电脑开机之后,电脑可以正常开启,但是系统在加载的过程中,突然变成了一些错误代码,无法正常的到达桌面上。那么这个问题怎么去进行解决呢&#xff1…

操作系统学习系列(1.启航)-操作系统基本概念

文章目录 前言操作系统基本概述中断与硬件的基本交互基本地址地址概念启动流程应用程序与操作系统的关系 Hello World启动总结 前言 本系列博文主要用于第二阶段深入了解的408专业内容考研使用。也就是说在开启本系列之前,最好已经对408有基本的了解。重复的基础概…

推动网络安全的三大问题

网络攻击已成为技术主管和企业最关心的问题之一。预计到2025 年,网络犯罪将使公司每年损失 105 亿美元。2021 年网络犯罪的预估成本为 6.1 万亿美元,预计每年增长 15%。 企业正在增加网络安全预算以保护其资产。2022年,网络安全职位的发布数…

私域运营需要怎么样才能做好?

进入2023年,越来越多品牌商家意识到,“私域运营”已经成为品牌营销的必选项。作为私域运营的核心阵地,微信凭借社群、企业微信、小程序、视频号等多个生态插件,为品牌私域经营提供了很多创新思路,其中“社群微信管理”…

01.GATK肿瘤基因变异最佳实践SnakeMake流程:WorkFlow简介

<~生~信~交~流~与~合~作~请~关~注~公~众~号生信探索> 代码地址 https://jihulab.com/BioQuest/smkhsshttps://github.com/BioQuestX/smkhss GATK best practices workflow Pipeline summary SnakeMake workflow for Human Somatic short variants (SNPINDEL) Expected fa…

JAVA开发(小程序商城价值画像)

小程序商城是一种流行的电子商务形式&#xff0c;允许用户通过微信或其他应用程序直接购买商品。随着消费者对在线购物的需求和期望不断增加&#xff0c;小程序商城已经成为一个不可或缺的销售渠道。本文将探讨小程序商城的价值画像&#xff0c;包括其优点、挑战和未来发展趋势…

接口测试|Fiddler弱网测试

Fiddler进行弱网测试 弱网测试 概念&#xff1a;弱网看字面意思就是网络比较弱&#xff0c;我们通称为信号差&#xff0c;网速慢。 意义&#xff1a;模拟在地铁、隧道、电梯和车库等场景下使用APP &#xff0c;网络会出现延时、中断和超时等情况。 在这里插入图片描述 Fidd…

子域名接管劫持

什么是域名劫持&#xff1f; 域名劫持也被称为DNS劫持&#xff0c;它通过攻击域名解析服务器、伪造域名解析服务器的方法&#xff0c;拦截目标的域名解析请求&#xff0c;将目标网站域名解析到错误的地址上&#xff0c;让攻击目前无法回应访问。 子域名接管漏洞通常被滥用于以…

大数据简介

大数据简介 什么是大数据 ​ 最近几年&#xff0c;IT行业最火的名词中&#xff0c;少不了"大数据"、"人工智能"、"云计算"、"物联网"、"区块链"等等这些名词。针对于"大数据"这个名词&#xff0c;现在更是全国老…

嵌入式软件测试笔记2 |TEmb方法概述

2 |TEmb方法概述 1 TEmb简介2 TEmb工作原理3 系统特性4 TEmb通用元素4.1 生命周期4.2 技术4.3 基础设施4.3.1 测试环境4.3.2 工具和测试自动化4.3.3 办公环境 4.4 组织 5 组合专用测试方法的机制5.1 常用系统特性5.2 特定方法5.3 LITO矩阵 1 TEmb简介 TEmb是一种方法&#xff…

如何加快和自动化企业的招标过程?

材料和劳动力成本已经上升到了过去40年的比较高水平&#xff0c;而建筑业是竞争较激烈、较复杂的行业之一&#xff0c;分析供应链报价的需求也在增加。数字平台如何支持这个行业&#xff1f; 市场上有各种各样的管理系统&#xff0c;如何才能选择尤为适合企业的需求呢&#xf…

安卓应用实现自动升级

应用发布后&#xff0c;要实现灰度升级控制&#xff0c;如果只依赖各家应用市场是不够的&#xff0c;需要自己在应用中控制升级逻辑。并且每家应用市场上架审核也是一件很麻烦的事情&#xff0c;尤其像至简网格这样的应用&#xff0c;没在应用市场上架&#xff0c;更不可能依赖…

Unity WebGl和前端(Angular)相互调用(含跨域问题)

在Unity官方文档中就已经介绍了Unity和JS相互调用的问题&#xff0c;但是我们实际的应用中往往是使用iframe来展示WebGL。这样不但是webgl和js相互调用的问题&#xff0c;还包含了iframe跨域的问题。 我们的项目中前端使用的是angular框架&#xff0c;就以angular为基础来说一…

关于谷歌云计算进行Python yolov5的使用操作(简略版)

关于谷歌云计算的使用操作&#xff08;简略版&#xff09; 谷歌云盘&#xff1a;https://drive.google.com/ 翻墙订阅&#xff1a;链接 谷歌云盘创建操作&#xff1a; 1 2 3.添加Colaboratory关联 设置免费的GPU 它是很容易更换默认的硬件&#xff08;None,GPU,TPU&#xff…

群智能算法-粒子群1

一.基本理念 粒子群算法(PSO),最早由两位外国科学家在1995年提出&#xff0c;该算法源自对鸟类捕食问题的研究。 我们将鸟类补食性原则分为一下三个基数&#xff0c;每组基数对应一个粒子&#xff0c;而每组粒子我们将其称之为种群。所以我们将其在细分具体&#xff0c;基数一&…