TL;DR
- GS1 Digital Link URI 是一个语法固定的网址:一个域名,一个主键(例如
/01/加 14 位 GTIN),路径中可选的键限定符,以及查询字符串中的数据属性。 - 其中的数字是 GS1 应用标识符(AI),与 GS1-128 条码使用的完全相同,因此 URI 可以转换为传统的元素串,再转换回来,不会丢失任何 GS1 数据。
- 容易出错的规则有:GTIN 补零到 14 位并带有有效的校验位,限定符按固定顺序排列(
22、10、21),属性只能放在?之后,数值中的符号须进行百分号编码。
GS1 Digital Link URI 是一个以标准结构承载 GS1 标识符的 HTTPS 地址,因此手机可以打开它,扫描器也可以从中提取标识符。路径承载身份;查询字符串承载附加数据和给解析器的指令。相关术语请参阅 GS1 Digital Link 基础;扫描之后发生什么,请参阅解析器指南。
GS1 Digital Link URI 语法一览
| 模式 | https://{domain}/{key AI}/{value}/{qualifier AI}/{value}?{attribute AI}={value} |
| 身份 | 在路径中:恰好一个主键,其后是按固定顺序排列的可选键限定符 |
| 附加数据 | 在查询字符串中:数据属性,例如有效期 17 或净重 310n |
| GTIN 格式 | 始终为 14 位,用前导零补足,最后一位是有效的校验位 |
| 特殊字符 | 进行百分号编码:批号中的 / 变为 %2F |
| 解析器指令 | 查询字符串中的 linkType,例如 linkType=gs1:pip 或 linkType=linkset |
GS1 Digital Link URI 由哪些部分组成?

