107 lines
3.3 KiB
Markdown
107 lines
3.3 KiB
Markdown
# 丰享订单监控
|
||
|
||
自动监控丰享商家端(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
|