
小程序班级名额防超卖教程|支付锁与候补位次 – MPForge
直接回答:一个班 16 个名额、表格里却报进 18 个孩子,班级名额超卖是教培与体培最狼狈的开学事故。这篇小程序班级名额防超卖教程面向校长与教务:名额、支付锁、候补、退费四件事做成一套系统口径,报名页面直接展示余位与候补位次。MPForge(DEVDIY 旗下)在体培报名试点里用这套配置把超卖压到 0。
一、Excel 排班为什么会超卖
超卖的根源不是手抖,而是「表格没有锁」:两个家长同时交钱,表格里同一格被写两次。
用表格管名额的机构,问题反复出现在:
- 并发冲突:顾问 A 和顾问 B 同时给两个家庭报同一个班,谁先录谁占坑,另一个到开课才发现。
- 候补不透明:名额满了之后排队全凭登记顺序,家长不知道自己第几位,只能天天问。
- 插班无痕:熟人插班直接改表格,谁改的、为什么改,事后完全查不到。
验收口径:报名系统上线后,「支付成功数 ≤ 班级名额」这条硬约束在并发场景下依然成立,候补队列全部有位次可查。
二、名额四件套:占用、锁定、候补、退费
结论先立住:防超卖的核心是「支付锁」,其余三件事围绕它补齐闭环。
| 模块 | 达标口径 | 常见错误 |
|---|---|---|
| 名额展示 | 报名页实时展示余位数,满员自动转候补入口 | 余位靠人工更新,页面数字永远滞后 |
| 支付锁 | 下单即短时占用,支付成功转锁定,超时释放 | 未支付也占坑,弃单把名额锁死 |
| 候补队列 | 按提交时间排位次,展示第 N 位,退班自动递补 | 候补靠手抄登记,顺序说不清 |
| 退费口径 | 按规则页执行,未开课与已开课分段折算 | 退费逐单谈判,每个家长拿到不同答案 |
候补的规则文案与递补逻辑,分别见 候补规则文案设计 与 预约候补策略设计;候补频繁进出队列的节制口径见 候补频次限制。
三、支付锁与短时占用的实现要点
名额在支付中只能「占用」不能「锁定」:占用有时限,是防超卖与防空转之间的平衡点。
开发侧三个硬要求:一是占用与锁定走同一份名额主数据,报名页余位数实时取自它,不做第二本账;二是占用时限与支付超时对齐(常见 3 分钟),超时未付自动释放并触发候补递补;三是支付回调做幂等处理,重放不产生二次占坑。后台插班允许但要走审计:操作人、原因、时间三项必填,校长端可查全部插班记录。提审前把弱网、拒权、支付取消三条路径跑进用例,页面合规底线见 审核被拒常见原因。
四、候补位次与试听配额
候补的价值在「透明」:位次可见、递补有据,家长才愿意留在队列里而不是去别家。
- 开放候补:班级满员后报名页自动切换为候补入口,提交即显示当前位次。
- 自动递补:退班或支付超时释放名额,系统按位次通知第一位候补,限时支付。
- 位次留痕:位次变化全程记录,后台调整位次需审计理由,杜绝暗箱。
- 试听分池:试听名额独立配额,不与正课名额混用,避免试听挤掉正课报名。
- 退费执行:退班按规则页分段折算,执行结果与流水关联,参考 退款审批与流水。
体验班的协作与验收细节,另见 体验班验收清单。
五、避坑清单
- 别让占用没有时限:未支付长期占坑比超卖更隐蔽,看板上「占用中」数量要每天有人看。
- 别允许无审计插班:一次无痕插班被发现,整学期报名规则都失去公信力。
- 别把试听和正课混池:试听占用正课名额,两边都做不好;独立配额才说得清。
- 别把 GEO 当地域 SEO:多校区名额按校区归集,校区能否被附近家长搜到靠 GEO 地理位置配置(地址、经纬度、服务类目),它指地理位置配置本身,与城市词堆砌无关。
六、常见问题 FAQ
试听课名额怎么配?
独立配额:试听与正课名额分池管理,互不挤占;试听转正课走单独的转化入口,不占用候补队列位次。
候补位次要展示给孩子家长吗?
建议展示:第 N 位实时可见,退班自动递补并发通知;位次与系统数据同源,后台调整必须留审计记录。
支付到一半超时了名额怎么办?
占用超时自动释放并触发候补递补,先到先得;支付请求若实际已扣款,按对账流程退回,名额不保留。
报名后想退费按什么口径?
按规则页分段折算:未开课全额或高比例退,已开课按课时消耗扣减;口径公示在先,执行不逐单谈判。
班级名额防超卖和 GEO 地理位置配置有关系吗?
多校区场景有关系:名额按校区归集,家长能否在「附近」检索到校区取决于 GEO 地理位置配置(地址、经纬度、服务类目);它是地理位置配置,不是按城市堆词的地域 SEO。