当前位置: 首页 > news >正文

第三方支付系统架构设计

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

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

账户是支付机构内部为其服务对象(用户、商户、银行等) 创建的物理记录(类似于表格),这些记录包含了对象的关键信息,如机构为对象分配的唯一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.mrgr.cn/news/64756.html

相关文章:

  • 年度融资超30亿!人形机器人能为连接器和线束线缆带来什么机遇?
  • [实战-11] FlinkSql 设置时区对TIMESTAMP和TIMESTAMP_LTZ的影响
  • 数据迁移: 安全高效转移数据, 满足企业业务需求和技术改进
  • 全面解析:大数据技术及其应用
  • 老电脑不能装纯净版windows
  • scp免密上传文件
  • Django3 + Vue.js 前后端分离书籍添加项目Web开发实战
  • 细说STM32单片机USART中断收发RTC实时时间并改善其鲁棒性的方法
  • celery在django项目中实现并发任务和定时任务
  • 顺德自闭症全托管学校:专业照顾,细心呵护
  • C++笔试题之实现一个定时器
  • OCC布尔接口调用 ,交并差等,举例说明
  • 【机器学习】机器学习与成像技术:开启智能视觉的新篇章
  • 干货指南:原生住宅IP代理如何判断真伪?
  • 编程入门:大学新生的指南
  • stm32f103c8t6的原理图
  • 用插值公式实现滚动进度条动画效果
  • rust编写的系统监测器
  • Vue进阶指南:Watch 和 Computed 的深度理解
  • 【电力系统】MATLAB环境下基于神经网络的电力系统稳定性预测
  • c语言-8进制的表示方法
  • 【基础语法】Java Scanner hasNext() 和 hasNextLine() 的区别
  • Netty 组件介绍 - ChannelFuture
  • ASRPRO 记事本2
  • SICTF Round #4|MISC
  • YOLOv6-4.0部分代码阅读笔记-figure_iou.py