专栏首页金融民工小曾【支付系统设计从0到1】支付系统流程和典型架构设计

【支付系统设计从0到1】支付系统流程和典型架构设计

支付业务的核心流程

1.支付应用根据用户选择的支付工具来调用对应的支付产品来执行支付。 2.支付产品通过支付网关根据支付工具、渠道费率、接口稳定性等因素选择合适的支付渠道来落地支付。 3.支付渠道调用银行、第三方支付等渠道提供的接口来执行支付操作,最终落地资金转移。

支付系统的典型架构

支付工具

支付工具是由银行或者其他支付机构发行的,能够发起支付指令,用于债务清偿或者资金转移的证件,比如支票、汇票、本票、银行卡等。

在金融机构中,支付工具一般分为三类:

贷记支付工具:资金被划入银行应收账户 借记支付工具:结算资金转移反映在银行账户上是债务的减少 通用支付工具:银行卡、电子支付(例如微信、支付宝)

支付应用

狭义来讲是指提供给最终用户在特定场景下使用的产品。 比如扫码收银、二维码支付、打赏、众筹、POS支付、生活缴费、信用卡返款、手机充值等。 这些应用是建立在支付产品的基础之上,直接面向最终的用户提供服务。

广义来讲,可以按照使用对象分为针对最终用户的应用、针对商户的应用、针对运营人员的运营管理、BI和风控后台等。

支付核心系统

设计原则

支付网关、支付产品和支付渠道的职责分工为:

1.按照支付能力来划分支付产品。 2.同一支付能力的公共支付流程,在支付产品中实现。 支付产品提供的是和支付渠道无关的、和支付能力流程相关的功能。 3.支付产品中,和支付能力无关的公共功能,在支付网关上实现。

支付网关

支付网关是对外提供服务的入口,它将支付产品接口中和业务无关的功能提取出来,在这里统一实现,支付网关本身并不执行任何支付相关的业务逻辑。

在支付网关上实现的主要功能:

API路由。在聚合支付场景下,当有多个支付产品可以提供支持时,使用支付网关可以让接入方对接时无需考虑支付产品的部署问题。 接口安全: 熔断、限流与隔离。 这对支付服务来说尤为重要。 这是微服务架构的基本功能,本文不做描述。

支付产品

支付产品模块是按照支付场景来为业务方提供支付服务,在架构上位于支付网关之后,支付渠道之前。 它根据支付能力将不同的支付渠道封装成统一的接口,通过支付网关来对外提供服务。所以,从微服务的角度,支付产品本身也是一个代理模式的微服务,它透过支付网关响应业务方请求, 进行一些统一处理后,分发到不同的支付渠道去执行,最后将执行结果做处理后,通过支付网关再回传给业务方。

支付产品中实现的主要功能:

风控拦截: 风控是和支付产品有关,不同产品的风控措施、处理对策也是不同的,所以风控是在产品层实现。 支付路由: 路由也是和产品有关。不同产品路由策略也不同。 参数校验: 这也是和支付产品相关的,不同的产品接口其参数也不同。 支付流程: 生成交易记录、落地渠道执行支付、同步和异步通知等操作。

如下功能,可以在产品层也可以在网关层实现:

身份验证: 确认付款方、收款方、渠道是否有执行当前操作的权限。 在那一层实现取决于这些信息是否有提炼为公共行为。 验签: 对接口参数进行签名并验证其签名。这是为了避免接口被盗刷和篡改的必要手段。如果对各个接口采用统一的签名规则,则可以在网关层实现。

支付渠道

支付渠道模块是调用支付渠道接口执行真正的资金操作。

支付核心系统交易请求数据流

1.支付请求被发送到支付网关。网关对这个请求进行一些通用的处理,比如QPS控制、验签等,然后根据支付请求的场景(网银、快捷、外卡等),调用对应的支付产品。 2.支付产品对用户请求进行预处理,包括执行参数校验、根据支付路由寻找合适的支付通道、评估交易风险、生成订单、调用渠道落地执行支付、响应渠道的结果并将交易结果通知到商户侧。 3.支付产品调用支付渠道执行支付。这个请求并不是直接落地到渠道上,而是通过支付渠道前置来封装,由支付渠道前置来完成和渠道的交付。 支付产品是按照可以提供的支付服务来设计的。 4.支付渠道前置,负责和支付渠道之间的通讯,调用支付渠道接口完成最终的支付操作。


本文参考“凤凰牌老熊”、“梁川”、“路杨”、“叉一”等相关支付系统架构设计文章结合自己支付系统设计经验整理。

坚持原创,只说真话,我就是金融民工小曾。欢迎关注公众号金融民工小曾,欢迎媒体或者其他公众号转载,请注明来自微信公众号金融民工小曾

本文分享自微信公众号 - 金融民工小曾(jrmgxz),作者:金融民工小曾

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-08-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【支付系统设计从0到1】支付业务调用方式有哪些?为什么微信公众号支付采用JSAPI方式?

    对于大多数做支付系统设计的同学来说,对于支付渠道提供的调用方式都不陌生,相信大家对这些支付渠道的调用方式也了如指掌。

    金融民工小曾
  • 【支付系统设计从0到1】写在前面

    支付是商业变现必不可少的环节,而每个公司,因为业务形态并不太一样,导致开发的支付系统不尽相同。

    金融民工小曾
  • 无卡支付、快捷支付、代扣有什么区别?

    无卡支付,指无须开通网银,利用支付验证要素,结合安全认证,让持卡人完成互联网支付的支付方式。具有统一、快速、便捷三大特点。一般来说,交易时录入四要素即可完成支付...

    金融民工小曾
  • 一文读懂:完整的支付系统整体架构!

    在不同的公司由于接入渠道和应用的差异,对支付产品分类略有不同。综合支付场景和流程,支付产品可以分为如下几类:

    Java架构
  • 我的支付总结(一) 基础概念

    前言 做支付一年多了,公司的支付平台刚搭建好进的公司,经历了从一开始的各处漏洞,到代码重构后系统稳定运行,再到功能的逐渐完善和易用性提升,最后到现在追求系统效率...

    枕边书
  • 刷脸支付这事,靠谱吗?

    今日,因为美团取消支付宝一事,双方被顶上微博热搜,也引发了业界对于“支付”市场的探讨。

    镁客网
  • 解读银行卡支付背后的原理

    虽然现在我们主流的支付方式是使用支付宝/微信支付,但是当我们余额不足,或者选择从银行卡扣款时,将就会使用到银行卡支付。

    andyxh
  • “青蛙”捕“蜻蜓”,“蓝鲸”跃起,谁家在搅弄刷脸支付的深水?

    一方面,支付虽然一直是交易的一个关键环节,但是在传统模式下支付手段较为单一,尚不足以拎出来单独谈论。

    用户2908108
  • 架构设计-支付宝、京东、美团、去哪儿的支付系统架构整体设计详解!!!

    链接:https://blog.csdn.net/u012562943/article/details/81475489

    用户5224393
  • 姚建东:互联网深水区的移动支付

    移动互联网的扑面而来搅动了第三方支付的一江春水,移动支付在传统厂商左顾右盼的踌躇间成为新产业经济的关键词。是方兴未艾却挑战重重的二维码支付一枝独秀,还是踌躇多年...

    腾讯研究院

扫码关注云+社区

领取腾讯云代金券