支付中台的几个面向:支付业务、资金核算、面向风控等切面

手哥架构宝典之支付系统1.0发布后,很多架构师朋友表示受益匪浅,询问支付系统2.0版本什么时候放出来,今天刊发出《架构宝典》支付系统2.0版本,以飨读者。

00 概述

在 1.0 的支付系统中,我们遇到了诸多问题。痛定思痛,我们决心对支付系统做一次架构升级。那么,怎么去做支付系统的架构升级呢?我们从两个方面来进行架构升级梳理:

  • 巨大的单体应用必须要拆分,在拆分之前,需要确定业务、系统边界,并对支付业务进行建模。
  • 构建完整的资金核算体系,以能够清晰地知晓各类业务的流水、收入、支出等。

01  支付系统 2.0 – 拆分系统边界

拆分单体应用之前,从三个维度对边界进行拆分:

  • 基于业务,拆分为面向支付业务和面向资金核算两套体系。
  • 基于场景,例如依据支付流程等进行拆分。
  • 基于技术实现,例如出于对系统的性能等考虑拆分。 

我们将支付系统中的核心系统拆分为收银台、交易核心、支付核心、渠道网关、账务系统、会计系统、清算系统、合规系统等。

如图 14.4 所示的是核心支付链路流程示意图。

得益于蘑菇街强大的基础平台及中间件系统,比如 RPC 服务框架 Tesla、数据库中间 件 Raptor、可靠的消息中间件 Corgi、数据库事件变更中间件 Pigeon、数据配置推送平台Metabase 及分布式缓存 KVStore 等,我们在 2015 年第四个季度对支付系统做了整体的服务化拆分,拆分后的架构如图 14.5 所示。

下面大致介绍一下各系统的功能:

  • 面向支付业务,可拆分为收银台、交易核心、支付核心、渠道网关。
  • 面向资金核算,可拆分为会计系统、账务系统、清算系统、合规系统。
  • 其他基础服务的拆分,比如支付会员服务、支付风控和对账系统等。

02 支付系统 2.0详解

以上讲述了支付系统 2.0 的整体架构,接下来对各个核心系统的拆分和实现进行具体介绍。

2.1 交易核心

从刚才的支付链路中可以看出,交易核心作为支付系统入口,对接上层的业务系统。在 2015 年年底,支付系统有着数十张支付交易表,如何抽取合适的业务模型是最重要的事 情。另外,为了数据的统一性,我们对分散的数十张支付交易表进行了多表聚合,以及订 单关联。同时,支付的接入管控也放在了交易核心中实现,整体架构如图 14.6 所示。

2.1.1 基础交易类型抽象

在交易核心中做基础交易类型的模型抽象,主要基于对支付的理解。如图 14.7 所示, 电商交易的预售和广告营销的 CPC(Cost Per Click 的缩写,每次点击付费广告)购买都是用户直接购买并支付给收款方,那么我们可以将该行为抽象为即时交易,即从 a 用户到 b 用户的直接支付行为。

基于对业务的分析和理解,我们对交易核心的业务进行了抽象,抽象为 10 多种交易类型:

  • 比较熟悉的交易类型:担保交易、即时交易、充值、提现、担保退款、即时退款、转账等。
  • 不太常见的交易类型:提现退票、退款退单、异常退款、充值退款等。

2.1.2 多表聚合及订单关联

对数十张支付交易表进行多表聚合是基于一张主表来实现的。而在这种情况下,业务订单如何保持唯一是我们需要考虑的事情。考虑到需要对上层业务保持极少的侵入性,在新设计的支付交易表中有专门的字段用于做唯一键约束:业务识别码+业务订单号。

另外,做一个小功能,使任何订单都可以追溯到初始订单,如图 14.8 所示,担保交易下的所有单子都可以找到,同时也能追溯到初始订单。

2.1.3 支付管控

鉴于交易核心为支付平台的入口,针对 1.x 支付系统中支付接入无授权问题,我们也在交易核心里面做了支付接入的管控 —— 授权和鉴权。

