XX电商平台从2017年初就开始筹备支付系统改造,历时一年,目前项目还在收尾阶段,但支付平台内相关系统已经基本搭建完成。这里简单分享一下改造方案,新搭建的支付平台架构,以及实施过程中遇到的一些问题。
1.平台业务介绍
XX电商平台整体业务包括B2B、B2C两部分。
2C业务根据消费场景不同分为线上下单线上支付和线上下单店面支付。线上支付主要通过第三方支付的线上支付产品实现,不与快捷支付或认证支付对接。线下支付方式包括当面支付扫码(主扫、被扫)、POS刷卡、智能POS。2C业务的C端用户(客户端)和B端线下门店(商户端)由不同的系统维护。
2B产品销售主要通过线上支付完成,少量大额订单可能采用线下银行转账支付。银行转账订单会在业务订单中标注具体付款方式,财务人员会核实款项是否已经到达对应银行账户。
2. 现有体系问题 3. 支付转型要求
通过分析和梳理支付业务的实现方式,经过多轮调研,我们理清了支付平台与各个业务终端、业务订单之间的关系,首先确定需要将资金相关的逻辑从订单体系中分离出来。
同时为各终端提供统一的收银台,集成前端支付受理,支持基于业务类型、订单渠道等定制化的支付方式。定义统一的支付通道接入规范,提供可插拔的通道接入方式。
建设新的支付核心平台,统一维护支付指令,抽象公共支付服务,满足提款、存款、账户内转账、余额支付等业务需求。
支付平台完成与金融机构(包括第三方支付、银行等)的所有外部连接,并与基于会计准则设计的结算中心、金蝶财务软件实现系统集成。
4.支付平台架构
1. 支付受理平台
将各个业务端的收银柜台汇聚在一起,解决收银统一的问题。提供不同终端的收银柜台是为了统一收银逻辑,但这里的收银柜台只包含视图逻辑,业务逻辑都封装在支付受理核心中。
支付受理核心维护收银员模型,包括支付方式、风控策略、支付前验证逻辑,并调用支付引擎的支付接口完成支付。
2.支付核心平台
3.运营支撑平台
资金对账:从支付引擎同步渠道账务流,从渠道获取三方结算流,与外部金融机构(包括第三方支付)完成支付订单的外部对账。同时将对账结果推送至财务系统结算中心,由财务系统完成业务订单的内部对账。
支付管理后台为产品、研发、运营等公司内部人员提供后端支持,主要包括收银机配置、支付订单相关配置、查询功能等。
5. 改造结果示例
1.可配置收银机
通过支付产品编码方式管控收银应用类型(H5、PC、SDK),标注发起支付的支付业务类型、支付类型、来源平台、终端类型、收银台显示的支付方式等。产品经理或运营人员可根据第三方支付渠道运营活动(如满减优惠)调整支付方式在收银台的显示顺序,也可根据具体业务类型(如虚拟商品不支持花呗支付)增加或减少支付方式。
2C业务官网及收银机配置展示如下:
2. 渠道对账管理
对账系统生成对账任务,对账任务执行过程中会按照对账批次逐一解析对账文件。为保证对账流程覆盖单边对账情况,对账流程会进行双边对账:渠道侧对账文件与支付平台支付订单进行核对,支付平台支付订单与渠道侧对账文件进行核对。对账批次全部执行完成后,生成该批次的对账结果。如果批次中需要解析的渠道对账文件存在格式错误等情况,该批次的执行状态会置为异常。同时,对于进行中的批次,如果处理中断,支持重试机制。
对账结果会以对账流的形式保存,将支付订单和渠道侧账单信息拼接在单条对账流中。双面对账存在多账(渠道有记录但平台没有记录)、少账(渠道没记录但平台有记录)、金额不匹配(支付订单金额不等于账单金额)的情况,无论两边有记录与否,都需要保存拼接后的流水信息。对账批次执行后,统计批次内付款、收款、退款的笔数及金额,手续费支出及收入,以及多账、少账、金额不匹配的笔数及金额,并将统计数据更新到对账批次中。
对帐系统页面示例:
问答
Q1:请您解释一下支付订单的支付阶段是什么意思?
A:用户发起的支付请求可能会涉及到合并支付,比如当充值卡余额不足时,需要使用其他支付方式补足差额,这时候就到了支付阶段,分为两个阶段,首先调用第三方支付通道,然后从充值卡中扣款。
Q2:第三方支付异步通知支付平台,支付平台通知内部调用方,如果掉单了,支付平台会主动查询第三方支付然后异步通知内部吗?
答:不同类型的掉单需要不同的处理方式。
若支付订单状态为成功,但业务订单未更新成功,重试一定次数后,支付平台会报警。
若支付订单处于或者失败状态,而新的回调结果为成功,则支付平台只更新支付订单,不会处理业务订单,等待T+1内部对账结果。
重复支付:目前业务订单中只会记录一条支付订单记录,但支付平台中该操作有两张支付订单,系统每天会汇总重复的支付订单,财务确认后原路返回。
Q3:支付路由的主要作用是什么?收银台的支付渠道是否应该由用户自己选择?
答:支付路由目前主要应用于支付平台的渠道调整,比如门店面对面支付,除了直接对接微信、支付宝,我们的条码支付还会对接上海银行、微众银行的渠道,可以根据渠道稳定性、费率等动态切换渠道。
Q4:部分退款不是通过原路退回,而是通过其他大额渠道退回,为什么不考虑大额渠道支付?费用问题呢?
答:目前退款不走原路,用于索赔或者其他费用超过订单金额的情况,使用支付宝专属账户,通过支付宝转账接口转账。
Q5:给支付宝账户转账时,如何关联平台用户和支付宝账户?A的身份证号是ID1,绑定了身份证号为ID2的支付宝账户,该如何处理?我理解绑定支付宝时无法获取身份证信息。
答:转账时需用户提供支付宝账户,不会验证用户身份信息。