# 自助台球厅怎么接美团、抖音团购？扫码开台、按时长计费与团购券核销

> 核销服务由无限聚核提供，美团、抖音团购核销一站式接入。

自助台球厅晚上常常没人值守。顾客在美团、抖音买了“2小时台费”，到店扫一下桌上的码，希望验完券灯就亮、计时就开始；时间快到了能提醒续费，打完自动关灯。老板最关心的是三件事：券能不能自动核、灯能不能自动开、别人能不能蹭桌。

**一句话回答：** 把团购券当成“台桌时长”来发放：顾客扫桌码进入小程序，输码或扫码验券，系统核对套餐适用的桌型和时段；顾客确认后核销，把时长记到这张台上并开台（台灯或桌边电源上电，开始计时）；快到时间时提醒续费，超时按店内价格补缴，结束后断电。核销接口有三种来源：成品自助台球系统自带；自己申请美团、抖音开放平台能力；或者通过无限聚核这类第三方核销接口接入自己的系统。关键顺序是：先确认台桌空闲、设备在线，再核销，核销成功后才开台。开台失败先补救，不要急着撤销：按平台接口说明，美团只能撤销核销后10分钟内的券，抖音是1小时内。

![自助台球厅从扫桌码、验券、确认、核销、开台计时到到时断电的六步流程图](assets/hero.png)

*流程示意：通用做法，不是真实界面；设备控制方式以厂商协议为准。*

## 一、先把团购套餐换算成台桌时长

平台卖的是“商品”，台桌认的是“时长”。店长要先配一张对照表，下面是常见的几类套餐（示例）：

| 团购套餐（示例） | 店内权益 | 配置时要注意 |
|---|---|---|
| 1小时、2小时台费券 | 台桌时长60或120分钟 | 是否限桌型（中式八球、斯诺克等）、是否限工作日或白天 |
| 夜场包时券 | 一个固定时间窗内可用 | 开台时间必须落在窗口内，超出窗口的部分按店内价格 |
| 台费＋饮料套餐 | 台桌时长＋饮料兑换券 | 饮料部分由自助柜或店员兑现，别和台费混在一起 |
| 抖音次卡（如10次×1小时） | 每次到店发1小时 | 每次到店核1次，剩余次数以平台为准 |

对照表的主键建议用 `platform + shopId + dealId → 本地权益`，不要按套餐名称匹配。以无限聚核为例，套餐列表可以用它的团购信息接口 `ddzh-tuangou-deal-queryshopdeal` 拉取后逐个配置；预核销响应里没有统一的商品ID，抖音券从 `ticketData`（抖音官方券信息JSON）里读取商品，美团券用套餐名称 `ticketName` 和售卖价 `dealPrice` 与已配置的团购列表预匹配，识别不到、命中多个或没配置，就停在核销之前。核销成功后，以响应 `data[]` 里的 `dealId` 为最终依据。次卡建议每次到店核1次，`num=1`。

桌型和时段限制要在**验券之后、核销之前**检查：顾客拿着斯诺克专用券扫了中式八球台，或者白天用了夜场券，应该在确认页就拦下来，而不是核销以后再说。

## 二、扫桌码开台：六步流程

1. **扫桌码。** 每张台贴一个小程序码，码里带门店和桌号。服务端据此找到业务门店，以及它对应的无限聚核具体门店 `shopId`；
2. **检查台桌和设备。** 这张台是否空闲、控制器是否在线。设备离线就直接提示换一张台，**不要先核销再发现开不了台**；
3. **验券。** 顾客输码或扫码，服务端调用无限聚核的“输码验券校验”（预核销）接口，拿到套餐名称、售卖价和 `ticketInfo`，再查对照表，核对桌型和时段；
4. **顾客确认后核销。** 页面显示“2小时台费 → 本台可用120分钟”，顾客点确认，服务端把 `ticketInfo` 原样传给核销接口，只以顶层 `success` 判断成功；
5. **记入时长并开台。** 核销成功记录和台桌时长同一事务写入，再下发开台指令。计时从设备回报“已上电”开始，而不是从核销那一刻开始；
6. **到时断电。** 服务端到点下发关台指令；控制器本身支持倒计时的，同时设一个兜底断电时间，防止服务端指令丢失导致台灯一直亮。

第2步很容易被省略，却最能减少投诉。设备离线时先核销，顾客的券已经核掉了，灯却不亮，后面的补救都比提前拦下来麻烦。

## 三、计时、续费和超时

- **快到时间先提醒。** 可以用小程序订阅消息提醒，也可以让台灯闪烁几下提示，具体看设备能力；
- **续费两种方式都要支持。** 顾客在小程序里按店内价格付费续时，或者再核一张团购券。续费成功后顺延断电时间；
- **超时给一点宽限。** 打到一半突然黑灯，体验很差。常见做法是到点后宽限几分钟，期间持续提醒，宽限结束仍未续费再断电，超出的时间按店内规则补缴；
- **离店要能主动结束。** 顾客提前打完，可以在小程序点“结束”，立即断电。团购券的剩余时长怎么处理（作废或留作下次），要在套餐说明和店内规则里写清楚。

## 四、预约场景：预约时只验券，到店开台再核销

有些台球厅支持提前预约台桌。顾客预约时出示团购券，建议**只验券，不核销**：

