Initial commit: Fengxiang order monitor with WeChat & Xiaomi speaker push
This commit is contained in:
@@ -0,0 +1,106 @@
|
||||
# 丰享订单监控
|
||||
|
||||
自动监控丰享商家端(fs.szfx.com)的新订单,同时推送到**企业微信群**和**小爱音箱语音播报**。
|
||||
|
||||
## 功能特性
|
||||
|
||||
- **自动轮询**:高峰期(11-13点、17-19点)10-20秒/次,闲时30-60秒/次
|
||||
- **双通道推送**:新订单同时推送企业微信消息 + 小爱音箱 TTS 语音播报
|
||||
- **Cookie 复用**:首次登录后保存 Cookie,后续启动无需重复登录
|
||||
- **夜间暂停**:21:00 ~ 07:40 自动暂停轮询,节省资源
|
||||
- **Session 保活**:每5分钟自动发请求维持 Cookie 活性
|
||||
- **过期自动恢复**:Cookie 过期时弹浏览器提示重新登录,并推送企业微信通知
|
||||
- **开机自启**:支持 Windows 计划任务,登录系统后自动运行
|
||||
|
||||
## 快速开始
|
||||
|
||||
### 1. 安装依赖
|
||||
|
||||
```bash
|
||||
pip install playwright requests miservice_fork aiohttp
|
||||
playwright install chromium
|
||||
```
|
||||
|
||||
### 2. 配置小米音箱(可选)
|
||||
|
||||
首次使用需要获取小米 passToken:
|
||||
|
||||
```bash
|
||||
python setup_xiaomi.py
|
||||
```
|
||||
|
||||
浏览器打开后手动登录小米账号,Token 自动保存到 `~/.mi.token`。
|
||||
|
||||
### 3. 运行监控
|
||||
|
||||
```bash
|
||||
python order_monitor.py
|
||||
```
|
||||
|
||||
首次运行会打开浏览器,手动完成丰享平台登录(有腾讯验证码,需人工操作)。登录成功后 Cookie 自动保存,之后重启无需再登录。
|
||||
|
||||
### 4. 测试推送
|
||||
|
||||
```bash
|
||||
python test_push.py
|
||||
```
|
||||
|
||||
拉取最新一条订单,测试企业微信和小爱音箱是否正常。
|
||||
|
||||
## 文件说明
|
||||
|
||||
| 文件 | 用途 |
|
||||
|------|------|
|
||||
| `order_monitor.py` | 主监控程序,轮询订单 + 推送 + 播报 |
|
||||
| `test_push.py` | 测试脚本,验证企业微信和音箱通道 |
|
||||
| `push_latest_order.py` | 单次获取最新订单并推送企业微信 |
|
||||
| `fetch_orders.py` | 命令行获取订单数据(JSON 输出) |
|
||||
| `fengxiang_scraper.py` | Playwright 半自动登录获取 Cookie |
|
||||
| `setup_xiaomi.py` | 小米账号登录获取 serviceToken |
|
||||
| `run_monitor.bat` | Windows 启动批处理 |
|
||||
| `setup_autostart.ps1` | Windows 开机自启配置脚本 |
|
||||
|
||||
## 已逆向的 API
|
||||
|
||||
### 丰享平台
|
||||
|
||||
- **登录**:`POST https://fspass.szfx.com/api/login`
|
||||
- 参数:`uname`(手机号)、`upass`(密码 Base64 反转)、`ticket`、`randstr`(腾讯验证码)
|
||||
- Cookie:`USS`、`PTOKEN`、`CPTOKEN`、`STOKEN`
|
||||
|
||||
- **订单列表**:`POST https://fs.szfx.com/saasmerchant/pcweb/order/quickpayorder/list`
|
||||
- Content-Type: application/json
|
||||
- Body: `{"shopId": "...", "page": 1, "pageSize": 20}`
|
||||
- 返回:`{errno: 0, data: {total, list: [...], count}}`
|
||||
|
||||
### 小米/小爱音箱
|
||||
|
||||
- 使用 [miservice_fork](https://github.com/nicepkg/miservice_fork) Python 库
|
||||
- TTS 播报:`MiNAService.text_to_speech(deviceId, text)`
|
||||
- Token 保存在 `~/.mi.token`
|
||||
|
||||
## 消息格式
|
||||
|
||||
企业微信和小爱音箱使用统一格式:
|
||||
|
||||
> 【丰享丰食】订单收款成功,收款24.00元
|
||||
|
||||
## 开机自启(Windows)
|
||||
|
||||
已配置计划任务 `FXOrderMonitor`,用户登录时自动运行。
|
||||
|
||||
```powershell
|
||||
# 手动配置
|
||||
.\setup_autostart.ps1
|
||||
```
|
||||
|
||||
## 注意事项
|
||||
|
||||
- 丰享登录有腾讯验证码 TCaptcha,无法纯接口绕过,首次必须用浏览器登录
|
||||
- Cookie 有效期较长,持续使用可维持;过期会自动弹窗提示重新登录
|
||||
- 小米 passToken 会过期,过期后需重新运行 `setup_xiaomi.py`
|
||||
- 配置文件(cookies.json、xiaomi_config.json)含敏感信息,已加入 .gitignore
|
||||
|
||||
## License
|
||||
|
||||
MIT
|
||||
Reference in New Issue
Block a user