说说电商平台的支付交易系统
1.关于定位
今天给大家分享一个与支付交易相关的系统。 这是一个处理资金的系统。 承载电商平台购物车、订单、支付渠道网关、订单管理、虚拟资金账户、营销折扣等重要服务。 是电子商务平台的重要组成部分。 商业平台不可或缺的系统
在业务发展的不同阶段,支付交易系统所需的架构和人力也不同。
2. 架构演变
1.早期:单核阶段
平台发展初期,业务比较简单,业务量很小。 一个系统包含了所有功能,甚至部署也很可能与其他功能混合在一起。
1.0.png
这一阶段的特点是:
该系统简单、开发速度快。
扩展性差,无法快速满足新产品的支付需求
各节点耦合度较高,节点之间大多存在事务依赖关系,导致事务链路非常长。
代码越来越多,各个节点并行开发越来越困难。
为了解决这些问题,决定服务每个节点,采用分布式系统架构,将支付交易的每个节点服务到后端,以支持多个前端应用。
2.中期:服务化
除了服务之外,这个架构还增加了交易订单,将订单拆分为产品订单和交易订单。 主要目的是支付和产品解耦,让网关更加独立,解决订单信息变化带来的触发。 第三方渠道风控策略导致无法支付的情况(比如点击第三方支付,订单价格发生变化,则同一个订单号不允许再次支付)第三者)
2.0.jpg
这一阶段的特点是:
缓解 1.0 问题
在分布式系统中,很难保证分布式事务的数据一致性。 这里我们不做深入的介绍,但是你可以参考
系统幂等性及常用实现方法
分布式事务演变
关注业务
3.后期:面向业务规则
3.0支付交易系统应该是一个以业务规则为导向的系统,能够满足平台上大部分支付场景的需求。 可以抽象出业务规则,通过配置规则可以快速订阅底层支付基础服务。
但这只有在业务发展到一定阶段后才可行。
3. 支付网关
市场上的渠道网关有很多,那么如何选择渠道网关呢?我归结为3个关键词
主流、稳定、手续费
第一个是主流,就是满足大多数用户的支付需求。 市面上支付宝、微信等网关巨头基本都是标配。
然后就是稳定性。 一般来说,主流支付渠道的稳定性没有问题,但为了更好的容错和容灾,接入更多的渠道进行备份也是一个不错的选择。
最后,还有手续费。 当交易量达到一定程度时,你会发现每笔交易支付的手续费也是一笔不小的开支。 降低手续费成为一个需要解决的问题。
如何减少手续费?
通过商业手段洽谈,接入一些中小渠道。 一般来说,这些渠道会有较高的发展谈判空间;
高手续费通道在界面上的显示位置可以减少,但当然不能影响交易量。
对于有交易量和阶梯价格的渠道,交易渠道是在用户无感知的情况下通过渠道引擎自动调整的。 不过,这需要一定的渠道交易特性才能达到效果。
4、财务结算
财务结算包括对账和制作会计报表。 它的设计需要一定的会计知识门槛。 在系统的早期阶段,大多数团队都会错过这方面的设计,因为他们想要快速支持业务发展。
金融结算系统和支付交易系统在交易数据上紧密耦合。 为了让两个系统有更清晰的系统边界,尽可能的解耦,我们的思路可以是:
建立会计科目体系,结合自身平台特点,在这些主科目下建立子账户。
资产=负债+待清算+(收入-支出)
支付交易系统生成交易流程
财务结算系统将交易流水录入账户系统
财务结算系统与第三方报表对账