支付中的幂等性

定义

1.前端重复提交选中的数据,后台应该只产生对应本次提交的一个响应结果。

2.用户发起一笔付款请求,应该只扣除用户账号一次钱,即使遇到网络重发或系统bug重发时,也只扣除一次钱。

3.创建业务订单时,一次业务请求只能创建一个订单

实现幂等

需要有唯一标识来标记请求,比如订单号,token等。

1.先查询一下订单是否已经支付过;

2.如果已经支付过,则返回支付成功;如果没有支付,进行支付流程,修改订单状态为‘已支付’。 保证幂等性就需要查询和变更状态操作加锁,将并行操作改为串行操作。