最新消息:

第三方支付代付平台规避重复支付策略

互联网金融 admin 3191浏览 0评论

对代付这样的业务,重复支付问题是第三方支付的典型频发事故,由于涉及金额都较大,因此影响都较大,必须避免。
核心原则:
1、技术原则:各个模块一定要保证接口的幂等性,一定要避免同一代付请求对渠道接口的多次调用。避免重复支付是一个系统性工程,涉及代付发起方、代付平台、代付渠道网关等多个环节,不能指望某一个环节就搞定重复支付问题,需要在每个业务环节都增加重复支付处理逻辑。
2、设计原则:在判重逻辑上从严,宁可错杀一千,不可放过一。
一个在很多支付公司都出现过的典型例子:由于代付方原因,对同一批代付记录发起多次代付请求,虽然从根本责任来说与支付公司无关。但由于出现代付事故后,在问题排查、追款等方面会牵扯双方的大量资源及精力,对支付平台声誉也有影响。更为重要的是一般重复支付事故都不是单一原因引起,按照RCA原则追根溯源,最终会发现:发起方、代付平台方都有部分责任,在每一个环节其实都有机会拦截住重复支付的请求。

1、代付判重核心逻辑

2、代付业务网关
可能导致重复支付的原因:
a、代付文件记录相同,无批次号
在上传的代付文件或通过接口发起代付请求时候,要不要增加每一次代付请求的唯一标识(批次号)?
按照Event Sourcing设计原则:每一次代付请求都应当在系统中留痕以便于溯源,双方都应当对每一次代付请求有唯一标识,而批次号是一次代付的标识,因此需要在代付发起方的请求中增加批次号。
避免重复支付策略:每一次代付请求,不管是通过接口还是代付文件发起,都应当在代付请求中包含唯一标识,发起方必须保证每一次代付的批次号唯一性。

b、代付文件记录相同,批次号相同
避免重复支付策略:在上传代付文件或接口发起代付请求时候,直接拒绝掉。

c、代付文件记录相同,但批次号不同
例如代付方误操作,修改了批次号,但记录未更新。
此类情况在很多支付公司都出现过,虽然从根本原因来说与支付公司无关,但也要尽量避免
避免重复支付策略:不能把批次号作为唯一判重依据,除了检查批次号外,可以对代付文件数据抽样比对,例如按照收款人+金额+银行卡号+时间戳等关键字段比对

3、代付交易平台
可能出现重复代付的场景
1)、同一代付记录,代付任务创建了多条
避免重复支付策略:创建代付任务时必须做判重处理,一定要考虑多台机器并发调用

2)、同一代付任务,多次调用代付接口
可能导致多次调用代付接口的原因:
a、调用渠道接口,渠道未响应,重新发起调用请求,但渠道实际上已经收到代付请求
避免重复支付策略:调用渠道代付接口的操作,对未响应的操作,一定要避免重复发起,确认失败后,才发起

b、多线程并发导致多次调用代付接口
典型场景:部署了多台代付交易系统,对同一条记录两台交易系统查询数据库记录为未发起代付,同时调用代付接口
避免重复支付策略:采用分布式锁,锁定记录

4、代付渠道网关
代付渠道网关负责调用上游银行渠道/第三方支付接口,发起实际的代付。
避免重复支付策略:代付渠道网关作为实际发起代付的系统,需要做重复支付最后的拦截。代付渠道网关对所有调用上游渠道的代付请求都要记录为代付渠道网关交易订单,每一次调用都要依据渠道网关交易历史做判重处理

转载请注明:出家如初,成佛有余 » 第三方支付代付平台规避重复支付策略

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址