基于 PHP + Redis + MySQL 开发的微信小程序订阅消息推送系统。
支持:
- 微信小程序一次性订阅消息
- 微信小程序长期订阅消息
- Redis 高性能消息队列
- Worker 多进程并发
- QPS 限速
- TXT 导入 openid
- 模板管理
- 模板测试发送
- 实时任务监控
- 失败日志
- 企业级后台 UI
- ✅ 微信小程序订阅消息推送
- ✅ 一次性订阅 / 长期订阅
- ✅ Redis 高性能队列
- ✅ PHP Worker 多进程并发
- ✅ 自定义 QPS
- ✅ 推送任务暂停 / 继续 / 停止
- ✅ 推送实时进度
- ✅ 企业级后台 UI
- ✅ TXT 批量导入 openid
- ✅ 模板可视化编辑
- ✅ 模板测试发送
- ✅ 失败日志记录
- ✅ access_token Redis 缓存
- ✅ 实时数据可视化
- ✅ 登录权限验证
PHP 8+
Redis
MySQL
Worker CLI
微信 subscribeMessage.send
架构:
Web后台
↓
Redis Queue
↓
Worker 并发消费
↓
微信 subscribeMessage.send
wepush/
├─ api.php
├─ config.php
├─ worker.php
├─ login.php
├─ logout.php
├─ index.php
├─ install.sql
└─ README.md
PHP >= 7.4
Redis >= 5
MySQL >= 5.7
Linux 推荐
PHP 扩展:
redis
pdo
pdo_mysql
curl
json
mbstring
导入:
install.sql
编辑:
config.php修改:
$db = new PDO(
'mysql:host=127.0.0.1;dbname=数据库名;charset=utf8mb4',
'数据库账号',
'数据库密码'
);
$redis->connect('127.0.0.1', 6379);define('WX_APPID', '你的小程序appid');
define('WX_SECRET', '你的小程序secret');本项目需要使用:
exec
shell_exec
proc_open
popen
宝塔:
PHP设置
→ 禁用函数
删除:
exec,shell_exec,proc_open,popen
然后重启 PHP。
访问:
/login.php
默认账号密码:
admin
123456
修改:
login.php里面:
$ADMIN_USER = 'admin';
$ADMIN_PASS = '123456';支持:
- 一次性订阅
- 长期订阅
无需手写 JSON。
后台直接:
字段名
字段值
自动生成:
{
"thing1": {
"value": "测试内容"
}
}后台支持:
指定 openid 测试发送
测试 openid 自动本地缓存。
支持:
TXT 文件导入
格式:
openid1
openid2
openid3
也支持直接粘贴。
系统自动:
- 去重
- 过滤空行
- 统计数量
支持:
- Worker 并发
- QPS 控制
推荐:
QPS:20~50
Worker:5~10
支持:
- 实时进度
- 成功数
- 失败数
- 剩余数
- 环形进度图
- 动态数据面板
队列:
wepush:task:{task_id}:queue
任务状态:
running
paused
stopped
finished
统计:
success
fail
done
自动重试:
40001
42001
45009
45011
-1
默认:
最多重试 2 次
使用:
subscribeMessage.send
接口:
https://api.weixin.qq.com/cgi-bin/message/subscribe/send
微信限制:
用户必须授权订阅
否则:
43101
建议:
20~50 QPS
不要无限并发。
长期订阅仅部分行业开放。
- WebSocket 实时日志
- CSV 导入
- 多小程序支持
- Redis Stream
- Docker 部署
- 代理池
- 可视化图表
- 多管理员
- API Token
- 消息模板市场
MIT License
如果这个项目对你有帮助,欢迎 Star ⭐
WePush MiniProgram Push
基于 PHP + Redis 的微信小程序订阅消息推送系统



