交易系统中支付流程该如何做?

前言

我以前在企业中做过交易系统,踩了很多坑。前几天在现在的公司中,做付款的同学犯错了。付款给客户的时候产生了双重扣费。多付出了上百万的钱出去。然后……

问题原因

  1. 我们系统是微服务架构
  2. 交易系统开启开启事务后,调用支付系统,然后自身超时,导致事务回滚。
    详细流程:
    这里写图片描述

正确的业务流程

交易系统注意事项

  1. 操作需要有迹可寻。多写中间状态,多记录日志。
  2. 事务要拆分到最小粒度,步步为营,在产生问题的过程中更容易定位问题出在哪一个阶段。
  3. 对于设计到调用其他服务的时候,一定要先写自己的库,产生中间状态,提交事务后,再发起后续流程。
  4. 交易系统中,通常有一个最终状态的概念,每一笔交易都只有两个状态,交易成功或交易失败。如果是处理中的状态。那么需要调用查询结果。直到查询到最终状态为止,否则不可以擅自操作。
  5. 对于任何事物的操作,一点要把事务时间压缩到最短,时间越长,你越容易出现问题。
  6. 可以相信自己,一定要提防他人(其他业务系统),做好自保措施。
  7. 因为你操作的是钱,所以要极度小心,否则就变成背锅侠了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值