为任何一个接入支付的业务分配唯一的业务标识码及授权的 Token。从而使得业务在支付接入时,需要带上 Token 和加盐过的加密数据。2.2 支付核心

我们将 1.0 支付系统中的支付模块切分为两层——交易核心和支付核心。交易核心面向 上游业务,支付核心面向支付系统内部。

支付核心整体架构如图14.9所示,

我们对支付核心同样进行了支付类型的抽象:充值、提现、退款、转账,任何一个交易核心订单请求都能由这 4 种基础支付类型组合进而完成支付行为。

另外,支付核心需要基于系统、用户指令等完成各种各样的支付行为。按照简单的做法,我们可以在不同的分支上实现各种支付行为,但是这样可能会导致支付行为耦合,并使支付逻辑判断变得复杂。基于这种原因,我们对支付工具进行组件化拆分,封装为数十种支付工具,通过支付编排来执行支付行为。2.2.1 支付编码

支付交易订单通过支付规则生成具体的支付请求(即支付核心记录),支付请求通过支 付指令编排规则获取一组支付工具包,通过支付执行器完成对支付工具的调用执行。

这样的封装使我们可以实现插件式开发,以及支付规则可配置化,继而让支付核心内 部的支付工具互不影响并系统地简化。整个编排过程如图 14.10 所示。

2.2.2 异常处理机制

支付核心有一个比较重要的功能,即如何对支付异常进行处理——支付过程中的重复支付、部分支付、金额不一致、全额退款等异常都需要做异常退款处理。如图 14.11 所示,以部分支付为例,我们做了一个异常管理组件来处理这种异常,在 “红包支付+优惠券支付+网关支付”组合支付中对每次的支付都进行上报,通过异常管理组件对部分支付成功的行为进行反向异常退款。

2.3  渠道网关

我们对渠道网关系统进行拆分,渠道网关接受来自支付核心的支付请求,并与第三方支付进行交互。渠道网关同样抽象了基础服务类型:支付、退款、提现、签约、查询等。同时,出于性能方面的考虑,将网关系统切分为两个子系统——网关核心和网关前置:

  • 网关核心负责渠道路由、渠道订单的管理及渠道分组。
  • 网关前置负责渠道适配、报文转换及外部通信。 

渠道网关系统的整体架构如图 14.12 所示。

2.4 资金核算体系

资金核算体系主要由会计系统、账务系统、清算系统和合规系统组成,整体架构如图14.13 所示。

  • 会计系统: 对业务运转信息进行管理、核查、披露,展现资金的来龙去脉。
  • 账务系统: 由支付核心驱动,记录管理账户信息,直接反映用户的账户余额和资金变更明细。
  • 清算系统: 由支付核心驱动,实现机构间资金关系应收应付的主被动清算及资金划拨。
  • 合规系统: 基于支付数据,向资金监管方同步交易信息流和资金流,从而契合央行的合规监管要求。

截至目前,我们对支付系统中面向业务的体系及资金核算体系进行了介绍。

03 统一平台业务上下文

1.0 支付系统单体应用通过确定系统边界、业务建模拆分之后,整个支付平台被拆分为几十个服务,那么如何保障业务信息在服务间流转而不丢失是我们需要考虑的问题,就好比如何让各个系统交互时都讲普通话,而不是讲方言。针对这个问题,我们在平台中做了统一上下文的要素信息(唯一业务标识码),使其在整个支付平台链路中全程传递,具体要素如下。

  • 商户: 诸如蘑菇街电商交易、美丽说电商交易等。
  • 订单类型: 基于交易核心的业务类型,诸如担保交易、即时交易、转账、提现等。

订单场景: 诸如电商预售、营销广告购买等。

支付机构: 诸如支付宝、微信等。

通过统一平台业务上下文,我们能够在任何一个系统中清晰地看出是哪种业务,在哪种场景下,使用哪个渠道做了什么事情.

预知后事如何,且听下回分解 –

本文转载自中生代技术。

原文链接:https://mp.weixin.qq.com/s/sLcvEEBmWv22W2c4Oz2C5g

Image placeholder
bowmanjin
未设置
  17人点赞

