第三方支付系统架构设计

第三方支付是指具备一定实力和信誉保障,并获得国家颁发运营拍照的独立机构,采用和各大银行签约的方式,通过与银行相关接口对接而促成交易的网络支付的模式。我们熟悉的微信支付和支付宝都属于第三方支付工具,第三方支付工具随着移动设备+互联网的 大范围普及而迅速占领日常生活中各种交易场景,逐渐取代了大部分的中小额现金交易

第四方支付实际上是聚合了多个第三方支付,合作银行的渠道接口,为商户提供一站式的支付解决方案:

账户是支付机构内部为其服务对象(用户、商户、银行等) 创建的物理记录(类似于表格),这些记录包含了对象的关键信息,如机构为对象分配的唯一ID、对象的余额、交易流水、账户状态等等,可以说账户是支付机构识别服务对象的根本。

用户账户: User Account

商户账户: Merchant Account

银行账户: Bank Account

用户账户:

一个用户的账户需要记录什么信息呢? 需要有一个唯一的账户ID 避免记录混乱,需要为用户记录余额,需要记录账户的资金变动过程(流水)

用户账户的行为贴点是什么?

1、很少并发: 同一个时刻通常只会发生一笔交易,因为支付需要用户手动去操作

2、交易频率比较低: 一个普通用户通常一天只会支付数笔

3、余额敏感: 用户对自己的账户余额以及其变动非常敏感

商户账户

1、高并发: 同一个时刻会有很多用户向同一个商户支付、促销活动更甚。

2、交易频率高: 一个商户一天的交易可能会非常大

3、余额变动不敏感: 由于商户伴随着用户的不断支付,余额会快速变化,因此商户本身对该账户余额不敏感

银行账户

1、数量有限: 银行账户映射的是各大银行,因此数量有限。

2、金额流水庞大: 一个大型支付机构和银行的资金交往往来都是以亿为单位,金额特别庞大

3、并发量高: 拥有同一个银行卡的用户非常多,这些用户同时使用银行卡支付、体现的量级也非常大,其量级比单个商户大很多。

4、余额不敏感: 因为是支付机构内部为了映射银行而开具的内部账户。

为什么商户还额外拥有用户账户呢? 这是处于资金管理需要啊,商户账户中的资金并非全部归属商户本身,其中一部分是第三方支付机构将会收取商户的佣金,只有在支付机构收取玩佣金的净额才归属于商户本身,才能任其自由使用

维度张三李四
微信账户1020
银行100500

微信备付金银行账户 余额 30

涉及的用户 有两个,张三和李四,他们分别有自己的微信账户和银行账户,微信也在银行开具了自己的银行账户,成为备付金

用户充值

现在假设 张三想要通过自己的银行卡充值20元到微信余额,资金变动如下图所示:

首先是张三的银行账户向微信备付金账户 划扣20元,成功后微信给张三的微信余额加20元,充值完成

用户在微信中绑定了银行卡,因此不需要用户去银行转账,而是通过微信与银行间的接口来自动完成该笔资金的 划扣

用户提现

假设李四想要将微信中余额提现10元到自己的银行卡,则资金变动如下

首先将李四的微信 余额减去10元,然后微信支付调用银行的接口,从微信备付金账户中转账10元到李四的银行卡中,体现过程结束。

这里的减去李四微信余额时并不是直接减掉,而是先冻结,等银行侧成功转账后再实际减去。

用户转账

假设张三要给李四转账20元,则资金变动如下图:

此时,张三的 余额先减去20,然后李四的余额加20,转账完成。

资金变动汇总

1、在充值时候,微信体系余额增加,则备付金账户和微信账户的变动净额总是相等的。

2、提现的时候,微信体系余额增加,则备付金账户也会增加相同的金额。

3、转账时候,只是支付工具内部账户之前的划转,不涉及资金流入和流入支付体系,因此备付金账户余额不变

用户和商户 也都拥有自己的银行账户和微信支付账户,微信支付作为中间桥梁,将银行、用户、商户连接起来,共同构成了整个交易网络,从交互图中可以看出,支付系统具有很多重要的功能

