uni-app APP微信登录“invalid code”终极解决方案
前言最近在开发 uni-app APP 端微信登录时遇到了一系列报错从最开始的业务参数配置缺失到40013 invalid appid再到40029 invalid code可谓是“九九八十一难”。好在最终全部解决特此记录整理成文希望能帮助遇到同样问题的开发者少走弯路。一、错误现象调用uni.login进行微信授权登录时出现以下错误之一// 错误1业务参数配置缺失 {errMsg:login:fail 业务参数配置缺失,https://ask.dcloud.net.cn/article/282,errCode:-7} // 错误2invalid appid {errcode:40013,errmsg:invalid appid} // 错误3invalid code最常见的终极问题 {errcode:40029,errmsg:invalid code, rid: xxx}二、错误原因分析2.1 错误1业务参数配置缺失 (errCode: -7)原因manifest.json中未配置微信登录的appid或appsecret。从 HBuilderX 3.4.18 开始appsecret的可视化配置已被移除需要手动在源码视图中添加。2.2 错误2invalid appid (40013)原因后端请求微信接口时使用的appid与前端的appid不一致使用了错误平台类型的appid如用了小程序的appid而非移动应用的appid2.3 错误3invalid code (40029) ⚠️最常见、最隐蔽的错误原因code被重复使用微信code是一次性的换取过一次access_token后就失效code已过期code有效期只有5 分钟code与appid不匹配生成code的appid与后端换取的appid不同接口用错App 端错误地使用了小程序的jscode2session接口⚠️ 签名不一致最常见调试基座使用的签名与微信开放平台登记的签名不一致三、终极罪魁祸首签名问题 3.1 为什么“真机调试”报错“云打包”就正常运行方式使用的证书微信登录标准基座USB真机调试HBuilder 调试证书❌ 40029自定义基座正式证书你的正式证书✅ 正常云打包/正式包你的正式证书✅ 正常核心原因微信开放平台在生成code时会校验当前 App 的包名 签名。你在微信开放平台登记的是正式证书的签名而 HBuilderX 默认调试基座使用的是调试证书二者不一致导致微信服务器认为code无效返回40029。四、完整解决方案4.1 配置manifest.jsonapp-plus: { distribute: { sdkConfigs: { oauth: { weixin: { appid: 你的微信AppID, appsecret: 你的微信AppSecret可选建议配合onlyAuthorize使用, UniversalLinks: https://your-domain.com/app/ } } } } }4.2 使用onlyAuthorize: true推荐的安全做法前端代码uni.login({ provider: weixin, onlyAuthorize: true, // 关键仅获取code不直接返回用户信息 success: (res) { console.log(获取到code:, res.code); // 将code发送给后端 uni.request({ url: https://your-server.com/api/wechat/login, method: POST, data: { code: res.code }, success: (result) { console.log(登录成功:, result.data); } }); }, fail: (err) { console.error(微信登录失败:, err); } });后端代码Node.js Expressconst APPID 你的微信AppID; const SECRET 你的微信AppSecret; app.post(/api/wechat/login, async (req, res) { const { code } req.body; // 1. 用code换取access_token const url https://api.weixin.qq.com/sns/oauth2/access_token?appid${APPID}secret${SECRET}code${code}grant_typeauthorization_code; const response await axios.get(url); if (response.data.errcode) { return res.status(400).json({ error: response.data.errmsg }); } const { access_token, openid, unionid } response.data; // 2. 获取用户详细信息可选需要scope包含snsapi_userinfo const userInfoUrl https://api.weixin.qq.com/sns/userinfo?access_token${access_token}openid${openid}; const userInfo await axios.get(userInfoUrl); // 3. 生成自定义登录态token返回给前端 res.json({ success: true, data: userInfo.data }); });4.3 ⭐ 最关键一步使用自定义基座调试制作自定义基座HBuilderX →发行→自定义基座打包选择正式证书运行到自定义基座项目右键 →运行→运行到自定义基座此后调试时 App 的签名与正式包一致微信登录正常五、完整排错清单 ✅序号检查项状态1manifest.json中配置了appid☐2使用onlyAuthorize: true安全模式☐3前端appid与后端appid完全一致☐4后端接口使用oauth2/access_token不是jscode2session☐5code在 5 分钟内发送到后端☐6同一个code只请求一次微信接口☐7微信开放平台应用已审核通过☐8已使用正式证书制作自定义基座进行调试☐9微信开放平台登记的包名/签名与打包证书一致☐六、总结微信登录的坑90% 集中在两点配置问题appid/appsecret未配置或配置错误签名问题调试环境的签名与微信开放平台登记的签名不一致最佳实践✅ 开发阶段使用自定义基座正式证书进行调试✅ 使用onlyAuthorize: true将appsecret保存在服务端✅ 由后端统一调用微信接口避免密钥泄露希望这篇文章能帮你少走弯路顺利集成微信登录功能 相关资源uni-app 官方文档 - uni.login微信开放平台 - 移动应用接入指南作者小北快快跑时间2026-07-23关键词uni-app、微信登录、40029、invalid code、自定义基座

相关新闻

【2019-12-25】【转】使用All in One WP Migration插件为WordPress快速搬家

【2019-12-25】【转】使用All in One WP Migration插件为WordPress快速搬家

