# wechat-mp-message-push
**Repository Path**: m5-work/wechat-mp-message-push
## Basic Information
- **Project Name**: wechat-mp-message-push
- **Description**: 微信消息推送系统是一个基于Flask开发的后台管理系统,用于管理微信公众号消息推送、模板消息发送、自动回复规则设置等功能。该系统支持多微信账号管理、消息推送任务调度、推送记录查询等核心功能,为企业和开发者提供便捷的微信消息管理解决方案。
- **Primary Language**: Unknown
- **License**: MulanPSL-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-02-12
- **Last Updated**: 2026-02-12
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 微信消息推送系统
## 项目简介
微信消息推送系统是一个基于 **Flask** 开发的后台管理系统,旨在为微信公众号提供便捷的消息管理能力。系统支持多账号管理、模板消息的创建与推送、任务调度、关键词自动回复以及用户权限管理,是企业和开发者实现微信消息自动化的理想解决方案。
## 项目应用
- **微信公众号:M5Bot短讯**
## 技术栈
- **后端框架**: Flask 2.0.1
- **数据库**: MySQL (SQLAlchemy ORM)
- **任务队列**: Redis + Celery (异步任务处理)
- **认证授权**: JWT (Flask-JWT-Extended)
- **前端**: HTML + CSS + JavaScript (Bootstrap 风格)
- **依赖管理**: python-dotenv, requests, xmltodict
## 项目结构
```
wxmsg/
├── api/ # RESTful API 接口模块
│ ├── auth.py # 用户认证 (登录/登出/刷新)
│ ├── account.py # 公众号账号管理
│ ├── template.py # 模板消息管理
│ ├── push.py # 消息推送接口
│ └── reply.py # 自动回复规则接口
├── config/ # 配置文件
│ ├── config.py # Flask 及基础配置
│ └── wechat.py # 微信错误码配置
├── message/ # 消息业务逻辑
│ ├── push.py # 推送处理逻辑
│ └── template.py # 模板同步与处理
├── models/ # 数据库模型
│ ├── account.py # 公众号账号
│ ├── template.py # 消息模板
│ ├── record.py # 推送记录
│ ├── reply_rule.py # 自动回复规则
│ ├── task.py # 定时任务
│ ├── web_user.py # 后台用户
│ └── user_message.py # 用户消息
├── tasks/ # Celery 异步任务
│ └── push.py # 消息推送任务
├── utils/ # 工具类
│ ├── weixin/ # 微信 SDK (Auth, Client, Callback, Token)
│ ├── crypto.py # 加密/签名验证
│ ├── http.py # HTTP 请求封装
│ └── xml.py # XML 解析与生成
├── web/ # Web 前端页面
│ ├── static/ # 静态资源 (CSS, JS)
│ └── templates/ # HTML 模板
├── app.py # 应用入口
└── requirements.txt # Python 依赖列表
```
## 核心功能
### 1. 微信账号管理
支持添加、编辑、删除多个微信公众号账号,并自动维护 `access_token`。
### 2. 模板消息管理
支持从微信服务器同步模板库,并在本地进行管理(增删改查),支持模板预览。
### 3. 消息推送
- **即时推送**: 手动向单个或批量用户发送模板消息。
- **定时推送**: 创建定时任务,由 Celery 异步执行。
- **推送记录**: 详细记录每次推送的状态与结果。
### 4. 自动回复
- **关键词回复**: 根据用户发送的关键词自动匹配规则并回复。
- **关注/事件回复**: 用户关注公众号时自动发送欢迎信息。
- **消息类型回复**: 支持文本、图片、图文等多种回复类型。
### 5. Web 后台管理
- 用户登录/登出 (JWT 认证)。
- 密码修改。
- 简洁的 Web 界面管理所有功能。
## 快速开始
### 环境要求
- Python 3.7+
- MySQL 5.7+
- Redis 5.0+
### 安装步骤
1. **克隆项目**
```bash
git clone <项目地址>
cd wxmsg
```
2. **创建虚拟环境**
```bash
python -m venv .venv
```
3. **激活虚拟环境**
- Windows:
```bash
.venv\Scripts\activate
```
- Linux/Mac:
```bash
source .venv/bin/activate
```
4. **安装依赖**
```bash
pip install -r requirements.txt
```
5. **配置环境变量**
复制 `.env_template` 为 `.env` 并修改数据库和 Redis 配置:
```bash
# 数据库连接
DATABASE_URL=mysql+pymysql://username:password@localhost:3306/wxmsg
# Redis 连接
REDIS_URL=redis://localhost:6379/0
# JWT 密钥
SECRET_KEY=your_secret_key
```
6. **启动应用**
```bash
# 启动 Flask 主服务
python app.py
```
7. **启动 Celery Worker**
(在新的终端窗口中执行,用于处理异步推送任务)
```bash
celery -A tasks worker --loglevel=info
```
8. **访问系统**
浏览器访问:`http://localhost:5000/web`
**默认登录账号**:
- 用户名:`admin`
密码:`admin123`
## API 文档
所有 API 均需在 Header 中携带 `Authorization: Bearer ` 进行认证 (除登录接口)。
### 认证接口
- `POST /api/auth/login` - 用户登录
- `POST /api/auth/logout` - 用户登出
- `POST /api/auth/refresh` - 刷新访问令牌
### 公众号账号接口
- `GET /api/accounts` - 获取账号列表
- `POST /api/accounts` - 添加账号
- `PUT /api/accounts/` - 更新账号信息
- `DELETE /api/accounts/` - 删除账号
### 模板消息接口
- `GET /api/templates` - 获取模板列表
- `POST /api/templates` - 创建模板
- `PUT /api/templates/` - 更新模板
- `DELETE /api/templates/` - 删除模板
- `GET /api/templates/wechat/` - 从微信同步模板
### 消息推送接口
- `POST /api/push/immediate` - 立即推送消息
- `POST /api/push/scheduled` - 创建定时推送任务
- `GET /api/push/tasks` - 获取任务列表
- `GET /api/push/tasks/` - 获取任务详情
- `GET /api/push/records` - 获取推送记录
### 自动回复接口
- `GET /api/reply/rules` - 获取回复规则列表
- `POST /api/reply/rules` - 创建回复规则
- `PUT /api/reply/rules/` - 更新回复规则
- `DELETE /api/reply/rules/` - 删除回复规则
- `GET /api/reply/messages` - 获取用户消息记录
## 微信回调配置
要在公众号上启用自动回复等功能,需要配置服务器回调:
1. 登录 **微信公众平台**。
2. 进入 **开发 -> 基本配置**。
3. 修改服务器配置:
- **服务器地址 (URL)**: `http://你的域名/wechat/callback`
- **令牌 (Token)**: 在系统后台的公众号管理中配置
- **消息加密方式**: 根据需要选择 (系统支持明文/加密模式)
4. 启用配置后,系统将自动处理微信推送的消息和事件。
## 常见问题
### 1. 微信 Access Token 获取失败
- 检查 `.env` 中配置的 `AppID` 和 `AppSecret` 是否正确。
- 确保服务器网络可以访问微信 API (`api.weixin.qq.com`)。
- 确认公众号已认证(部分权限需要认证资质)。
### 2. 模板消息发送失败
- 确认模板 `ID` 与使用的公众号匹配。
- 检查模板变量 (`data`) 的格式是否与微信要求一致。
- 确保接收者的 `openid` 有效且属于该公众号。
### 3. 自动回复不生效
- 确认微信后台的服务器配置已启用。
- 检查回复规则中的关键词是否设置正确(注意大小写和空格)。
- 前往"自动回复"页面检查规则是否处于"启用"状态。
---
**版本**: 1.0.0
**更新日期**: 2026-02-12