【项目场景篇】假如用户提交订单的时候重复点击了多次提交,如何保证不会创建多次预付订单?

来,这个问题也是星球的小伙伴面试中遇到的问题

思考片刻,给出你的答案,再继续往下阅读

在这里插入图片描述
这道题目的答案并不复杂

核心点是增加一个单次凭证来避免重复操作

具体的实现落地步骤如下:

1,在跳转到订单支付页面前,创建一个唯一凭证,一般我们也称为令牌(注意!这个令牌不是我们的登录认证令牌),保存到Redis中,并设置一个有效期,比如一天

2,这个凭证也一起传递到前端

3,当提交订单时,前端携带这个凭证过来

4,后端查看Redis中是否存在该凭证,如果存在,则说明是合法请求,并删除Redis中的凭证

5,重复发送过来的请求,如果发现Redis中没有改凭证,则提示不要重复提交

在项目开发中,这样的问题是我们需要考虑的,那么问题来了,是不是每个类似的场景,我们都要手写这么一套逻辑,欢迎留下你的答案

小小星球,已经在逐步的成长,目前分享的内容已经快解决180篇了,当然,我们不以数量论价值,只是希望每一篇的输出都可以给你带来一些小小的收获

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值