一个完整的示例:
https://id.example.com/01/09506000134352/22/2A/10/LOT42/21/1234?17=271231&3103=000750
| 部分 | 示例中的内容 | 规则 |
|---|---|---|
| 域名 | id.example.com | 任意域名,位于 https:// 之后。它决定由哪个解析器响应手机,但不属于产品身份的一部分 |
| 主键 | /01/09506000134352 | 每个 URI 恰好一个:一个 AI,后跟其数值 |
| 键限定符 | /22/2A/10/LOT42/21/1234 | 可选,位于路径中,按该键规定的顺序排列 |
| 数据属性 | ?17=271231&3103=000750 | 可选,以 AI=value 对的形式出现,用 & 连接,顺序不限 |
从左到右读:GTIN 09506000134352,消费者产品变体 2A,批号 LOT42,序列号 1234,有效期 2027 年 12 月 31 日,净重 0.750 kg。
GS1 Digital Link 可以使用哪些主键?
在消费品上,主键是 GTIN,但这套语法也涵盖其他 GS1 键:
| GS1 键 | AI | 标识对象 | 键限定符 |
|---|---|---|---|
| GTIN,全球贸易项目代码 | 01 | 任何包装层级的贸易项目 | 22、10、21 |
| SSCC,系列货运包装箱代码 | 00 | 托盘等物流单元(18 位) | 无 |
| GLN,全球位置码 | 414 | 实体位置(13 位) | 254 GLN 扩展组件 |
GRAI(8003)和 GIAI(8004)等资产键也遵循同样的模式。
GTIN 的键限定符如何运作?
键限定符把 GTIN 从产品缩小到某个变体、批次或单件。它们写在路径中,顺序如下:
| 顺序 | AI | 限定符 | 格式 | 标识对象 |
|---|---|---|---|---|
| 1 | 22 | 消费者产品变体(CPV) | 最多 20 个字符 | 同一 GTIN 下的某个变体 |
| 2 | 10 | 批次或批号 | 最多 20 个字符 | 一个生产批次 |
| 3 | 21 | 序列号 | 最多 20 个字符 | 一件产品 |
其中任何一个都可以省略,但所使用的限定符须保持这一顺序:
| 路径 | 是否有效? |
|---|---|
/01/09506000134352/10/LOT42/21/1234 | 有效 |
/01/09506000134352/21/1234 | 有效:有序列号而没有批号 |
/01/09506000134352/21/1234/10/LOT42 | 无效:序列号排在了批号之前 |
/01/09506000134352/17/271231 | 无效:有效期应放在查询字符串中 |
解析器利用限定符找到其最具体的条目,找不到时退回到产品层级。
哪些数据属性放在查询字符串中?
数据属性描述商品,但不改变其身份:
| AI | 属性 | 格式 | 示例 |
|---|---|---|---|
17 | 有效期 | YYMMDD | 17=271231:2027 年 12 月 31 日 |
15 | 最佳食用日期 | YYMMDD | 15=270630:2027 年 6 月 30 日 |
310n | 以 kg 为单位的净重,n = 小数位数 | 6 位数字 | 3103=000750:0.750 kg |
422 | 原产国 | 3 位 ISO 3166 数字代码 | 422=380:意大利 |
每个属性只出现一次,顺序不限。解析器重定向时会原样传递查询字符串,因此目的地页面可以读取它。
GS1 Digital Link 中的 GTIN 应该怎么写?
始终写成 14 位。较短的 GTIN 补上前导零,这既不会改变编号,也不会改变其校验位:
| 条码下方的 GTIN | 在 URI 中 |
|---|---|
GTIN-12(UPC-A):614141123452 | /01/00614141123452 |
GTIN-13(EAN-13):9506000134352 | /01/09506000134352 |
最后一位是校验位。以 9506000134352 为例,把它前面的十二位数字从右往左依次乘以 3、1、3、1……,再相加:得 78。校验位就是把这个和补到下一个十的倍数所需的数:80 − 78 = 2。
哪些字符需要百分号编码?
字母、数字、-、. 和 _ 原样写入。批号、序列号或 CPV 数值中的其他符号须进行百分号编码,以免被误认为网址结构的一部分:
| 字符 | 编码为 | 数值 | 在 URI 中 |
|---|---|---|---|
/ | %2F | AB/12 | /10/AB%2F12 |
% | %25 | 50%OFF | /10/50%25OFF |
& | %26 | A&B | /21/A%26B |
数值区分大小写,因此 LOT42 和 lot42 是不同的批次,并且不允许使用空格。
什么是压缩形式?
该标准还为极小的码定义了一种压缩形式:域名之后的所有内容被压缩成一个由字母、数字、- 和 _ 组成的短字符串,肉眼无法读懂,由解析器在验证前解压。除非符号尺寸别无选择,否则请使用未压缩形式:它在印刷前更容易核对,而压缩的码只有在你链条中的每一个扫描器和应用都能解压时才能正常工作。
linkType 和链接集在 URI 中处于什么位置?
linkType 不是标识符,而是写在查询字符串中、给解析器的一条指令:
| URI | 解析器返回什么 |
|---|---|
https://id.example.com/01/09506000134352 | 重定向到默认链接,通常是产品页面 |
https://id.example.com/01/09506000134352?linkType=gs1:recallStatus | 如果存在召回状态链接,就重定向到该链接 |
https://id.example.com/01/09506000134352?linkType=linkset | 以机器可读格式返回该 GTIN 的完整链接列表 |
链接类型来自 GS1 网络词汇表,例如 gs1:pip(产品信息页面)、gs1:instructions 和 gs1:allergenInfo。语言不在 URI 中设定:解析器从手机的请求中读取它。
GS1 Digital Link 与元素串是什么关系?
它们用两种语法承载相同的 GS1 数据:
| 格式 | 示例 | 用于 |
|---|---|---|
| 元素串 | (01)09506000134352(10)LOT42(17)271231 | GS1-128 条码,以及 GS1 符号下方的文字 |
| GS1 Digital Link URI | https://id.example.com/01/09506000134352/10/LOT42?17=271231 | 手机可以打开的二维码和 Data Matrix 符号 |
在元素串中,括号只出现在印刷的文字中;当批号这类可变长度的数值后面还跟着另一个 AI 时,它以一个分隔符结尾。在 URI 中,这项工作由斜杠、? 和 & 完成。把 URI 转换为元素串时,会保留每个 AI 和数值,去掉域名和解析器指令,支持 2D 的收银台正是这样做的,无需联网。符号的选择请参阅二维码与 Data Matrix 对比。
如何构建有效的 GS1 Digital Link URI:七个步骤
- 选择域名。 以
https://开头,使用你掌控的域名,例如id.yourbrand.com,这样无论由哪家服务商运营解析器,码都始终属于你。 - 选定主键。 对于产品,使用 AI
01及其 GTIN:/01/。 - 把 GTIN 写成 14 位。 用前导零补足,并核对最后一位:
9506000134352变为09506000134352。 - 按顺序添加所需的键限定符。 CPV
/22/、批号/10/、序列号/21/。 - 对数值进行百分号编码。 保留字母、数字、
-、.和_,其余字符进行编码:AB/12变为AB%2F12。 - 在
?之后添加数据属性。 每个属性写成AI=value,用&连接:?17=271231&3103=000750。 - 印刷前进行验证。 把 URI 转换为元素串并核对每个数值,在浏览器中打开它,然后在多部手机和一台 2D 扫描器上扫描印刷出的码。故障排查指南列出了常见的失败原因。
一个带有效期的批次,最终结果为:https://id.yourbrand.com/01/09506000134352/10/AB%2F12?17=271231。
Digital Link 平台的定位
本网站背后的平台 Digital Link 会为你编写这些 URI。它在创建链接时验证每个 GTIN,并以链接变体的形式添加批次或批号、序列号、有效期、净重、原产国、包装日期或消费者产品变体,每个变体都有自己的一组链接。码可以通过 CSV 文件批量创建,可以使用你自己的子域名,也可以使用平台附带的 dlink.is 域名。
常见问题
GS1 Digital Link 需要 14 位 GTIN 吗?
需要。GTIN-8、GTIN-12 或 GTIN-13 用前导零补足到 14 位,因此 9506000134352 写成 /01/09506000134352。校验位保持不变,并且必须有效。
键限定符按什么顺序排列?
对于 GTIN:先是消费者产品变体 22,然后是批次或批号 10,再是序列号 21。任何一个都可以省略,但所使用的限定符须保持这一顺序。
域名会改变产品的身份吗?
不会。域名决定由哪个解析器响应手机,但身份由主键及其限定符构成。同一个 GTIN 放在两个域名下,仍是同一个产品。
GS1 Digital Link URI 和元素串有什么区别?
它们是同一数据的两种格式。元素串(例如 (01)09506000134352(10)LOT42)是 GS1-128 条码使用的格式。GS1 Digital Link URI 把它写成手机可以打开的网址。
我应该使用压缩形式吗?
只有在符号太小、放不下完整网址时才使用。压缩的码只有在每一个扫描器和应用都能解压时才能正常工作。





