# 接口地址配置说明文档

本文档主要说明 GeminiWX 项目中服务端、管理后台（Web）、微信小程序的接口地址配置方法。

## 1. 服务端 (Server)

服务端基于 Django 开发，主要配置文件位于 `admin/server` 目录。

### 核心配置
- **配置文件路径**: `admin/server/server/settings.py` 和 `admin/server/server/conf_e.py`
- **端口配置**: 默认运行在 `8000` 端口（在 `docker-compose.yml` 或 `manage.py` 启动命令中指定）。

### 允许的主机 (Allowed Hosts)
在 `admin/server/server/settings.py` 中：
```python
ALLOWED_HOSTS = ['*']  # 允许所有域名访问，生产环境建议修改为具体域名
```

### 微信 AppID 配置
为了确保微信登录和支付等功能正常，需要在以下两处保持 `AppID` 一致：
1. **服务端**: `admin/server/server/conf_e.py`
   ```python
   WECHAT_APP_ID = 'wx2d9b9759137ef46b'  # 示例 AppID
   WECHAT_APP_SECRET = '...'
   ```
2. **小程序**: `wechat-mini-program/project.config.json`
   ```json
   {
     "appid": "wx2d9b9759137ef46b",
     ...
   }
   ```

### 数据库与密钥配置
在 `admin/server/server/conf_e.py` 中配置数据库连接信息。

---

## 2. 管理后台 Web (Admin Client)

管理后台基于 Vue.js 开发，位于 `admin/client` 目录。

### 开发环境 (Development)
- **配置文件**: `admin/client/.env.development`
- **配置项**:
  ```properties
  VUE_APP_BASE_API = '/api'
  ```
- **代理配置**: `admin/client/vue.config.js`
  开发环境下，`/api` 开头的请求会被代理到本地服务端：
  ```javascript
  proxy: {
    '/api': {
      // 目标服务器地址，优先使用环境变量 PROXY_TARGET，默认为 localhost
      target: process.env.PROXY_TARGET || 'http://127.0.0.1:8000',
      changeOrigin: true
    }
  }
  ```

### 预发布环境 (Staging)
- **配置文件**: `admin/client/.env.staging`
- **配置项**:
  ```properties
  VUE_APP_BASE_API = '/stage-api'
  ```
- **构建**: 运行 `npm run build:stage`（假设 `package.json` 中有对应 script，通常为 `vue-cli-service build --mode staging`）。

### 生产环境 (Production)
- **配置文件**: `admin/client/.env.production`
- **配置项**:
  ```properties
  VUE_APP_BASE_API = '/api'
  ```
- **构建**: 运行 `npm run build:prod` 后，生成的静态文件位于 `admin/server/dist` (配置于 `vue.config.js` 的 `outputDir`)。

---

## 3. 微信小程序 (WeChat Mini Program)

微信小程序代码位于 `wechat-mini-program` 目录。

### 接口地址配置
- **配置文件路径**: `wechat-mini-program/config/env.js`
- **配置内容**:

  该文件根据 `env` 变量决定使用开发环境还是生产环境的配置。

  ```javascript
  const env = 'development' // 修改此处切换环境：'development' 或 'production'
  
  const configs = {
    development: {
      baseUrl: 'http://192.168.5.81:8000/api' // 开发环境接口地址，请修改为本机局域网IP
    },
    production: {
      baseUrl: 'https://your-domain.example.com/api' // 生产环境接口地址
    }
  }
  
  module.exports = configs[env]
  ```

### 注意事项
1. **开发调试**: 确保手机和电脑在同一局域网，且 `baseUrl` 中的 IP 地址是电脑的局域网 IP（可通过 `ipconfig` 或 `ifconfig` 查看）。
2. **真机调试**: 微信开发者工具中需勾选“不校验合法域名”选项，或者在微信后台配置合法的服务器域名。

---

## 4. 快速检查清单

| 项目 | 环境 | 配置文件 | 关键配置项 | 说明 |
| --- | --- | --- | --- | --- |
| **Web** | 开发 | `admin/client/.env.development` | `VUE_APP_BASE_API` | 默认为 `/api`，配合 `vue.config.js` 代理 |
| **Web** | 预发布 | `admin/client/.env.staging` | `VUE_APP_BASE_API` | 默认为 `/stage-api` |
| **Web** | 生产 | `admin/client/.env.production` | `VUE_APP_BASE_API` | 默认为 `/api` |
| **小程序** | 开发 | `wechat-mini-program/config/env.js` | `configs.development.baseUrl` | **需修改为本机 IP** |
| **小程序** | 生产 | `wechat-mini-program/config/env.js` | `configs.production.baseUrl` | 修改为线上域名 |
