把作废票号抄进一张表不难,难的是这张表在哪一层生效。线上接口、窗口终端、闸机、手持检票机,四层各有各的判断点,少同步一层,那一层就是漏的。判据不是“有没有名单”,而是随便挑一张已作废票号,能不能在这四层里都过不去。做不到,名单攒得再长也只是心理安慰。
一、进名单的只认五类。已作废、已挂失、已退款、被判定二次入园、被风控标记的异常票。这五类之外不许往里加东西。日常最容易加错的是“已过期”——过期票不是黑名单票,它只是没被使用,把成千上万张过期票塞进名单,名单体积迅速膨胀,通道侧每刷一次都要全表匹配,几百毫秒的延迟就是这么来的。判据:名单里每一条都必须有自己的触发动作,写清谁、在什么时间、因为什么把它拉进来。说不出触发动作的条目算脏数据,每周清一次。
二、四层各拦什么动作。线上接口拦的是能不能出票,窗口拦的是能不能补打,闸机与手持拦的是能不能进。四层用的是同一份票号集合,但生效点完全不同。合格标准只有一条:任一层查名单失败时按保守处理,拦下来交人工核验,不许默认放行。离线的手持机拿不到最新名单,这段时间该通道改人工看票,同步回来后补一条记录,别让人拿着已经作废的票从这一条门进去。

三、名单下发分三档时限。窗口挂失当场产生的条目,5 分钟内到齐闸机与手持;系统自动作废的条目,15 分钟内下发完毕;批量导入的历史作废票,放到闭园后统一推送,不占白天链路。判据看两个数:单日下发成功率低于 99%,当天就要查是哪几条通道没回执;生效延迟超过 30 分钟的条目,逐条写明原因,不许在日报里合并成一句“网络波动”。
四、误拦比漏拦更贵。名单必须能解释每一次拦截。拦截日志留五样:票号、命中的条目编号、命中在哪一层、发生时间、当次放行人。现场有争议时,先看命中原因再决定放不放,而不是先看游客情绪。阈值写在值班手册上:单日误拦笔数超过当日检票总量的 0.05%,或同一票号被拦两次以上,立刻回查数据来源。这种情况多是渠道侧退票没带回执,自家名单落后于对方一天。

五、清名单和加名单一样重要。只进不出的名单,最后没人敢用。给每一条一个保留期:常规单日票的条目保留到有效期后 180 天,年卡、次卡这类长周期凭证保留到卡内最后一次可用日期后 365 天。到期不删记录,只挪进历史表,历史表仍可按票号查到。判据是名单外的任何一个票号,都能查出它什么时候进的、什么时候出的、谁批的出。
先做的不是攒名单,是把四层收敛成共用一份。闸机存一份、窗口存一份,就是两套账,谁都对不齐。第二步给每一条拦截加上可解释的命中原因,把放行动作记到具体人名。第三步再谈保留期与清理任务。顺序反过来,名单会越滚越大,最后通道响应变慢,运维要求临时放宽超时,拦截本身就形同虚设了。

鄂公网安备 42018502004652号