在使用测试号开发的时候遇到了这个问题,报错显示access_token未定义,然后我就获取access_token时的返回值打印出来显示error:40163 code been used,然后在网上查找时有各种各样的答案,但是都无法解决。下面是常见的几个原因
1.网站没备案然后微信会弹出一个警告点继续访问就把带code的页面刷新了导致这个问题
解决方法:访问未进行备案的域名 或者 使用ip进行处理的时候 将会点击‘’继续访问‘ 这样 相当于两次 解决办法:点击继续访问 下面的 访问原网页 即可’
2:code只能用一次,重定向所以请求了两次code,所以一直报40163错误
我的问题出现原因:在获取code之后的回调地址中,我由于使用的是别人的代码,觉得如果有错误应该会自动报错,在获取access_token之后的代码并没有注释掉。你觉得会网页上直接报错,然而实际不会让你看到代码自带的debug的,此时出错,微信他觉得是自己的错误,就用另个一ip来访问你的回调地址,你debug的信息都看不到,只能自己找出微信给的报错error:40163 code been used,之前还没注意到这种情况,现在又去找答案,发现确实有这种情形。总的来说就使用了code之后的代码程序不要有错误,即通过code获取access_token之后的代码不能有错误,之后错误无法在浏览器中显示。
以下链接详细介绍了微信机制,通过机制你就能比较好理解这个问题出现的原因
https://blog.csdn.net/Squall001/article/details/80460924#commentBox