Android端微信登录返回ERR_BAN(-6)的原因及应用签名配置疑问
微信登录ERR_BAN(-6)错误排查与Application Signature配置说明
一、ERR_BAN(-6)错误的常见原因
- 签名不匹配:这是最常见的触发原因!微信会严格校验你的应用签名与开放平台配置的签名是否一致,一旦对不上,就会判定为非官方授权应用,直接返回这个封禁错误。我之前就踩过debug包用了release签名配置的坑,完美触发这个错误。
- 应用违规:如果你的应用存在诱导分享、恶意刷登录、违反微信平台规范的行为,会被微信风控系统标记,直接封禁登录权限,同样会返回该错误码。
- 环境混淆:比如用debug签名打包的测试包,去请求微信开放平台上配置的release签名对应的应用,这种跨环境的签名不匹配也会触发ERR_BAN。
二、Application Signature的正确填写方式
首先明确:这个签名是你应用签名文件的SHA1值,而且debug和release环境的SHA1完全不同,千万别搞混!
- 获取SHA1的方法:
- 用Android Studio的话,直接在右侧Gradle面板找到你的项目 → Tasks → android → signingReport,双击运行,控制台里就能看到对应build类型(debug/release)的SHA1值,复制即可。
- 也可以用微信官方的签名生成工具,安装到测试设备上,输入你的应用包名,就能直接获取到当前设备上安装应用的签名SHA1,这个方法特别适合测试环境校验。
- 填写到微信开放平台:登录微信开放平台,进入你的应用详情页 → 开发管理 → 基本配置 → 找到「应用签名」选项点击修改,把获取到的SHA1值(注意不要带空格,直接粘贴纯字符串)填进去,保存后等待10分钟左右即可生效。
代码小提示
看你贴的onResp代码,除了打日志,还可以给用户加个针对性的Toast提示,让用户更清楚问题所在:
case BaseResp.ErrCode.ERR_BAN: Toast.makeText(this, "登录失败:应用签名配置错误或账号存在违规", Toast.LENGTH_LONG).show(); break;
内容的提问来源于stack exchange,提问作者dev
相关产品推荐
相关产品推荐

