GS1 Digital Link 二维码生成器

一个 GTIN 错误的二维码扫起来完美无缺 —— 然后在收银台失败,而那时它已经印在一万个箱子上了。本生成器拒绝做出那种码:GTIN 先校验,限定符按标准强制的顺序排列,保留字符按标准自带的对照表编码,而每一个生成出来的 URI 都会用驱动我们Digital Link 检查器的同一个解析器复验一遍。

🔒 你的数据不会离开浏览器 —— 校验、URI 构造与二维码渲染全部在你的机器上完成。

可选限定符(标准要求的顺序由本工具替你处理)
解析器域名

批量

每行一个 GTIN。符合规范的会打包成 SVG 的 ZIP;被拒绝的会连同原因一起列出 —— 不会有任何一行被悄悄丢掉。批量模式只编码 GTIN:上面那些限定符字段在这里不生效,这是有意的 —— 把同一个序列号盖到许多件商品上,恰恰会让序列化失去意义。

关于 Sunrise 2027,如实说明

Sunrise 2027 是一个行业能力里程碑,不是法律强制:该倡议「给出了一份计划,以确保到 2027 年底,二维条码能在任何零售 POS 上被扫描和处理」。义务的方向是零售商的 POS 能力;对品牌方而言,加上二维码是准备工作,不是合规义务。 (GS1 US)

过渡期内,GS1 US 把双重标记描述为「必备的一维条码 + 可选的二维条码」。2027 年起,包装上的选项变成一维或二维条码,「取决于贸易伙伴的能力」—— 一维不会被关掉。 (GS1 US)

它必须印多大?

《零售 POS 二维条码实施指南》(1.1.0 版,2025 年 12 月)要求二维码四边都留出 4 倍 X 尺寸的静区,并确认零售场景的二维载体是「承载 GS1 Digital Link URI 的 QR Code」或 GS1 DataMatrix。 (GS1 指南) GS1 UK 公布了用于销售点扫描的 X 尺寸允许区间 —— 每个模块 0.396 mm 到 0.99 mm —— 以及尺寸公式(模块数 + 8)× X。本生成器把这个公式套用到你实际的符号上,并随每一个码给出对应的毫米区间。

GS1 没有规定必须用哪一档二维码纠错等级:指南列出 L/M/Q/H,并说按使用场景自行选择。本生成器默认用 M,这是一个工程取舍 —— 在包装磨损与图形密度之间取平衡。 (GS1 指南)

为什么「拒绝出码」是一项功能

在线二维码生成器什么都肯编 —— 校验位错误的 GTIN、带空格的批次号、标准明令禁止的限定符顺序。产出的码扫得出来(二维码的纠错保证了这一点),然后在数据真正被使用的地方失败。本工具拒绝生成的每一样东西,都是那种会一路印出来、发出去、直到很久以后才被发现的东西。检查器是用来审计既有 URI 的;而这个生成器的存在,是为了让新的 URI 根本不需要被审计。

本工具检查并如实披露的全部事项(共 8 条规则)

QRG-E01GTIN 未通过校验 —— 不生成码

GTIN 没有通过完整的校验引擎(校验位、长度、清洗)。一个 GTIN 错误的二维码扫得出来、看着也正常 —— 然后在收银台失败,而那时它已经印在包装上了。本生成器拒绝产出它;下面各条说明了具体是哪里不对。

修复: Fix the GTIN first — the check-digit calculator completes a payload, the validator explains a failing code.

来源: Own engineering rule. The generator refuses to emit a non-conformant code rather than warning after the fact — a printed QR cannot be patched.

QRG-E02限定符取值超出标准字符集或长度

批次号 (10)、序列号 (21) 与消费品变体 (22) 的取值最多 20 个字符,且必须取自 82 个字符的 XCHAR 集合(数字、字母,以及 " - . _ ! % & + , / * ( ) ' ; : < > = ?")。其他的 —— 空格、€、emoji、控制字符 —— 都无法编码。

修复: 把取值限制在 XCHAR 集合内,并缩短到 20 个字符以内。

来源: https://ref.gs1.org/standards/digital-link/uri-syntax/

QRG-E03域名不是一个纯 http(s) 源

解析器域名必须是一个裸的源,形如 https://id.gs1.org 或 https://brand.example —— 不带路径、不带查询、不带空格。标准在技术上允许路径前缀,但它与真实解析器的键检测配合很差,所以本生成器把域名部分限制为纯源。

修复: 只填协议加主机名,不要带路径。

来源: Own engineering rule. The generator refuses to emit a non-conformant code rather than warning after the fact — a printed QR cannot be patched.

QRG-W01受限号段的 GTIN —— 这个码在公开环境解析不了

这个 GTIN 的算术是有效的,但它落在受限号段里(店内码 02/04/2xx、优惠券,ISSN/ISBN 另有处理)。为它生成的 Digital Link 二维码能扫出来,但签发门店之外的公开解析器与零售 POS 系统认不出它。

来源: Own engineering rule. The generator refuses to emit a non-conformant code rather than warning after the fact — a printed QR cannot be patched.

QRG-W02http:// 开头 —— 请改用 https

规范解析器与 URI 语法标准里的示例用的都是 https。http 在机制上能用,但会把每一次扫描降级为一次不安全的跳转,而且有些手机扫码器直接拒绝。

修复: 把域名改成 https:// 开头。

来源: https://ref.gs1.org/standards/digital-link/uri-syntax/

QRG-W03过长的 URI 把二维码推过了版本 12

数据已经装不进一个紧凑的符号了:到 69 个模块及以上(版本 13+)时,按允许的最小 X 尺寸算,符合规范的最小印刷尺寸每边超过 30 mm。过长的序列号与过长的自有域名是常见原因。

修复: 缩短你能控制的部分 —— 序列号、批次号,以及域名本身。

来源: https://www.gs1uk.org/knowledge-hub/qr-codes-powered-by-gs1/how-big-should-a-qr-code-powered-by-gs1-be

QRG-I01规范域名与品牌域名

id.gs1.org 开箱即可被 GS1 生态解析;品牌域名让你掌控扫描落到哪里,但需要你自己的解析器(或一个链接服务)在后面撑着。两者都符合规范 —— 这是运营层面的选择,同一条 GS1 路径在两者上都成立。

来源: https://ref.gs1.org/standards/digital-link/uri-syntax/

QRG-I02印刷尺寸由模块数 × X 尺寸决定

用于零售 POS 扫描时,GS1 UK 给出的 X 尺寸允许区间是 0.396–0.990 mm,尺寸公式为(模块数 + 8)× X —— 那个 8 对应两侧各 4 个模块的强制静区。这里的纠错等级默认取 M。

来源: https://www.gs1uk.org/knowledge-hub/qr-codes-powered-by-gs1/how-big-should-a-qr-code-powered-by-gs1-be

GTIN 本身由与 GTIN 校验器相同的 23 条规则引擎检查 —— 号段警告(店内码、优惠券)会一路带到结果里。范围说明,如实相告:第一版只支持 GTIN(AI 01)作为主键;GS1 DataMatrix 是另一种载体,有意不在范围内。同一套引擎也驱动 yaktool MCP server 里的 generate_digital_link_qr

下载的 SVG 里带有一行 XML 注释,标明它的出处(<!-- Generated by yaktool.com -->)。它不可见,不影响码的扫描与打印,PNG 下载则完全不带 —— 但你应当知道它在那里,也可以用任何文本编辑器把这一行删掉。

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