来,这个问题也是星球的小伙伴面试中遇到的问题
思考片刻,给出你的答案,再继续往下阅读
这道题目的答案并不复杂
核心点是增加一个单次凭证来避免重复操作
具体的实现落地步骤如下:
1,在跳转到订单支付页面前,创建一个唯一凭证,一般我们也称为令牌(注意!这个令牌不是我们的登录认证令牌),保存到Redis中,并设置一个有效期,比如一天
2,这个凭证也一起传递到前端
3,当提交订单时,前端携带这个凭证过来
4,后端查看Redis中是否存在该凭证,如果存在,则说明是合法请求,并删除Redis中的凭证
5,重复发送过来的请求,如果发现Redis中没有改凭证,则提示不要重复提交
在项目开发中,这样的问题是我们需要考虑的,那么问题来了,是不是每个类似的场景,我们都要手写这么一套逻辑,欢迎留下你的答案
小小星球,已经在逐步的成长,目前分享的内容已经快解决180篇了,当然,我们不以数量论价值,只是希望每一篇的输出都可以给你带来一些小小的收获