errcode = 40163; errmsg = "code been used"(提供一种解决思路)

最近在做微信开发,就在开发完毕测试的时候,遇到一个大问题,每次新用户进入的时候就报错,错误基本上就是code been used,我去百度了好久,没有找到合适的方案,后来我仔细的看了一下微信开发文档,终于解决了。

注:该方法不一定对所有人有效,仅提供一个思路。

https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirec

上面这个链接是微信开发文档用来获取code的,就是当用户同意后,获取code的一个接口,一些参数什么意思我就不详说了,官方文档说的很明白,我只说其中一个参数——————scope

官方介绍:
snsapi_base (不弹出授权页面,直接跳转,只能获取用户openid),snsapi_userinfo (弹出授权页面,可通过openid拿到昵称、性别、所在地。并且, 即使在未关注的情况下,只要用户授权,也能获取其信息 )

一开始我用的是snsapi_userinfo 进行开发,使用的是自己的公众号,后来我好奇,这两个有什么区别呢,结果我换成第一个,也可以正常运行,没有错,我就没有再换,直到开发完毕,新用户登录出错。

我的解决办法就是将scope的值换成了第二个。
如果你问我为什么,我也很想知道,为什么使用第一个就报code been used 这个错误,希望知道的大佬可以留言一起交流。

你可能感兴趣的:(javaweb)