小程序发红包 公众号发红包开发中遇到的问题 大并发 频繁提现 刷接口
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小程序发红包 公众号发红包开发中遇到的问题 大并发 频繁提现 刷接口相关的知识,希望对你有一定的参考价值。
在开发小程序红包 和公众号发红包
首先是商家端 可以发红包 用户来抢红包
抢到的红包 我们先存在他的帐号下 然后这个用户再申请提现
好了,现在开始来问题了。那就是大并发的用户提现问题了。
部分用户频繁提现,不停的刷接口。
举例来说吧,假使小黑他自己发3元钱红包,然后他自己抢,抢到以后,我们把他的钱存在一个字段里,等待他来提现。
现在问题就在这里了,他使用一些抓包软件,在同一秒钟发送数十次请求提现。这个时候我们程序是怎么执行的呢?
1.获取小黑的提现申请,比如3元,在数据库里查这个小黑账户里是否有3元钱,发现有,就让他提现。如果不足3元就不允许他提现。
一切看起来好像天衣无缝。结果没想到小黑不停的刷红包接口。账户里的钱,白白的就消失了。。。看着让人心疼啊。
这一切是什么原因呢?
原来问题就是出在小黑在一秒钟之内,发起的数十次请求,我们知道一秒钟是1000毫秒。
假使小黑发起10次请求
也就是第一请求在 第1毫秒
第二次发起的请求在第101毫秒
第三次发起请求在第201毫秒
第四次发起的请求在第301毫秒
第五次发起的请求在第401毫秒
以此类推。。。。。。
那我们的数据库和服务器有关系,也许返回的结果没那么快。
假设我们从接到小黑的第一次请求到查询小黑的账户余额还有多少钱,然后程序来判断能不能让他提现走这3元。假设这中间需要320毫秒。
那么也就是说第一次,第二次,第三次,第四次这四次的请求,程序都判断他账户里还有3元钱,都让他提现走了。。。。
这下小黑一下就拿走了4*3=12元。
所以问题就在这里了。
那么我们就要对每次的请求做好相应的记录,标记每次请求的唯一性,不让这样的情况发生。
我 一名phper 愿意通过网络和大家沟通交流 共同提高 我的微信号:qiufeng2983
以上是关于小程序发红包 公众号发红包开发中遇到的问题 大并发 频繁提现 刷接口的主要内容,如果未能解决你的问题,请参考以下文章