支付系统架构模块划分与设计
目录
一、支付产品
二、产品分类
1、快捷支付
2、网银支付
3、协议支付
4、平台支付
5、外卡支付
6、话费支付
7、虚币支付
三、模块功能
1.签约和解约
2.支付
3.撤销和退款
四、业务流程
一、支付产品
支付产品模块是按照支付场景来为业务方提供支付服务。这个模块一般位于支付网关之后,支付渠道之前。 它根据支付能力将不同的支付渠道封装成统一的接口,通过支付网关来对外提供服务。
所以,从微服务的角度,支付产品本身也是一个代理模式的微服务,它透过支付网关响应业务方请求, 进行一些统一处理后,分发到不同的支付渠道去执行,最后将执行结果做处理后,通过支付网关再回传给业务方。
支付产品在支付系统参考架构图中的位置如下图所示:
二、产品分类
在不同的公司由于接入渠道和应用的差异,对支付产品分类略有不同。综合支付场景和流程,支付产品可以分为如下几类:
支付产品是由支付系统对支付渠道进行封装而对业务方提供的支付能力。整体上来说,可以提供如下支付产品:
1、快捷支付
用户在完成绑卡之后,在支付的时候,不需要再输入卡或者身份信息,仅需要输入支付密码就可以完成支付。
对于小额度的支付,甚至可以开通小额免密,直接完成支付。
这种支付方式不会打断用户的体验,是目前主要的在线支付方式。
一般快捷支付产品是通过封装银行或者第三方支付平台提供的快捷支付接口或者代付接口来实现的。
2、网银支付
用户在支付的时候,需要跳转到银行网银页面来完成支付。在网银页面,需要输入用户的卡号和身份信息。
这种支付方式会中断用户当前的体验,一般仅用于PC Web上的支付。
网银支付是封装银行提供的网银支付来实现。
3、协议支付
协议支付也称代收或者代扣,代收指渠道授权商户可以从用户的银行账户中扣款,一般用于定期扣款,不用于日常消费。比如水电煤气、有线电视费。
协议支付是通过封装银行、第三方支付提供的代扣或者快捷接口来实现。
4、平台支付
使用微信、支付宝等第三方支付平台来完成支付。
使用时,一般需要用户预先安装支付平台系统(手机上),注册并登录到第三方支付平台,并且已经在该平台上完成绑卡等操作。
由于微信、支付宝已经被大量使用,用户也产生对这些平台的信任,平台支付往往是电商公司的主要支付方式。
5、外卡支付
对于由海外支付的需求,还需要提供外卡支付支持。
国内不少支付渠道都能支持外卡支付,如支付宝全球购等。直接对接Paypal,也是目前用的最多的外卡支付渠道。
6、话费支付
对于有包月小额类型的支付,手机话费也是一个不错的选择。
目前也有一些平台可以支持话费支付,比如虹软、联动优势等。
7、虚币支付
不少公司会有自己的虚拟币,比如京豆、Q币等。
三、模块功能
支出产品根据其支付能力,对外提供不同的功能。整体上来说,一般支付产品需要提供如下接口:
1.签约和解约
在快捷支付、代扣等产品中,用户在使用前,需要先完成签约。
签约可以在渠道侧进行,一般第三方支付采用这种方式,当电商需要接入时,让第三方给授权。 银行和银联的签约一般是在电商侧进行, 电商侧负责收集用户的信息,调用银行和银联的接口进行签约。
签约后,后续的支付行为就使用签约号来进行,无需再输入个人信息。 和签约相对应,解约则是取消签约关系。
2.支付
支付是少不了的操作。 不同产品中支付行为不一样。
快捷支付是在电商服务器上发起,请求渠道进行支付;
网银支付则是跳转到银行支付网关上进行; 而账户支付、虚币支付,则是在本地进行的。
3.撤销和退款
有些渠道区分撤销和退款,比如银联、农行等,撤销指取消当天在渠道侧未结算的交易; 而退款仅针对已经结算的交易。有些渠道则不作区分。
查询签约状态
对于需要签约的交易,可以通过这个接口来查询签约状态。
查询订单状态
通过这个接口来查询支付清单状态以及退款的订单状态。
预授权
预授权交易用于受理方向持卡人的发卡方确认交易许可。受理方将预估的消费金额作为预授权金额,发送给持卡人的发卡方。
预授权撤销
对已成功的预授权交易,在结算前使用预授权撤销交易,通知发卡方取消付款承诺。预授权撤销交易必须是对原始预授权交易或追加预授权交易最终承兑金额的全额撤销。
预授权完成交易
对已批准的预授权交易,用预授权完成做支付结算。
预授权完成撤销
预授权完成撤销交易必须是对原始预授权完成交易的全额撤销。预授权完成撤销后的预授权仍然有效。
对账
通过FTP或者HTTP方式提供对账文件供商户侧对账。
余额查询
查询商户的交易账户的余额,避免由于余额不足导致交易失败。 注意,不是客户的余额。 当然,不是所有的银行或者第三方支付都提供这个接口。
四、业务流程
上述操作,除了对账、查单外,每个操作实现的主流程,一般会包括参数校验,支付路由,生成订单,风险评估,调用渠道服务,更新订单和发送消息这7步,对于一些比较复杂的服务,还会涉及到异步同通知处理的步骤。
支付系统架构模块划分与设计相关推荐
- 架构设计-支付宝、京东、美团、去哪儿的支付系统架构整体设计详解!!!
架构设计-支付宝.京东.美团.去哪儿的支付系统架构整体设计详解!!! 支付产品模块是按照支付场景来为业务方提供支付服务.这个模块一般位于支付网关之后,支付渠道之前. 它根据支付能力将不同的支付渠道封装 ...
- 一文看懂互联网支付系统架构
一.支付系统的简介 什么是支付系统?自古以来,所有的商业活动都会伴随着经济的收款与付款行为.随着时代的发展,记录收付款行为的方式不断迭代:古代的钱庄通过手工(算盘)记账,工业社会通过收银机机械记账-- ...
- 解密支付系统,来看如何构建理想的支付系统架构
货币是人类发展史上一个极为重要的角色,它不仅是市场上物品交换的媒介,更是人类文明发展史上里程碑式的代表物. 几千年前人类在贸易市场上使用实物交换,可以想象一下我们的祖先进行市场贸易:一个人手上有羊奶, ...
- 启赟金融 CTO 马连浩:跨境支付系统架构
10年支付行业老兵 \\ 马连浩, EGO 上海分会会员.启赟金融的技术合伙人\u0026amp; CTO. \\ 我在 2017 年加入启赟金融(以下简称"iPayLinks") ...
- 《点融支付系统架构的演进》阅读有感
<点融支付系统架构的演进>阅读有感 在点融,支付最开始是作为一个模块存在于点融的大系统之中,它缺乏统一实现.扩展性较差,我们有大概有三到四个支付渠道,每个支付渠道都有自己的端到端的实现.相 ...
- 去哪儿网支付系统架构演进
作者简介:吕博,去哪儿网金融事业部研发工程师,毕业于吉林大学,2012年加入去哪儿网. 致力于支付平台研发和支付环节的基础服务建设. 正文 去哪儿支付系统自 2011 年搭建以来,在五年的时间里逐渐从 ...
- 《去哪儿网支付系统架构演进全历程》阅读有感
<去哪儿网支付系统架构演进全历程>阅读有感 支付系统1.0 新的业务系统初建时,业务逻辑相对简单,业务量也比较小,为了能够快速实现功能,发布上线,大多数团队都会把所有的逻辑都耦合在一个系统 ...
- 支付系统架构V1.0
1.支付系统产品 POS刷卡:商场.大型店铺POS机刷银行卡收款: POS扫码:POS机扫用户微信.支付宝等付款码收款: 扫码枪/扫码盒子扫码:超市.小微商户扫用户 微信 .支付宝等付款码收款: 静态 ...
- 去哪儿网支付系统架构演进(下篇)
上篇给大家介绍了去哪儿支付系统架构演进的服务化拆分(点击阅读原文可查看上篇内容),接下来介绍一下在服务化拆分过程中遇到的一些问题与挑战,拆分过程中的DB处理.异步化,监控&报警等内容. 2.2 ...
- 点融支付系统架构的演进
点融支付系统架构的演进 支付产品模块是按照支付场景来为业务方提供支付服务.这个模块一般位于支付网关之后,支付渠道之前. 它根据支付能力将不同的支付渠道封装成统一的接口,通过支付网关来对外提供服务.所以 ...
最新文章
- JAVA 设计模式 享元模式
- 第十章 Linux下RPM软件的安装与卸载
- [转] android 中 pinyin4j的使用
- 图像低频高频区域分离
- 大数据在高校的应用场景_高校大数据及AI应用解决方案
- MyBatis代码生成器-Example讲解
- 编写自己的Shell解释器-3[转]
- NO.2_python_scrapy_反爬虫(随机请求头IP代理)取消链接去重
- 链表node中保存的是什么_Redis源码解析一 --链表结构
- Linux下jdk配置环境变量
- 计算机信息管理相关课题论文,计算机信息管理课题论文[].doc
- 高并发内存占用持续下降_师兄,为什么删除数据后,Redis内存占用依然很高?...
- 区块链的安全和智能合约
- 信息学奥赛C++语言:语文成绩
- 7-5-无向图生成树-图-第7章-《数据结构》课本源码-严蔚敏吴伟民版
- 拥抱开源未来 百度Doris进入顶级开源社区Apache
- UVA 1590 IP Networks
- python可执行文件 情人节快乐_各位情人节快乐, Python帮忙撒狗粮, 我连夜做了这个程序!...
- c语言实现滑动窗口类,C语言模拟滑动窗口协议
- Numpy 学习笔记 ——IndexingSlicing 几点心得
热门文章
- png在线转换icns
- Go的研习笔记-day12(以Java的视角学习Go)
- 2021-1016-复盘 强势股-风口综合实战
- 如何把桌面路径设置到D盘
- 读书百客:《念奴娇·赤壁怀古》赏析
- cvc降噪和主动降噪_主动降噪技术有哪些?说说什么是ANC、ENC、DSP、CVC降噪
- 流程图怎么画?绘制一个流程图的简单操作方法
- POJ P3764 The xor-longest Path
- win7 增加Internet时间服务器
- Unable to start ServletWebServerApplicationContext due to missing ServletWeb