feat: 支持大湾区球场监控

This commit is contained in:
richarjiang
2026-09-23 19:49:59 +08:00
parent 9adc665ef4
commit d4f55a97dc
32 changed files with 3888 additions and 46 deletions

View File

@@ -0,0 +1,38 @@
# 范思伯特福中福
- `courtId`:`fansibote-fuzhong`
- 名称别名:`范思伯特福中福`、`范思`、`福中福`
- 提供方:Pospal 微信小程序(`wxservice-stg48.pospal.cn`)
- 已接入适配器:仓库内 `src/main/adapters/fansibote-fuzhong/adapter.ts`(仅供 desktop 应用回放,skill 不依赖)
- skill helper:`scripts/pospal.mjs` 硬编码为本球场常量
## 球场常量(公开,写在协议里)
| 常量 | 值 |
|---|---|
| `STOREID`(Header) | `6038652` |
| `userId`(Body,数字) | `6038652` |
| `PROJECT_UID` | `1775556129325750199` |
| 微信号小程序 appid | `wx2088ca46b47d8be7` |
完整协议契约(端点、Header、请求体、响应体、状态码、错误分类)见 `references/protocol.md`,**本文件不重复**——agent 直接读 `protocol.md`。
## 用户提供的球场页面链接
仅用于"确认是这家球场"。agent 收到 `https://servicewechat.com/wx2088ca46b47d8be7/...` 类的链接时识别为本球场。链接中的 `appid` / `path` / `query` 参数不参与请求构造。
## 状态解释(球场专属)
- `canApptOrNot=true` 才计入可订
- `status=1` 已订、`status=4` 排课
- `enrollSlots` 覆盖的报名活动按已订处理,**不计入可订数量,不得触发自动锁场**
- `txtClassroomUid` 必须保持字符串,数值可能超过 JS 安全整数范围
## 写操作约束
- 列表请求**不**携带 `PSPLVISITORID`
- 锁场和释放**必须**携带 `PSPLVISITORID`
- 锁场一次提交完整连续组合的全部 `classroomItems`,不得拆单
- 锁场响应中的 `script` 对象(`paySign` 等)**绝不**打印、落盘、转发
- 锁场成功只是待支付,用户需去小程序完成支付
- 释放接口针对当前访客的全部锁场,agent **不主动调用**,除非用户明确说"释放我刚锁的那一笔"