没有讨论,发表一下自己的看法吧

推荐文章
​中台战略:业务中台的8个设计原则

业务中台是一个充满生命力的个体,它承载业务逻辑、沉淀业务数据、产生业务价值,并随着业务不断发展进化。它的设计遵循如下图所示的8个原则。业务中台设计的8大原则01 服务松耦合原则(1)面向接口实现这是服

一个多业务、多状态、多操作的交易链路?闲鱼架构这样演进

前言双十一刚刚结束,成交额2684亿震惊全世界,每秒订单峰值达54.4W笔。在闲鱼2000万DAU,交易数额同样增长迅速的今天,我们如何保障交易链路的稳定与快速支撑业务?这篇文章从客户端开发的角度,介

1月第1周业务风控关注 | 四部门联合印发App违法违规收集使用个人信息行为认定方法

易盾业务风控周报每周报道值得关注的安全技术和事件,包括但不限于内容安全、移动安全、业务安全和网络安全,帮助企业提高警惕,规避这些似小实大、影响业务健康发展的安全风险。1、四部门联合印发App违法违规收

中台的末路

从15年开始,到19年现在为止。各大公司都在吹捧中台理念。仿佛中台是业务复杂性的救世主。是某些架构师和PM的新出路。各种割韭菜的讲中台的课程层出不穷。 当然,吹牛逼的时候大家都是拣好的说,苦逼的东西就

2019年度总结:支付宝为何多次亮相各大国际顶会

2019年,是人工智能与机器学习技术快速发展的一年。对于蚂蚁金服而言,过去一年的人工智能技术、产品、解决方案及研究成果已经在NeurIPS、KDD、ICML、SIGMOD、SIGIR等各大国际顶会上陆

被前端业务倒逼出来的中台?

数字化智能时代,数据成为了新的生产资料,也是蕴含丰富价值的矿藏。随之而来的打破数据孤岛、拆掉部门墙的声音越来越高。2019年中台热席卷圈内,企业、投资者、媒体众说纷纭,百度搜索指数也是应声而涨。有人认

阿里巴巴架构师:十问业务中台和我的答案

Photo@  ZachLucero文 |王思轩一切业务数据化,一切数据业务化。“中台”概念这几年非常火,特别是阿里、腾讯、百度、京东等互联网公司最近频繁的基于中台调整组织架构,把“中台”的热度又上升

Google Brain推出语音识别新技术、面部表情识别助力商业再发展|AI一周学术

大数据文摘专栏作品作者:ChristopherDossman编译:fuma、云舟呜啦啦啦啦啦啦啦大家好,本周的AIScholarWeekly栏目又和大家见面啦!AIScholarWeekly是AI领域

老焦专栏 | 用 RACI 模式梳理业务流程,提高业务发布的效率

转载本文需注明出处:微信公众号EAWorld,违者必究。最近经常在不同场合说,技术发展已经进入深水区。IT技术发展已经越来越成熟了,尤其在金融行业,以前是解决从无到有的问题,现在该有的系统都有了,是解

包银消费CTO汤向军:消费金融大数据风控架构与实践

01风险在哪里1.1 信用风险根据银行业的风险理论,信用风险是指借款人因各种原因未能及时、足额偿还债权人或银行贷款而违约的可能性。信用风险的风控重点在于,甄别客户违约的原因究竟是还款能力,还是还款意愿

滴滴大数据在汽车金融风控场景中的应用

桔妹导读:滴滴独有的出行场景大数据在金融领域有着非常广泛的应用前景,未来可与银行,保险,支付和理财等机构深入合作,帮助传统金融机构提升资源配置效率,降低获客和风险管理成本。出行场景大数据在交易欺诈识别

要不要赶个时髦,去建设一个「 中台 」?

很多技术人总是抱怨新技术/新框架/新概念太多了,总是学不完,抱怨实在是学不动了。哈哈,这不,最近「中台」这么火热,要不要停止抱怨,再咬咬牙学一波?“很多人都担心被技术新潮流所抛弃,所以当遇见不断涌现的

2019年,数据中台为什么火了?