1、充值。用户将银行卡中的资金转移到微信支付中,成为微信余额的过程。

2、提现。用户或商户将微信余额转移到银行卡的过程

3、支付。这里特指用户将资金从自己的现今账户划到商户的交易账户过程。

4、退款。支付的逆向过程,将资金从商户账户退回到用户账户。

5,结算。用户支付给商户的资金,在收取手续费的时候,划给到商户的现金的账户的过程

领域拆分

1、支付(广义): 负责支付、转账、充值等基础交易能力的提供。

2、退款: 负责将用户支付的资金从商户账户退回到用户账户或者用户银行卡。

3、付款: 负责将支付体系内的资金提取到指定用户银行账户,即提现。

4、结算: 负责按照合同规定的规则,将用户交易账户的资金划转到商户现金账户,并收取交易手续费。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机网络八股文个人总结

1.TCP/IP模型和OSI模型的区别 在计算机网络中,TCP/IP 模型和 OSI 模型是两个重要的网络协议模型。它们帮助我们理解计算机通信的工作原理。以下是它们的主要区别,以通俗易懂的方式进行解释: 1. 模型层数 OSI 模型:有 7 层&#…

Java日志脱敏(二)——fastjson Filter + 注解 + 工具类实现

背景简介 日志脱敏 是常见的安全需求,最近公司也需要将这一块内容进行推进。看了一圈网上的案例,很少有既轻量又好用的轮子可以让我直接使用。我一直是反对过度设计的,而同样我认为轮子就应该是可以让人拿去直接用的。所以我准备分享两篇博客…

高效实现SCRM用户管理的最佳实践与策略

内容概要 在当今竞争激烈的市场环境中,SCRM用户管理显得尤为重要。SCRM(Social Customer Relationship Management)不仅仅是简单的客户管理工具,它更是企业与客户之间建立良好关系的一座桥梁。通过深入了解用户的需求和行为&…

Git - 两种方式撤销已提交到远端仓库的记录并删除提交记录

文章目录 命令行方式附 命令行方式 确定要撤销的提交记录 首先,使用以下命令查看提交历史: git log找到想撤销的提交记录的哈希值(SHA) ,比如9c9c98d6f7f28c41d971f8efd51ed31f9720792c 撤销提交记录 根据需求选择以下…

【C/C++】字符/字符串函数(0)(补充)——由ctype.h提供

零.导言 除了字符分类函数,字符转换函数也是一类字符/字符串函数。 C语言提供了两种字符转换函数,分别是 toupper , tolower。 一.什么是字符转换函数? 顾名思义,即转换字符的函数,如大写字母转小写字母&am…

【排序】5.堆排序(详细图解)

文章目录 前言1.建堆方法的选择2.优先使用向下调整的原因3.堆排序图解(大堆-升序为例子)3.1 向下调整法-建大堆3.2 进行堆排序 4.堆排序代码4.1 向下调整法4.1. 1 小堆4.1. 2 大堆4.2 堆排序 5. 关于小堆——降序6.性能分析 前言 🐱个人主页&…

头歌——机器学习(线性回归)

文章目录 线性回归简述答案 线性回归算法答案 线性回归实践 - 波斯顿房价预测LinearRegression代码 利用sklearn构建线性回归模型示例代码如下: 代码 线性回归简述 简单线性回归 在生活中,我们常常能碰到这么一种情况,一个变量会跟着另一个变…

技术美术百人计划 | 《5.4 水体渲染》笔记