[历史归档] 本文原发布于 cstriker1407.info 个人博客,内容为历史存档,仅供参考。 发布时间: 2019-12-25 | 标题:【转】使用All in One WP Migration插件为WordPress快速搬家 | 分类: 编程 …

2026/7/23 21:00:46 阅读更多 →
【2020-01-18】《图解密码技术》读书笔记:信息威胁与处理

【2020-01-18】《图解密码技术》读书笔记:信息威胁与处理

[历史归档] 本文原发布于 cstriker1407.info 个人博客,内容为历史存档,仅供参考。 发布时间: 2020-01-18 | 标题:《图解密码技术》读书笔记:信息威胁与处理 | 分类: 安全 / 图解密码技术 &…

2026/7/23 21:00:46 阅读更多 →
【2020-01-14】802.11协议帧在不同加密模式下的简单抓包笔记

【2020-01-14】802.11协议帧在不同加密模式下的简单抓包笔记

[历史归档] 本文原发布于 cstriker1407.info 个人博客,内容为历史存档,仅供参考。 发布时间: 2020-01-14 | 标题:802.11协议帧在不同加密模式下的简单抓包笔记 | 分类: 网络通讯 / WIFI &a…

2026/7/23 21:00:46 阅读更多 →

最新新闻

嵌入式接口时序深度解析:从建立保持时间到示波器调试实战

嵌入式接口时序深度解析:从建立保持时间到示波器调试实战

1. 项目概述:为什么接口时序是嵌入式开发的“命门”干了十几年嵌入式,从8位单片机玩到现在的多核异构SoC,有一个东西始终是硬件工程师和底层驱动工程师的“必修课”,也是项目调试中最容易踩坑的地方——那就是接口时序。你可能觉得…

2026/7/23 21:08:49 阅读更多 →
不起眼的五金细节,决定长久好用

不起眼的五金细节,决定长久好用

很多人看东西只看外观、看价格,却常常忽略最关键的五金细节。不管是家装、工装还是日常设备使用,真正撑得住时间、不容易出问题的,往往都是那些看不见的五金配件。 五金看似粗笨、结实,实则特别讲究适配和匹配。生活里大部分小毛病…

2026/7/23 21:08:49 阅读更多 →
AI Coding 零基础实战教程|第五部分:完整项目案例实操

AI Coding 零基础实战教程|第五部分:完整项目案例实操

AI Coding 零基础实战教程 第五部分:完整项目案例实操 学习目标:通过从零到一的完整项目开发,掌握AI编程的全流程 完成标志:独立使用 Claude Code 完成一个可运行的全栈项目 前面部分讲完了理论知识,这一部分动手做个项目: 一个完整可运行的微型商城——覆盖商品、用户…

2026/7/23 21:08:49 阅读更多 →
【ModelArts】ECS部署后远程登陆失败:无法连接到远程主机,请检查主机网络与端口是否正确

【ModelArts】ECS部署后远程登陆失败:无法连接到远程主机,请检查主机网络与端口是否正确

遇到 ssh: connect to host ... Connection timed out 这种报错,基本可以确定是网络链路被“拦截”了,数据包没能到达你的ECS。这在ModelArts部署场景里很常见,通常是三个地方的问题:目标服务器的IP白名单、中间网络的安全组策略&…

2026/7/23 21:08:49 阅读更多 →
[测试技术] Pytest 入门与实战:fixture、参数化、标记与并行执行

[测试技术] Pytest 入门与实战:fixture、参数化、标记与并行执行

原创内容,未获授权禁止转载、转发、抄袭。Python 自动化测试从几个脚本增长到完整测试集后,通常会遇到数据重复准备、场景难以筛选、失败信息不直观和执行时间变长等问题。pytest 使用普通 assert 编写断言,并通过 fixture、参数化、标记和插…

2026/7/23 21:08:49 阅读更多 →
传智教育再拓新局!开设“AI具身智能机器人开发学科”抢占物理AI万亿赛道

传智教育再拓新局!开设“AI具身智能机器人开发学科”抢占物理AI万亿赛道

当大模型、AIGC、虚拟数字人等线上AI产业逐步成熟,人工智能产业迎来关键跃迁:AI从虚拟数字世界走向真实物理场景,具身智能机器人将成为新质生产力的核心载体,撬开人工智能下半场的新竞争格局。继率先搭建完成虚拟AI开发人才、AI应…

2026/7/23 21:07:49 阅读更多 →

日新闻

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

更多请点击: https://intelliparadigm.com 第一章:从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表) 当AI副业主理人不再仅满足于单次服务交付,而是主动构建可复用、可裂变、可…

2026/7/23 0:00:25 阅读更多 →
AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析

AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析

更多请点击: https://codechina.net 第一章:AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析 在对2,346篇跨行业AI生成文案的A/B测试数据进行聚类分析后,我们发现&#xff1…

2026/7/23 0:01:26 阅读更多 →
Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具 【免费下载链接】chitchatter Secure peer-to-peer chat that is serverless, decentralized, and ephemeral 项目地址: https://gitcode.com/gh_mirrors/ch/chitchatter Chitchatter是一款革命性的安…

2026/7/23 0:01:26 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/22 8:58:19 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/22 19:43:43 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/23 17:49:47 阅读更多 →

月新闻