签到功能的核心不是展示一个二维码,而是证明“这条报名记录在指定活动和时间内,被有权限的工作人员确认到场”。小程序、H5 与后台核销端都不应仅凭前端传来的报名编号直接改成已签到。
设计可验证的一次性凭证
为报名记录生成短时有效、难以猜测的签到凭证,服务端核验凭证对应的活动、报名人、有效期和使用状态。核销成功时用原子更新确保同一凭证只能消费一次;重复扫码返回“已签到”结果,不重复计数。
明确工作人员的核销范围
- 核销账号需登录,并确认其被授权管理当前活动。
- 扫码后由服务端校验活动状态、报名审核状态及凭证有效期。
- 成功核销时写入时间、核销员工和渠道,供活动后复盘。
- 工作人员离线或网络不稳定时,先显示待确认,不要将前端缓存当成最终签到结果。
位置签到属于额外校验,需说明采集目的并取得用户授权。用户拒绝位置授权时,应提供合理的人工核验路径;地理围栏阈值还要考虑室内定位误差,不宜把定位失败直接等同于违规。
关注隐私与现场体验
签到页只展示完成核验所需的信息,避免把完整手机号等敏感资料暴露给扫码人员。现场应准备按姓名或报名码查询的备用流程,并对高峰扫码进行并发测试。真正可靠的核销,是服务端校验、幂等写入、操作留痕和现场兜底共同工作的结果。