微信 GET 请求发生错误!错误代码:40163,说明:code been used

发布程序后 ,客户用的时候报了这个错,自己测试又没有问题。 最后调试时才发现,发布时将snsapi_userinfo改成了snsapi_base导致。

snsapi_base是静默登录,不会弹授权框,用户感觉就是直接进入了网站,服务端可以拿到code,并以此获取唯一openid

snsapi_userinfo会弹出授权框, 服务端可以拿到除openid以外的头像、用户名等个人资料。

如果配置了 snsapi_base ,那么后续再去调用 GetUserInfo等接口就会报错,JSON转换就更不会成功了。 所以如果是snsapi_base ,那么把代码里 GetUserInfo 注释即可。

而这里的code been used,看字面意思就知道,code已经被用了,这是因为在程序报错时,会再次尝试访问微信的authurl,所以报code been used,一般这种问题还是程序报错了。