# 微信API配置设置指南

## 问题描述

如果您看到以下错误信息：
```
微信miniprogram配置不完整，请检查环境变量
获取openid失败: 微信API配置不完整
```

这表示系统缺少微信小程序的 API 配置信息。

## 解决方案

### 方法一：使用自动配置脚本（推荐）

#### 1. 交互式配置
```bash
python setup_wechat_config.py
```

按照提示输入您的微信小程序 AppID 和 AppSecret。

#### 2. 快速配置
```bash
python setup_wechat_config.py <您的AppID> <您的AppSecret>
```

### 方法二：手动配置

#### 1. 创建环境变量文件
```bash
cp env.example .env
```

#### 2. 编辑 .env 文件
找到以下行并替换为您的实际配置：
```bash
WECHAT_MINIPROGRAM_APP_ID=your_miniprogram_app_id_here
WECHAT_MINIPROGRAM_APP_SECRET=your_miniprogram_app_secret_here
```

替换为：
```bash
WECHAT_MINIPROGRAM_APP_ID=wx1234567890abcdef  # 您的实际AppID
WECHAT_MINIPROGRAM_APP_SECRET=abcd1234567890abcd1234567890abcd  # 您的实际AppSecret
```

## 如何获取微信小程序凭证

### 1. 登录微信公众平台
访问：https://mp.weixin.qq.com/

### 2. 进入小程序管理后台
- 选择您的小程序项目
- 点击左侧菜单中的 "开发"
- 选择 "开发管理"

### 3. 获取开发者ID
在 "开发设置" 页面中：
- **AppID**: 在 "开发者ID" 部分直接显示
- **AppSecret**: 在 "开发者密码(AppSecret)" 部分，点击 "重置" 按钮获取

⚠️ **重要提醒**：
- AppSecret 只在重置时显示一次，请立即复制保存
- 重置 AppSecret 会使之前的密钥失效
- 请妥善保管 AppSecret，不要泄露给他人

## 验证配置

### 运行配置检查脚本
```bash
python check_wechat_config.py
```

如果配置正确，您将看到：
```
✅ WECHAT_MINIPROGRAM_APP_ID: wx1234...
✅ WECHAT_MINIPROGRAM_APP_SECRET: abcd12...
✅ 微信小程序配置验证通过
🎉 微信API配置检查完成，一切正常！
```

### 重启应用
配置完成后，请重启您的应用使配置生效。

## 常见问题

### Q: 提示 "AppID 格式不正确"
**A**: 微信小程序 AppID 通常：
- 以 "wx" 开头
- 长度约为18位
- 示例：`wx1234567890abcdef`

### Q: 提示 "AppSecret 格式不正确"  
**A**: 微信小程序 AppSecret 通常：
- 长度为32位
- 由字母和数字组成
- 示例：`abcd1234567890abcd1234567890abcd`

### Q: 配置后仍然报错
**A**: 请检查：
1. `.env` 文件是否在项目根目录
2. 环境变量名称是否正确（区分大小写）
3. 配置值中是否有多余的空格或引号
4. 是否重启了应用

### Q: 如何在生产环境配置
**A**: 生产环境建议：
1. 不使用 `.env` 文件
2. 直接设置系统环境变量：
   ```bash
   export WECHAT_MINIPROGRAM_APP_ID=wx1234567890abcdef
   export WECHAT_MINIPROGRAM_APP_SECRET=abcd1234567890abcd1234567890abcd
   ```
3. 或在容器/云服务中配置环境变量

## 安全注意事项

1. **不要提交 .env 文件到版本控制**
   - `.env` 文件已被 `.gitignore` 忽略
   - 确保不要手动添加到 git

2. **保护 AppSecret**
   - 不要在代码中硬编码
   - 不要在日志中输出完整的 AppSecret
   - 定期更换 AppSecret

3. **环境隔离**
   - 开发、测试、生产环境使用不同的小程序
   - 每个环境有独立的 AppID 和 AppSecret

## 相关文件

- `env.example` - 环境变量配置模板
- `setup_wechat_config.py` - 自动配置脚本
- `check_wechat_config.py` - 配置检查脚本
- `app/core/data_parse/wechat_config.py` - 微信API配置模块
- `app/core/data_parse/wechat_api.py` - 微信API服务模块

## 技术支持

如果按照以上步骤操作后仍有问题，请检查：

1. 网络连接是否正常
2. 微信API服务是否可用
3. 小程序是否已发布/审核通过
4. 服务器IP是否在微信白名单中（如有限制）

更多技术支持，请参考：
- [微信小程序官方文档](https://developers.weixin.qq.com/miniprogram/dev/)
- [微信登录API文档](https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/login/auth.code2Session.html)
