聚合支付系统设计(三)

退款网关与退款状态查询设计

背景

退款业务,相对于支付业务,部分需求方(包括产品、市场的同事)认为退款业务不是那么紧急或重要。从业务角度分析,没有支付业务,用户无法支付或支付优惠活动无法开展,但没有退款功能,则不影响用户下单支付和开展优惠活动。用户申请退款,财务可登录第三方支付平台提供的商户管理系统进行人工退款操作。因此,目前应该还有许多电商平台的退款业务都是财务人工操作的,当公司订单到了一定规模,人工退款操作则是不可行的。这时候,则需要一一对接退款业务。

从系统安全角度分析,退款业务的重要性甚至比支付业务更要高,因为退款业务可以理解为是商户自己向用户付钱,如果多付,所造成的公司财务损失,几乎不可能追回。常见的风险有:订单申请了部分退款,由于各种原因造成多退的情况;系统退款由于操作人疏忽或其他原因造成不该退款的订单退款给用户的情况。以上两种情况,我身边确实有这样的案例,最大的一次损失,是一个下午,给公司造成了80多万的损失。鉴于此,在设计退款模块的童鞋,逻辑一定要缜密,不要有疏忽、漏洞等隐患。

退款网关设计

对用户主动取消的已付款订单、或者因为库存不足、无法配送等各种原因需要撤销订单的,都需要给用户进行退款操作,退款形式有原路退款、银行转账、退余额等,目前主流的都是进行原路退款。退款网关不能有用户直接访问,订单要有退款申请与审批流程,一般是在订单管理系统控制,有订单管理系统调用退款网关,发起退款请求,聚合支付系统要对退款网关做好身份验证及安全防范。

聚合支付平台退款部分,也需要异步通知处理队列,消费队列接受来自第三方异步通知、crontab主动查询或人工查询到已退款成功的订单退款数据,将其统一处理,更新退款单状态、通知订单系统等操作。

退款交易表结构

你可能感兴趣的:(聚合支付平台,支付平台设计,支付)