2019年,“数据中台”火了!一方面,过去一年BATJ、TMD等新老互联网巨头前后脚地发布重大消息,称集团层面正在推动以搭建中台为目标的组织架构变革,其中数据中台将是重要一环。而远在2015年就提出“

ZILLIZ AI数据中台:打破数据处理瓶颈,释放AI效能

在最近结束的第十届中国数据库技术大会(DTCC2019)上,ZILLIZ得到了众多专业评委的一致认可,获选为“2019中国数据库技术年度评选——年度创新企业”。这家成立于2016年的企业,凭借对技术发

SACC2019:爱奇艺的大数据中台战略(附演讲实录)

  孙斌爱奇艺高级总监主要负责爱奇艺的大数据中台、商业智能、内容智能制作等业务。在互联网产品设计和研发方面有十多年经验,曾就职于微软、hulu、雅虎等公司。摘要:爱奇艺的业务已经从单一的视频业务发展为

AI 数据中台 Mega 及其应用

随着AI在各行业落地的进一步深化和应用数据量的飞速增长,越来越多的AI科学家痛苦地发现数据ETL、数据仓库和海量特征向量检索等数据处理流程花费了他们大量宝贵的时间和精力。AI数据中台Mega打破了人工

终于有人把中台说清楚了!

前一段朋友圈被中台刷屏了,那么今天我们来说说中台!缘起百度指数搜索“中台”,可以发现,中台一词前几年几乎都没有搜索,反倒是今年5月21号开始蹭蹭往上涨!百度指数仔细搜索了一下原来5月21号腾讯召开了全

请你们不要调侃中台,它是我们赖以生存的镰刀

看本圣经,你就把自己当耶稣了?在这个世界上有两种人,一种人性情诙谐,喜欢开玩笑,另一种人万事较真,做事喜欢一板一眼。在爱开玩笑的人看来,只要不直接嘲笑对方,或不带来伤害,抓住一个热点调侃一番,甚至来点

基于中台实践的DevOps平台有何不同?

为了响应快速变化的市场需求,业务要快速迭代。IT正在向云原生架构转型,解放架构自由度,最大化业务敏捷性,解耦合、敏捷开发、快速部署是当下企业的追求,可以消除研发与运维之间鸿沟的DevOps(研发运维)

如何构建批流一体数据融合平台的一致性语义保证?

一、批流一体架构 批和流是数据融合的两种应用形态 下图来自Flink官网。传统的数据融合通常基于批模式。在批的模式下,我们会通过一些周期性运行的ETLJOB,将数据从关系型数据库、文件存储向下游的目标

百分点万亿级大数据平台的建设实践

从互联网、移动互联网到物联网,数据量之巨大已突破想象边界。与此同时,实时数据分析的需求日益增长,那么,当数据量达到亿级、百亿级甚至万亿级规模,实时数据分析如何来做?尤其在ToB/G来说,大多数企业和政

Kubernetes1.14 版发布,增强了云原生平台的Windows节点支持

Kubernetes1.14GA版本,是开源云原生平台Kubernetes在2019年的一次重大更新。自3月25日开始,这一版本正式推出,供开发者全面使用。  Kubernetes,由云原生计算基金会

使用Electron构建跨平台的桌面应用

作者:李晓健。苏宁视频云前端部门经理。拥有7年前端业务研发和架构经验,目前负责苏宁云视频前端研发和架构工作。Electron简介Electron是一个使用JavaScript,HTML和CSS等Web

Kafka 集群在马蜂窝大数据平台的优化与应用扩展

马蜂窝技术原创文章,更多干货请订阅公众号:mfwtechKafka是当下热门的消息队列中间件,它可以实时地处理海量数据,具备高吞吐、低延时等特性及可靠的消息异步传递机制,可以很好地解决不同系统间数据的

炸!业界难题,跨库分页的几种常见方案

为什么需要研究跨库分页?互联网很多业务都有分页拉取数据的需求,例如:(1)微信消息过多时,拉取第N页消息;(2)京东下单过多时,拉取第N页订单;(3)浏览58同城,查看第N页帖子;这些业务场景对应的消