支付系统一般需要对接多个支付渠道,一是为了保证系统的可靠性,不能因为单一渠道的问题影响整个支付系统。二是为了提高支付能力,不同渠道提供支付能力不同。三是为了降低支付成本。 对接多个支付渠道以后,为了可以正确选择支付渠道支付,因此设计渠道路由系统。 从上图可以看到路由系统功能其实很简单,分发支付请求到正确的渠道。但就是这个简单系统,也经过几次系统改造升级,最终才成为现在的样子。下面就来说说这个系统是如何演进。 下面假设对接支付渠道为支付宝与微信。 初期 支付系统初期,这个阶段业务需求较简单,仅仅需要满足一个支付场景(例如使用支付宝支付)。为了快速上线,设计方案就简单粗暴,对外直接暴露支付服务接口,由业务系统发起直接调用。 系统设计图如下: 这个阶段由于只有一个支付渠道,所以也不需要有路由系统,直接由业务系统调用支付服务接口发起支付。 这个设计方案存在很多问题: 业务系统与支付系统位于同一个系统,系统任何一次变更都会影响整个系统。 扩展性问题。接入新支付渠道,如微信,需要新暴露一个微信支付服务接口。业务系统需要改动代码。从另一方面讲,业务系统承担路由系统的功能。 复用性。新支付渠.... 有更新! 支付渠道路由系统进化史 支付系统
前言 对账系统作为支付系统中的基石系统,处于整个支付环节中的最后一层,主要用来保证我方支付数据与第三方支付渠道或银行的数据一致性。 在没有对账系统之前,财务在第二日手工核对前一日的应收与实收。倘若不一致,这就需要一一核对数据,找出不一致的数据。对账系统出现之后,就可减少以这种繁琐手工操作,财务只需要每天关注系统的对账记录,释放了生产力。 本文主要结合实际的项目经验,聊聊对账系统的设计方案。 系统整体设计 对账系统设计主要分为以下四个模块: 渠道数据处理模块 数据处理模块 核对模块 差异数据处理模块 模块调用顺序层次图如下。 下面先来介绍渠道数据处理模块。 渠道数据处理模块 这个模块主要负责渠道对账文件的下载,解析,以及数据落库。 目前市面上第三方支付渠道对账文件下载方式主要分为以下几类: 第三方渠道定时推送到 SFTP/FTP。这种模式比较简单,我们定时从 SFTP/FTP 取对账文件。 调用第三方渠道对账文件下载接口。这种模式需要对接渠道下载对账文件接口,定时调用下载。支付宝与微信为该模式。 手动在支付渠道网站下载对账文件。这种模式最不友好,需要我们花费人力下载文件。 除了.... 有更新! 从零开始设计对账系统 支付系统