微信两套AppID配置说明.md 4.4 KB

微信两套AppID配置说明

📋 概述

微信登录和微信分享需要使用不同的AppID和AppSecret:

功能 平台 环境变量
微信登录(OAuth) 微信开放平台 WECHAT_OPEN_APP_ID
WECHAT_OPEN_APP_SECRET
微信分享(JSSDK) 微信公众平台 WECHAT_MP_APP_ID
WECHAT_MP_APP_SECRET

🔧 配置方法

在 backend/.env 文件中添加:

# ==================== 微信开放平台(用于登录)====================
# 获取位置:微信开放平台 → 管理中心 → 网站应用
WECHAT_OPEN_APP_ID=开放平台的AppID
WECHAT_OPEN_APP_SECRET=开放平台的AppSecret
WECHAT_REDIRECT_URI=https://www.chengyantek.cn/api/auth/wechat/callback

# ==================== 微信公众平台(用于分享)====================
# 获取位置:微信公众平台 → 开发 → 基本配置
WECHAT_MP_APP_ID=公众平台的AppID(公众号AppID)
WECHAT_MP_APP_SECRET=公众平台的AppSecret(公众号AppSecret)

# ==================== 微信公众平台(用于公众号消息推送)====================
WECHAT_MP_TOKEN=your_custom_token_here

📍 获取AppID和AppSecret

微信开放平台(登录)

  1. 访问:https://open.weixin.qq.com
  2. 登录后进入:管理中心 → 网站应用
  3. 在应用详情页获取:
    • AppID:复制到 WECHAT_OPEN_APP_ID
    • AppSecret:点击"查看"或"重置"获取,复制到 WECHAT_OPEN_APP_SECRET

微信公众平台(分享)

  1. 访问:https://mp.weixin.qq.com
  2. 登录后进入:开发 → 基本配置
  3. 获取:
    • AppID:复制到 WECHAT_MP_APP_ID
    • AppSecret:点击"重置"获取,复制到 WECHAT_MP_APP_SECRET

⚠️ 兼容性说明

向后兼容

为了兼容旧配置,代码支持以下兼容逻辑:

  • 如果 WECHAT_OPEN_APP_ID 未设置 → 尝试读取 WECHAT_APP_ID
  • 如果 WECHAT_OPEN_APP_SECRET 未设置 → 尝试读取 WECHAT_APP_SECRET
  • 如果 WECHAT_MP_APP_ID 未设置 → 尝试读取 WECHAT_APP_ID
  • 如果 WECHAT_MP_APP_SECRET 未设置 → 尝试读取 WECHAT_APP_SECRET

建议:尽快迁移到新配置,避免混淆。


✅ 验证配置

验证登录功能

# 测试登录授权URL
curl "https://www.chengyantek.cn/api/auth/wechat/authorize"

应该重定向到:https://open.weixin.qq.com/connect/qrconnect?...

验证分享功能

# 测试JSSDK配置接口
curl "https://www.chengyantek.cn/api/wechat/jsapi/config?url=https://www.chengyantek.cn/share"

应该返回:

{
  "success": true,
  "data": {
    "appId": "wx...",
    "timestamp": 1234567890,
    "nonceStr": "abc123",
    "signature": "d4f5e6..."
  }
}

🔍 常见问题

Q1: 我只使用登录功能,需要配置公众平台的AppID吗?

答案:不需要。

如果只使用登录功能,只需配置:

WECHAT_OPEN_APP_ID=开放平台的AppID
WECHAT_OPEN_APP_SECRET=开放平台的AppSecret
WECHAT_REDIRECT_URI=回调地址

分享功能会失败,但不影响登录。

Q2: 我只使用分享功能,需要配置开放平台的AppID吗?

答案:不需要。

如果只使用分享功能,只需配置:

WECHAT_MP_APP_ID=公众平台的AppID
WECHAT_MP_APP_SECRET=公众平台的AppSecret

登录功能会失败,但不影响分享。

Q3: 我还在使用旧的 WECHAT_APP_ID 配置,需要立即修改吗?

答案:建议尽快修改。

虽然代码支持兼容,但:

  • 如果两个功能都需要,必须分别配置
  • 旧配置可能导致混淆
  • 新配置更清晰明确

📚 相关文档

文档 说明
微信AppID和AppSecret使用说明 详细使用说明
微信公众平台与开放平台区别说明 平台区别说明
微信JSSDK错误排查与解决方案 错误排查方法

✅ 总结

  1. 微信登录 → 使用 WECHAT_OPEN_APP_ID 和 WECHAT_OPEN_APP_SECRET(开放平台)
  2. 微信分享 → 使用 WECHAT_MP_APP_ID 和 WECHAT_MP_APP_SECRET(公众平台)
  3. 兼容性 → 代码支持旧配置,但建议尽快迁移
  4. 验证 → 使用curl命令测试两个功能是否正常