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