支付流程防止重复支付
2020-04-17 09:57:04 0 举报
金融订单支付流程
作者其他创作
大纲/内容
并发支付指令
查询支付记录
发送支付请求
成功
支付接口
判断支付状态
判断支付记录状态
新核心支付接口
每5分钟根据时间段查询支付结果轮询的时间跨度是支付记录中状态为处理中最早的到当前时间
成功及重复状态
失败逻辑处理,不做数据任何变动
失败状态
释放锁
成功状态,反馈成功
判读分布式锁是否成功
有记录
更新付款指令为处理中
成功及重复逻辑处理服务
封装反馈信息给支付指令,code:500mesage:支付失败
失败状态,新生产支付记录
付款流程结束发送支付请求
更新失败或成功状态
处理中状态,反馈处理中
支付记录
判断新核心反馈结果
Redis服务
封装反馈信息给支付指令,code:200mesage:全部成功or部分成功
根据实际情况设置分布式锁超时时间
更新支付记录处理中
反馈支付失败信息
多人同时操作重发指令,针对失败状态,待支付状态
付款指令
没有支付记录,新生成支付记录
并发
反馈结果
保证落地支付记录成功后再发送接口
发送中状态,取原支付记录发送
付款审批流程
付款款项列表
支付结果查询服务
多人同时完结流程
支付接口加上悲观类锁,或用java提供的分布式锁等
判断支付记录
挡掉支付请求,反馈有重复的请求
获取分布式锁
点击重发付款指令后付款指令按钮置灰直到收到支付反馈
0 条评论
回复 删除
下一页