GS1 Digital Link 检查器

粘贴一个 Digital Link URI。本工具按标准定义的路径语法检查它,而更有用的是 —— 直接把修正后的 URI 交回给你。标准最近的两处改动悄悄让大量既有链接失效,而它们都不会让 URI 看起来有问题。

🔒 你的数据不会离开浏览器。

让既有链接失效的那两处改动

字母名是被移除了,而不只是不推荐。/gtin/09520123456788 这类路径在标准 1.2 版被标为弃用,自 1.3.0 版起已完全移除。解析器不再有义务认识它们。这一点值得说准确,因为「弃用」和「移除」常被记成同一回事,而两者的后果完全不同。

GTIN 现在必须写成十四位。自 1.4.0 版起,语法要求 GTIN 以 14 位表达,所以 GTIN-8、GTIN-12 或 GTIN-13 都要补前导零凑足。几乎所有在那次改动之前写下的 Digital Link 都带 13 位。码本身仍然是对的,校验位也不变 —— 变的只是表示形式,而正是这一点决定了它符不符合规范。

限定符顺序是语法,不是偏好

主键后面可以跟键限定符,而它们的先后顺序是固定的。对 GTIN 而言是:消费品变体、批次号、序列号。标准明确给出了顺序颠倒的反例:/01/…/21/12345XYZ/10/ABC123 是不允许的,而 https://id.gs1.org/01/09520123456788/10/ABC123/21/12345 是允许的。

属性应当写在问号之后

键限定符收窄的是 URI 标识的是什么。而数据属性 —— 有效期、净重、价格 —— 只是描述它,标准规定它们应当以 key=value 的形式写在查询串里。把 /17/261001 写进路径,会让一个属性看起来像限定符,而那会改变这个 URI 所主张的身份。

每个主键,以及它后面可以跟什么

AI主键允许的限定符及其顺序
01 GTIN 全球贸易项目代码 22 消费品变体 → 10 批次号 → 21 序列号
8006 ITIP(单个贸易项目件) 22 消费品变体 → 10 批次号 → 21 序列号
8013 GMN(全球型号编号) 无
8010 CPID(部件标识符) 8011 CPID 序列号
414 实体位置 GLN 254 GLN 扩展位
415 开票方 GLN 8020 付款单参考号(必填)
417 参与方 GLN 无
8017 服务提供方 GSRN 8019 服务关系实例号
8018 服务接受方 GSRN 8019 服务关系实例号
255 GCN(全球优惠券编号) 无
00 SSCC(系列货运包装箱代码) 无
253 GDTI(全球文件类型标识符) 无
401 GINC(全球货物托运编号) 无
402 GSIN(全球装运标识编号) 无
8003 GRAI(全球可回收资产标识符) 无
8004 GIAI(全球单个资产标识符) 无

由一个 GTIN 构建

GTIN 会被补足到 14 位,限定符也按标准要求的顺序摆放,所以产出的结果在构造上就是符合规范的。

本工具执行的全部检查(共 14 条规则)

DL-P01不是主标识键

路径里第一个数字段不属于标准允许作为主键的那十六个应用标识符。Digital Link URI 必须从一个主键开始 —— 只有属性的路径什么都标识不了。

修复: 以主键开头,例如商品用 /01/。

来源: GS1 — Digital Link Standard: URI Syntax

DL-P02没有找到 GS1 路径

路径里没有任何一段像是「应用标识符 + 取值」。这个 URI 可能只是一个普通的商品页,而不是 Digital Link。

来源: GS1 — Digital Link Standard: URI Syntax

DL-A01便捷字母名

/gtin/ 这类写法(而不是 /01/)在标准 1.2 版被标为弃用,自 1.3.0 版起已完全移除。仍在使用它们的 URI 不再符合规范,解析器也没有义务认识它们。这是旧的 Digital Link 停止工作最常见的单一原因。

修复: 把字母名换成对应的数字 AI,例如 /gtin/ 换成 /01/。

来源: GS1 — Digital Link Standard: URI Syntax

DL-G01GTIN 不是 14 位

自 1.4.0 版起,标准要求 GTIN 以 14 位表达:GTIN-8、GTIN-12 或 GTIN-13 都要补前导零凑足。在那次改动之前写下的 Digital Link URI 多数带 13 位,即便码本身没错,也已不再符合规范。

修复: 补前导零到 14 位。

来源: GS1 — Digital Link Standard: URI Syntax

DL-G02GTIN 校验位错误

路径里的 GTIN 没通过 GS1 模 10 校验。建在打错的 GTIN 上的 Digital Link,要么解析到另一件商品,要么什么都解析不到。

修复: 构造 URI 之前先校验这个码。

来源: GS1 — Digital Link Standard: URI Syntax

DL-Q01该主键不允许这个限定符

每个主键都只允许一组固定的键限定符,别的都不行。GTIN 接受消费品变体、批次号与序列号;SSCC 则一个都不接受。

修复: 把这个值移到查询串里作为数据属性,或者去掉它。

来源: GS1 — Digital Link Standard: URI Syntax

DL-Q02限定符顺序不对

键限定符的先后顺序是语法的一部分,不是偏好。对 GTIN 而言顺序是:消费品变体、批次号、序列号。标准明确把「序列号在批次号之前」的写法列为反例。

修复: 重排路径段;正确顺序是消费品变体 → 批次号 → 序列号。

来源: GS1 — Digital Link Standard: URI Syntax

DL-Q03缺少必需的限定符

少数主键不能单独出现。开票方 GLN 后面必须跟付款单据参考号。

修复: 补上必需的限定符。

来源: GS1 — Digital Link Standard: URI Syntax

DL-A02数据属性出现在路径里

数据属性 —— 有效期、净重、价格等等 —— 应当以 key=value 的形式写在查询串里。把它们放进路径会让它们看起来像键限定符,而那会改变这个 URI 所标识的东西。

修复: 移到查询串里:用 ?17=261001 而不是 /17/261001。

来源: GS1 — Digital Link Standard: URI Syntax

DL-A03数据属性在查询串里

属性出现在它们该在的位置 —— 问号之后的 key=value 对。

来源: GS1 — Digital Link Standard: URI Syntax

DL-S01不是 HTTPS

Digital Link 是消费者对着实物商品扫出来的。用明文 HTTP 提供服务会让这次扫描暴露在中间人面前,而且每一个现代浏览器都会给出警告。

修复: 用 HTTPS 提供解析服务。

来源: GS1 — Digital Link Standard: URI Syntax

DL-S02自有域名

这个 URI 用的是你自己的域名,而不是规范域名 id.gs1.org。这是允许的 —— GS1 路径之前可以有零个或多个路径段 —— 也是品牌自建解析器的常规选择。

来源: GS1 — Digital Link Standard: URI Syntax

DL-C01看起来是压缩形式

这个 URI 似乎使用了压缩形式。压缩定义在另一份 GS1 标准里,本工具不解压,所以下面的各项检查对它不适用。

修复: 改用未压缩形式的 URI 再检查。

来源: GS1 — Digital Link Standard: URI Syntax

DL-N01符合规范

这个 URI 符合标准为其主键定义的语法。

来源: GS1 — Digital Link Standard: URI Syntax

本页的每一条规则都来自 GS1 — Digital Link Standard: URI Syntax。压缩形式的 URI 能被识别但不会被解码 —— 压缩是另一份 GS1 标准,对它进行猜测比直说不支持更糟。

关于这些规则。 每一条都有编号、严重级别和通俗解释。每个来源链接都已登记在案,并对线上页面实际复验过,而不是凭印象写上去的. 规则如何编写、测试与保持更新 →