j***@lemeridienhome.com
j***@lemeridienhome.com
  • 发布:2026-08-07 09:26
  • 更新:2026-08-07 09:28
  • 阅读:45

app调用微信授权登录错误码-100,如何解决

分类:HBuilderX

{"errMsg":"login:fail
send"."code":-100,"innerCode":-6)}

2026-08-07 09:26 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

欢迎到专业群( HBuilderX技术交流群 ) 咨询,群中有相关专业的管理员和群友。

这个报错可以拆开看:code: -100login:fail send 表示客户端向微信 sdk 发起授权请求时发送失败,innerCode: -6 是微信 sdk 返回的内部错误码。在微信 sdk 的错误码定义中,-6 表示"禁止"(可参考微信支付错误码表,登录与支付是同一套微信 sdk 错误码体系)。出现 -6 时,绝大多数情况不是代码问题,而是应用包名/应用签名与微信开放平台登记的信息不一致,微信在校验时直接拒绝了请求。

请按下面的顺序排查(按出现概率从高到低):

1. 核对应用签名(最常见原因)

微信开放平台创建移动应用时填写的"应用签名",是由打包证书的 keystore 生成的 md5(32 位小写十六进制、无冒号)。重点注意:

  • 真机调试如果用的是标准基座,或者用 dcloud 公共测试证书制作的自定义基座,其签名和你微信开放平台上登记的签名必然不一致,会直接报 -6。
  • 解决方式:使用你自己的 android 证书制作自定义调试基座(HBuilderX 菜单【运行】->【运行到手机或模拟器】->【制作自定义调试基座】,证书选择自有证书),或者用自有证书走【发行】->【原生App-云打包】后安装正式包再测试。
  • 验证方法:在已安装你的 app 的手机上,安装微信官方的签名查看工具(gen_signature_android2.apk),输入包名后得到的签名,必须与微信开放平台后台填写的"应用签名"完全一致。也可以用 keytool -list -v -keystore 你的证书.keystore 查看证书 md5 进行比对。

2. 核对包名

微信开放平台移动应用的包名,必须与 manifest.json【基础配置】中的 android 包名完全一致(注意大小写敏感)。

3. 核对 manifest.json 中的微信登录配置

打开项目的 manifest.json -> 【App模块配置】->【OAuth(登录鉴权)】-> 勾选"微信登录",填写的 appid 必须是微信开放平台(open.weixin.qq.com)的移动应用 appid,不是公众号或小程序的 appid。修改配置后需要重新制作基座或重新打包才能生效。ios 端还需确认 bundle id 及通用链接(universal links)配置正确。

4. 其他基础检查

  • 确认微信开放平台的移动应用已通过审核(未过审的应用没有登录能力)。
  • 确认测试机上已安装微信客户端且能正常登录。
  • 确认手机网络正常。

5. 调用代码参考

确认配置无误后,按官方文档的方式调用(知识库来源:使用微信登录):

uni.login({  
    "provider": "weixin",  
    "onlyAuthorize": true, // 微信登录仅请求授权认证  
    success: function(event){  
        const {code} = event  
        //客户端成功获取授权临时票据(code),向业务服务器发起登录请求  
    },  
    fail: function (err) {  
        // 登录授权失败 err.code是错误码  
    }  
})

本助手使用国产模型,生成代码可能不准确。专业的代码生成需要全球顶尖的AI Coding模型。推荐使用uni-agent

另外,ask 社区有两例与你完全相同的报错(login:fail send, code:-100, innerCode:-6),可作为同类问题参考:问题131523问题193907

总结:这个错误基本可以排除代码写法问题,优先怀疑"打包证书签名与微信开放平台登记签名不一致",尤其是用公共测试证书打基座调试的场景。按第 1 步用自有证书重新打基座后,通常即可解决。

内容为 AI 生成,仅供参考

要回复问题请先登录注册