49.javaEE-对接第三方支付(3)-幂等性

幂等性

本文的架构图
在这里插入图片描述

一.什么是幂等性?

http/1.1中对幂等性的定义是:一次或者多次请求对于资源本身应该具有相同的结果.也就是说,其任意多次执行对资源本身所产生的影响均于一次执行的影响相同.
解释重点:
1.这里所说的资源主要是我们数据库的数据,多次请求对我们的资源没有副作用.
2.幂等性关注的是以后多次的请求是否对资源产生副作用,不太关注结果.

二.什么情况下要保证幂等性?

由上我们知道幂等性是什么?那我们应该什么情况下保证幂等性呢?

1.我们查询数据库信息的时候,无论查询多少次,都不会改变我们的数据库信息,也不会影响我们查询的结果,所以查询操作的接口天生就是幂等性的.
2.(delete)删除操作,无论你删除多少次,数据库的信息,也不会改变.所以这也是幂等性的.
3.(insert)操作,本身就不是幂等性操作,一次请求,则一次插入,所以不是幂等性的.
4.update大部分时候可以使幂等性的,但是这种情况就不是幂等性的 update tb_order set money=money - 10 where customId = xxxxx;

所以综上所述有些操作天生就是幂等性的,有些天生就不是幂等性的,我们需要保证每个接口都幂等性吗?这是错误的理解.比如我们买东西,选择商品数量的时候,我不能多次增加吗?当然是可以的.所以这里幂等性主要的是将的是我们在支付的时候,同一个订单去调用支付的接口的时候,由于网络等原因导致我们同一个订单重复扣费.

  • 一般我们调用第三方的支付接口时不需要保证幂等性,并且幂等性不是由我们控制的.

  • 需要保证幂等性的场景是我们作为支付宝,本身具有扣减用户的金额的权利时,我们才需要保证幂等性.

三.如何保证幂等性?

详情见本系列文章:49.javaEE-对接第三方支付(1)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值