一、水体渲染的波形模拟技术-基于物理 基于物理的波形模拟方法: 欧拉方法(Eulerian approaches)[Kass 1990]拉格朗日方法(Lagrangian approaches) [Stam 1995]欧拉-拉格朗日混合方法(Hybrid approaches&a…

使用 Sortable.js 库 实现 Vue3 elementPlus 的 el-table 拖拽排序

文章目录 实现效果Sortable.js介绍下载依赖添加类名导入sortablejs初始化拖拽实例拖拽完成后的处理总结 在开发过程中,我们经常需要处理表格数据,并为用户提供便捷的排序方式。特别是在需要管理长列表、分类数据或动态内容时,拖拽排序功能显得…

Chrome与火狐的安全功能全面评估

在当今数字化时代,网络安全已成为用户最为关注的问题之一。作为两款广受欢迎的浏览器,Chrome和火狐(Firefox)都提供了多种安全功能来保护用户的在线隐私和数据安全。本文将全面评估这两款浏览器的安全功能,帮助用户更好…

Java-02

笔试算法: 41. 回文串 我们称一个字符串为回文串,当且仅当这个串从左往右和从右往左读是一样的。例如,aabbaa、a、abcba 是回文串,而 ab、ba、abc 不是回文串。注意单个字符也算是回文串。 现在,给你一个长度为n的…

Windows实用工具推荐(uTools+截图工具Snipaste)

闲言少叙,直奔主题 uTools 官网下载地址 uTools官网 - 新一代效率工具平台 这是工具的输入命令的样式,主题颜色可以自己设置,点击右边的头像进入主页 左侧是已经安装的工具,可以根据自己喜好安装各种实用小工具 可以自定义设置呼出菜单的快捷键 这款工具拥有很多功能,我推荐…

ViT面试知识点

文章目录 VITCLIPSAMYOLO系列问题 VIT 介绍一下Visual Transformer? 介绍一下自注意力机制? 介绍一下VIT的输出方式 介绍一下VIT做分割任务 VIT是将NLP的transformer迁移到cv领域,他的整个流程大概如下:将一张图片切成很多个pat…

STM32之串口字库更新

1.串口通讯介绍 串口通讯(Serial Communications)是一种通过串口进行数据传输的通讯方式,通过串行口每次传输一个字节的数据,按照约定的协议进行数据的传输和接收。串口通讯的原理是利用串行口的发送和接收线路,将需要…

【大语言模型】ACL2024论文-06 探索思维链COT在多模态隐喻检测中的应用

【大语言模型】ACL2024论文-06 探索思维链COT在多模态隐喻检测中的应用 目录 文章目录 【大语言模型】ACL2024论文-06 探索思维链COT在多模态隐喻检测中的应用目录摘要研究背景问题与挑战如何解决创新点算法模型1. 知识总结模块(Knowledge Summarization Module&…

第三十一章 单页与多页应用程序概念

目录 一、概述 ​二、单页与多页对比 一、概述 单页面应用(SPA): 所有功能在一个HTML页面上实现,如网易云音乐。 https://music.163.com/ 多页应用:通过多个HTML页面组合实现整个应用网站的功能。 二、单页与多页对比 单页面应用的主要场景&#xff1…

开源 AI 智能名片 2 + 1 链动模式 S2B2C 商城小程序中积分使用价值的拓展策略

摘要:本文围绕开源 AI 智能名片 2 1 链动模式 S2B2C 商城小程序,深入探讨其积分使用价值的丰富策略。详细分析积分兑换礼品、会员升级、积分抵现等方式在该特定商城小程序环境下的应用特点、存在问题及对用户和商城的影响,旨在为商城的优化运…

C++ | Leetcode C++题解之第526题优美的排列

题目&#xff1a; 题解&#xff1a; class Solution { public:int countArrangement(int n) {vector<int> f(1 << n);f[0] 1;for (int mask 1; mask < (1 << n); mask) {int num __builtin_popcount(mask);for (int i 0; i < n; i) {if (mask &am…

【Linux 25】网络套接字 socket 概念

文章目录 &#x1f308; 一、IP 地址概念⭐ 1. IP 地址的作用⭐ 2. 源 IP 地址和目的 IP 地址 &#x1f308; 二、端口号概念⭐ 1. 源端口号和目的端口号⭐ 2. 端口号范围划分⭐ 3. 端口号 VS 进程 ID⭐ 4. 套接字 socket 的概念 &#x1f308; 三、传输层的典型代表协议⭐ 1. …

利用Docker Compose构建微服务架构

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 利用Docker Compose构建微服务架构 引言 Docker Compose 简介 安装 Docker Compose 创建项目结构 编写 Dockerfile 前端 Dockerf…