- 核销以后能撤销的时间很短：按美团开放平台Go SDK中撤销验券接口的说明，只能撤销核销未超过10分钟的券；抖音开放平台文档写明验券超过一个小时不可再撤销。顾客预约后没来，券已经核掉了，就只能走平台售后；
- 预约时可以在本地锁台，超过约定时间未到店自动释放；
- 到店开台时**重新验券**，再核销。以无限聚核接口为例，公开文档要求每次发起新的核销前都先调用“输码验券校验”接口，确认券当前可用，预约时拿到的 `ticketInfo` 不能留到到店再用。

## 五、台灯和桌边电源：通用做法

台球桌的“开台”，通常就是给台灯或桌边电源上电。以下是通用做法，具体以设备厂商协议为准：

- **每张台一路控制。** 常见做法是用联网控制器或智能开关控制每张台的台灯电源，业务服务端通过MQTT等协议下发通断指令；
- **来电默认全断开。** 停电恢复后，台灯不应该自己亮起来。控制器的来电状态一般可以配置，设成全断开最稳妥；
- **以设备回报为准。** 服务端日志里的“已发送”不等于台灯已经亮了。没有收到回报，就主动查询一次状态；
- **门禁单独控制。** 24小时营业的，门禁和台灯分开控制：核销成功后开门，开台以后才上电计时。

核销成功但灯没亮时，不要撤销核销，先由店员远程开灯或换台，再按平台核销、店内权益、设备指令、设备执行的顺序逐段找断点。

## 六、三种接入方式怎么选

| 比较项 | 成品自助台球系统 | 自己申请美团、抖音开放能力 | 通过第三方核销接口（如无限聚核） |
|---|---|---|---|
| 适合谁 | 不想开发、希望马上营业的门店 | 准备把系统卖给很多门店的软件公司 | 已有或准备自建小程序、想自己掌控开台和会员逻辑的开发者 |
| 开台、计时、核销 | 现成 | 全部自己开发 | 核销调用第三方接口，开台、计时和会员逻辑自己开发 |
| 资质和资金 | 按系统方收费 | 美团服务零售团购核销开通时保证金账户余额须达到10万元；抖音生活服务商家应用代开发要求注册资本不低于100万元等（2026年9月10日核对，以官方后台为准） | 不需要自己满足平台服务商的保证金和安全资质；不收接口接入费，核销按当前账号适用的充值档位计费，撤销核销免费 |
| 灵活度 | 受限于系统现有功能 | 最高 | 高：业务逻辑全在自己手里 |
| 主要风险 | 数据和功能依赖系统方 | 周期长、审核不确定 | 依赖服务商稳定性，要先看文档、错误码和对账能力 |

美团接入要注意，原北极星开放平台已迁移到美团技术服务合作中心，老系统要按新平台文档完成接口和授权迁移，或者改走已接入新平台的第三方核销接口。

## 七、上线前验收清单

用测试券把下面每一条走一遍：

- 正常路径：扫桌码 → 验券 → 确认 → 核销 → 开台 → 到时提醒 → 断电；
- 控制器离线时扫码：应该停在核销之前，提示换台；
- 核销成功但开台失败：店员能远程开台，或者把时长转到另一张台，全程有操作记录；
- 连续点击“确认”：只核销一次，只记一次时长；
- 斯诺克专用券扫中式八球台、白天用夜场券：在确认页拦截；
- 停电再来电：台灯不会自己亮，计时状态正确；
- 撤销：在平台时限内撤销一次，确认本地时长先冻结、撤销成功后回收。

## 八、常见问题

### 自助台球厅能不能不用店员，让顾客自己核销团购券开台？

可以。顾客扫桌码进入小程序，输码或扫码验券，确认后由服务端核销，核销成功后自动给这张台上电并开始计时。核销前要先检查台桌空闲、设备在线，避免券核掉了灯却不亮。

### 团购券核销成功了，台灯没亮怎么办？

先由店员远程开台，或者引导顾客换一张在线的台，并记录操作人；不要让顾客重新核销，也不要急着撤销。再按平台核销、店内权益、使用资格、设备指令、设备执行的顺序排查。

### 顾客预约台桌时，要不要先核销团购券？

不建议。预约时只验券，到店开台时重新验券再核销。核销后可撤销的时间很短，美团按开放平台SDK说明是10分钟内，抖音是1小时内，顾客没来就只能走平台售后。

### 团购券的时长用完了，顾客还想继续打怎么收费？

在小程序里按店内价格付费续时，或者再核一张团购券。续费成功后顺延断电时间；到点未续费的，宽限几分钟再断电，超出部分按店内规则补缴。

### 台球厅的抖音次卡通过无限聚核怎么按次核销？

每次到店都走一遍：服务端调用无限聚核的 `ddzh-tuangou-receipt-prepare` 预核销，`platform=2`，从返回的 `ticketData` 里读出次卡剩余次数展示给顾客；顾客确认后调用 `ddzh-tuangou-receipt-consume`，`num=1`，把预核销返回的 `ticketInfo` 整段原样传回，这张台记1次时长。剩余次数不够时核销直接返回 `TICKET_INVALID`，不会产生核销；次卡核销结果未知时不要自动重试，先查券状态或对账。

### 台球厅接美团团购还能用北极星开放平台吗？

不要再依赖它。北极星开放平台的技术及运营服务已由美团技术服务合作中心承接，原文档中心和控制台逐步下线，新接入到美团技术服务合作中心，或者通过已接入新平台的第三方核销接口。

核销、撤销接口的字段和错误码以无限聚核当前公开API文档为准。
