活码域名合规是一类把域名资质做成发布前置条件的校验机制:域名必须完成所有权验证、ICP 备案与微信三项白名单,未备案直接禁止发布活码;域名被封时自动切换到已备案的备用域名,让已经印出去的码继续可用。它的作用不是走形式,而是把「码印出去之后打不开」这个最贵的故障挡在上线之前。

活码域名合规是一类什么机制?

是一类把「能不能对外服务」拆成可勾选项的准入校验。

活码之所以需要这层校验,是因为它和普通短链不同:短链挂了换一条就行,活码挂了意味着一批已经印在物料、发在群里的二维码全部失效。而活码失效的最主要原因,从来不是代码 bug,是域名出问题——没备案被拦、没加白名单在微信里打不开、被举报封禁。

所以合规校验的位置很靠前:发布活码之前就要过,过不了不许发布。 这条规则看起来很硬,实际是替使用者省事——上线之后才发现打不开,损失的是已经发出去的物料和信任。

所有权验证、备案、微信白名单,三者为什么不能省其一?

因为三者管的是三件不同的事,缺一件都有明确的失败场景。

所有权验证证明这个域名确实归你控制。方式有两种:加一条 DNS 记录,或者上传一个指定文件到网站根目录。验证不过,说明域名可能不是你的,或者解析还没生效——这种情况下让你发布活码,等于允许你占用别人的域名。

ICP 备案是境内提供互联网信息服务的准入要求。备案号、备案主体、备案状态三项要能对上,状态分未备案、备案中、已备案、备案失效。未备案的域名在境内被拦截是常态,不是意外。

微信三项白名单决定微信内能不能正常打开:网页授权域名、JS 接口安全域名、业务域名。这三项是在微信公众平台后台逐项配置的,缺一项就会出现「别人发在群里、点开一片空白」的情况,而用浏览器测试又完全正常——这是最难排查的一类故障。

未备案为什么直接禁发布,白名单却只禁发布不禁保存?

因为两者的可修复性差了一个量级。

备案要走审核流程,周期以天甚至周计,短期内使用者改不了,只能等。所以规则定成硬拦截:未备案,连发布按钮都点不了,避免有人抱着试试看的心态上线。

白名单不一样,它是后台几项配置,填完保存当场生效,最长等几分钟。所以允许保存活码草稿、允许配置、允许预览,只是不许发布。这个差别处理的本质是:能当场修的问题不该拦住人,需要外部流程的问题必须拦住。

顺带一个实操细节:域名合规检查还应该跟到期时间挂钩。域名到期前就要提醒,因为域名过期比备案失效更常见,而后果一样严重——解析一停,所有码全部指向空白。

域名被封之后备用域名怎么接上?

在跳转链路上做兜底,不改码本身。

机制是这样的:一次扫码进来,服务端先判断当前请求落在哪个域名上,然后检查这个域名的合规状态与封禁标记。合规就直接用它,不合规就按优先级换下一个备用域名,都不合规才展示维护页。整个过程用户看不到,地址栏可能变一下,但页面照常到。

这里有个容易忽略的点:备用域名不能是随便一个域名,它同样要过备案与白名单。很多人栽在这一步——主域名被封,切到一个没备案的备用域名,结果还是打不开。 所以备用域名应该提前配好、提前验证,而不是出事时临时找。

域名健康度该看哪几个数?

四个:可用率、跳转成功率、拦截次数、关联活码数。

可用率反映域名本身的技术状态,跳转成功率反映业务链路的实际效果,这两个数如果背离——比如可用率 99% 但跳转成功率只有 70%——说明问题出在跳转之后的环节,通常是目标链接失效或风控拦截。

另外两个数看风险敞口。拦截次数直接反映这个域名在微信里的处境,短期内快速上升就是封禁前兆;关联活码数决定了这个域名出问题时的爆炸半径,一个域名挂着八百条码和一个域名挂着八条码,处置优先级完全不同。这也是为什么删除域名之前必须提示其下挂载的活码数量,并提供批量转移入口——直接删掉一个挂着几百条码的域名,等于一次性让几百个码失效。

和域名跳转管理系统那种纯跳转工具相比,这里多的不是功能,而是「先证明自己有资格提供服务,再提供服务」的顺序。这个顺序在活码SaaS平台源码里被写成了硬约束,也是多租户平台和单机工具最实质的差别之一。


延伸阅读:整体链路见活码SaaS平台源码;批量维护见活码批量导入源码;计费与配额见活码SaaS计费配额。

声明:本文基于常见系统设计模式与公开技术资料整理,所述功能为同类系统的通用能力描述,不针对任何特定厂商的产品;备案与白名单的具体要求以主管部门与平台官方规则为准。