微信 SendAuth 请求 access token code 只生效一次

WeChat SendAuth request for access token code only works once

我正在关注 WeChat Login documentation for Android,它有效但只有一次,我无法重复该过程。

我使用此代码获取访问令牌代码:

IWXAPI api = WXAPIFactory.createWXAPI(this, APP_ID, false);
SendAuth.Req request = new SendAuth.Req();
request.scope = "snsapi_userinfo";
request.state = "wechat_sdk_demo_test";
api.sendReq(request);

我已经创建了WXEntryActivty并且我收到了微信应用程序的响应,我可以完成登录过程。

但是如果我重新安装我的应用程序并尝试再次使用微信登录,我总是得到 ERR_BAN (-6) 错误代码。要让它再次工作,我必须重新安装微信应用程序。

我在文档中找不到任何有关何时可以获得 ERR_BAN 错误代码的信息。谁能帮我解决这个问题?

由于 CACHE,我在使用微信 API 和直接在我的 phone 上的微信应用程序上进行测试时遇到了很多问题。 刷新微信缓存非常困难,我想说几乎不可能,这就是为什么你必须重新安装微信才能再次开始测试。 我强烈建议你使用微信桌面测试应用程序,在这里下载,link在页面末尾: https://mp.weixin.qq.com/wiki?action=doc&id=mp1455784140

然后您将能够调试开发的每一步并刷新缓存。此外,您可以 link 将软件连接到您的 phone 并调试微信网络浏览器中发生的情况。

我设法解决了这个问题。我直接从包含冒号 : 的 keytool 输出中复制了 MD5 签名。我从签名中删除了冒号,现在它可以正常工作了。

我认为这是微信应用程序中的一个错误,因为在应用程序显示授权页面时签名使用冒号,但之后就不行了。