# 微信“一物一码”

## 一、申请流程

整体流程如下：

![](https://res.wx.qq.com/op_res/qSx_hhHP-4WU3aeMpQwvdvt3efKcJBn0AxOCEdG81TkQVqqO-0sB_vbyTFpenm8n)

#### 1. 申请条件

1. 已认证的服务号。
2. 有明确的一物一码赋码场景，期望通过商品赋码实现防伪、溯源、营销、数字化经营等。

#### 2. 申请渠道

1. 从站内信等通知渠道进入申请页。
2. 从公众号菜单添加功能，进入一物一码，点击申请进入申请页。

申请结果将通过预留的联系邮箱通知。

## 二、赋码管理

#### 1. 调用“申请及获取二维码”接口

[接口文档](https://mp.weixin.qq.com/cgi-bin/announce?action=getannouncement&key=11545391229JH6jd&version=1&lang=zh_CN&platform=2#9)

通过接口您可以获得格式为：

```bash
a1 b1 c1 d1
a2 b2 c2 d2
```

- a为361字节的01点阵，用于支持生成19乘以19的微型码，0为白，1为黑
- b为原始码数据，最长9位
- c为该码在此次申请的索引位置
- d为28位字符，用于支持转为普通二维码。可生成码制2，纠错等级Q的二维码

#### 2. 选择需要的二维码类型

如果有在较小印刷面积下进行赋码的需求，或需要特殊码制带来的安全性，可以使用微型码。微型码为腾讯专利码制，不能为其他组织或个人仿制，支持最小印刷面积0.5mm乘以0.5mm。

需要注意的是：

1. 微型码的打印需要将点阵转为二维码。如果你的设备提供方不支持，可以联系wxsaoyisao@tencent.com，在工作人员指导下打印。
2. 微型码的读取需要升级微信引擎。如果你的产线上有采集二维码信息的环节，可以联系我们，由工作人员指导设备提供方进行升级。
3. 如果没有较小面积下的印刷需求，可以使用普通二维码。普通二维码的印刷和读取和通行标准一致。

微型码和普通码对照表

![](https://res.wx.qq.com/op_res/emSysImlf6PDkZuG1-0IaRvSPkv6JnRXDp4a77EKuPo4eNiMrKUgsliaE7aERxFI)

#### 3. 管理微型码，完成商品赋码

获取微型码之后，按照生产流程和赋码进行产线改造，将二维码印刷在商品上。
也可以先进行码的打印，管理分发后再与商品关联。

## 三、落地小程序开发

#### 1. 一物一码方案设计

根据不同的需求场景，进行市场调研和一物一码整体方案设计。规划方案目的、预算和执行的具体步骤。这一步通常发生在赋码之前。

#### 2. 落地小程序开发

微信扫一扫入口和小程序工具提供了一物一码的载体。小程序开发者可以根据不同用户和二维码设置不同的扫码承接策略。

[小程序开发文档](/miniprogram/dev/framework/README.md)

一物一码生成的二维码是小程序码的一种，拥有以下特殊产品能力：

##### 2.1 小程序关注公众号组件

小程序关注公众号功能可以帮助品牌商更好的触达用户，可发送公众号群发消息实现扫码用户的回流，培养用户粘性。

当前功能支持绑定相同主体的公众号。请在小程序管理中绑定小程序，可以前往小程序管理后台，在“设置”-“关注公众号”中绑定，设置的公众号需与小程序主体一致。当用户扫小程序码打开小程序时，开发者可在小程序内配置公众号关注组件，方便用户快捷关注公众号，可嵌套在原生组件内。

可参考 [开发文档](/miniprogram/dev/component/official-account.md)

组件示意：

![](https://res.wx.qq.com/op_res/9jOyTqF9ELl3UBseucEe49wNInmxEtKd2U-Rw34XQhrGEvgDxUg1H7IR0BJLRhYw)

##### 2.2 小程序红包

小程序红包是吸引用户参与一物一码扫码活动的重要功能，能够显著提升扫码率。用户扫瓶身二维码进小程序领取红包能直接领取到用户零钱，起到激励作用，促使用户对商品进行回购。

申请条件需满足：商户号满足微信支付产品开通条件，小程序未开通社交红包类目。

功能示意：

![](https://res.wx.qq.com/op_res/27azvnGC8nvAJXsms5jNnEq57DL7W01P3mTQ4fehfd2PqzyTMbFzz0-t_GxDJkTV)

#### 3. 激活二维码并投入市场

通常情况下，在商品投入市场之前，会有二维码激活的环节，该环节的目的是降低码在生产中的泄露风险。微信一物一码的码激活目的是回传商品信息（以提供数据分析服务）、定义码和小程序的跳转关系，应在原有激活环节前完成，不影响原有激活环节设置。

#### 4. 登录MP查看数据

商品投入市场后，登录公众号后台，选择一物一码功能，可以查看扫码数据和用户分析。数据口径中的活动名称、商品名、品牌均来自于激活二维码时定义的字段，激活时请注意按分析诉求规范填写。

## 四、服务商代实现业务

一物一码的整体流程包含方案制定、线下赋码印刷、线上公众号接口调用＆小程序开发，服务商可以通过以下流程帮助商家使用微型码并跳转小程序。

#### 1. 在开放平台成为第三方服务商

服务商需要通过开发者资质认证，成为开放平台第三方服务商后可以代公众号实现业务、代小程序实现业务。

#### 2. 代商家调用一物一码接口

参考[代公众号实现业务文档](/doc/oplatform/Third-party_Platforms/2.0/product/offical_account_authority.md)

品牌商需要登录公众号授权给第三方服务商，然后第三方服务商通过调用接口来实现公众号业务。商家参考上文开通一物一码的同时，第三方服务商需要向微信申请第三方下载密钥，方法为联系邮箱(*wxsaoyisao@tencent.com*)发送邮件说明服务对象并提供第三方APPID。

第三方服务商调用一物一码接口实现发码、激活参考上文。

#### 3. 代商家开发扫码落地小程序

品牌小程序需授权后，第三方平台才能进行小程序开发，参考[授权流程](/doc/oplatform/Third-party_Platforms/2.0/Before_Develop/Authorization_Process_Technical_Description.md) 。

第三方服务商帮助旗下已授权的小程序进行代码管理时，需先开发完成小程序模版，再将小程序模版部署到旗下小程序账号中，具体流程参考[代小程序实现业务](/doc/oplatform/Third-party_Platforms/2.0/product/miniprogram_authority.md)。

#### 4. 成为微信一物一码合作伙伴

第三方服务商拥有帮助品牌实现“一物一码”的能力后，可以入驻微信服务商市场，充分展示自身能力，广泛触达有数字化营销诉求的商户。

登录[微信开放社区](https://developers.weixin.qq.com/community/servicemarket) 创建企业主页，具体流程参考[流程指引](https://developers.weixin.qq.com/community/develop/doc/000286982bc358be39578961f51008)。

第三方服务商可以在企业主页集中展示所提供的服务，支持使用图文、富媒体等多种格式展示过往案例、与一物一码相关的营销、防伪等模块能力。编辑完成的企业主页，经过服务质量评估后，可被商户通过行业推荐关键词搜索、服务行业和内容相关关键词搜索。

## 五、接口列表

申请及获取二维码

![](https://res.wx.qq.com/op_res/blKiGKh3fEKnzdZUe3qBhp75G_0zx12GH46ReGzsWiv6euq9Rx3Vdwh5Gp3FLBjq)

用户扫描二维码

![](https://res.wx.qq.com/op_res/nGV8k0ONszLDmMMWrAJGCQlCijU-c9T51ij_XWJTi5LAigSiFDN1GVwhQKQPSFHs)

| 接口名称 | 请求路径 | 描述 |
| --- | --- | --- |
| [查询二维码申请单接口](/doc/service/api/onecode/api_intp_marketcode_applycodequery.md) | /intp/marketcode/applycodequery | 查询二维码申请单状态及详细信息 |
| [下载二维码包接口](/doc/service/api/onecode/api_intp_marketcode_applycodedownload.md) | /intp/marketcode/applycodedownload | 下载生成的二维码数据包 |
| [激活二维码接口](/doc/service/api/onecode/api_intp_marketcode_codeactive.md) | /intp/marketcode/codeactive | 激活指定范围的二维码用于实际营销活动 |
| [查询二维码激活状态接口](/doc/service/api/onecode/api_intp_marketcode_codeactivequery.md) | /intp/marketcode/codeactivequery | 查询二维码激活状态及关联信息 |
| [CODE_TICKET换CODE接口](/doc/service/api/onecode/api_intp_marketcode_tickettocode.md) | /intp/marketcode/tickettocode | 将用户扫码获得的临时票据转换为正式营销码 |
| [申请二维码接口](/doc/service/api/onecode/api_intp_marketcode_applycode.md) | /intp/marketcode/applycode | 申请二维码接口用于批量生成指定数量的营销码 |

## 六、二维码包解密说明

实名数据的加密方式使用AES的CBC模式，iv使用加解密钥，填充使用PKCS7Padding，最后使用base64进行编码。

解密时，先进行base64解码，然后使用密钥及AES/CBC/PKCS7Padding进行解密。
密钥在申请实名接口权限时，会提供到申请方。

## 七、常见问题

#### 1. 权限开通

##### Q：一物一码入口在哪里？

A：可以从站内信等通知渠道进入申请页，或从公众号菜单添加功能，添加一物一码功能插件，点击申请进入申请页。

##### Q：一物一码收费吗？

A：微信提供一物一码和小程序相关产品能力，开放给品牌和服务商接入，不做收费。

#### 2. 发码

##### Q：微信发的码是什么码？和普通二维码有什么不同？

A：微信通过“一物一码”接口发放的是腾讯专利微型码。微型码从属于QR-code，使用微信专有的编码规则，区别于任何一种普通QR-code。带来的影响是：

微型码只能通过微信生成，不能被任何组织或个人仿冒，从根本上提升制码安全性。同时，也只能通过微信扫码才能读取并落地小程序，难以通过大批量模拟扫码的方式套取利益。

微型码由19\*19的点阵组成，在较小印刷面积下（0.5mm\*0.5mm），仍能保持良好的扫码读取速度。

##### Q：如何通过微信发码？

A：微信开放api接口，商户开通一物一码功能后，可自行调用或通过第三方服务商调用公众号接口获取码包，灵活定义码和小程序的跳转关系。

#### 3. 赋码

##### Q：通过微信接口获取的码包格式是什么，如何印刷？

A：根据请求的码数量，码包为请求量/1w个文件的压缩包，单个码格式示例：

```bash
1111111111111111111100000110101100000110111010000010111011011101011101011101101110100100101110110000011011110000011111111110111111111110001100000110001100101110111100010010100000011110100010100101110010101010111000110100100010101111111100101001100100000111001111101010111010101110111111011101000110101110101110101011100100110000011011001111111111111100101000101 0436Z31$0 0 P.URL.CN/0V/IXO*FWWYLZLXUXGR
```

其中前361位为19乘以19的点阵，1代表黑色，0代表白色，组成微型码点阵。第二个参数是码代表的参数，第三个参数是该二维码的相对位置编号，最后一串字符为普通二维码字符。

印刷时，可直接打印点阵或转为位图印刷。如果遇到印刷问题，可联系wxsaoyisao@tencent.com，在工作人员指导下印刷。

##### Q：微信码的纠错和冗余情况如何？码的校验机制是否完善？如果印刷中出现部分缺失、破损、沾污等是否可以正确读取？

A：在微型码的19\*19=361位点阵中，60%用于冗余和纠错（普通码制最高档H档容错度为30%）。在现有印刷技术水平下，出现残次品的概率极低，也不会存在错码的情况。

##### Q：赋码环节中，商品生产线、流通线的硬件设备如何采集到码信息？

A：微型码的信息只能被微信扫码引擎所读取。如果在生产和流通中，有使用硬件设备扫码的诉求，需要印刷供应商或硬件设备供应商，通过品牌商申请获得微信Qbar引擎开放，升级解码库，微信技术人员将配合方案评估和落地。

注：当前已有部分设备厂商支持微型码的硬件读取，具体可联系wxsaoyisao@tencent.com。

##### Q：当前印刷和采集设备暂不支持升级为微型码，如何接入微信一物一码？

A：微型码无论从安全性还是从消费者扫码体验上，都是对普通二维码的重要升级。如果当前印刷和采集设备难以支持微型码，接口返回的第四个字符串可直接转码印刷，兼容目前大多数印刷和采集设备。

普通二维码单个码格式示例：

```bash
P.URL.CN/0C12345678901234ABC
```

总长度为28个字符，支持转为版本2，纠错等级Q的二维码。

普通二维码在小程序能力和数据分析上，和微型码一致。

#### 4. 落地小程序

##### Q：微信是否提供落地小程序开发？

A：微信不提供落地小程序开发，由品牌自行开发或委托第三方服务商开发。可通过一物一码服务商市场案例介绍，评估和选择合适的服务商。

##### Q：码和小程序的跳转关系是如何定义的？同一批次的码可以跳转不同的小程序吗？

A：码和小程序的跳转关系，是在调用码激活接口时定义的，可以根据某批次下不同的码段，灵活定义跳转的小程序，以及小程序下的页面。同批次同号段的码，可以重复激活跳转关系。因此，发码阶段不需要确定码和小程序的对应关系，可灵活定义。

##### Q：一物一码场景下，有哪些小程序能力？

A：一物一码场景的特殊赋能是小程序红包和扫码关注公众号。其中小程序红包即将开放，扫码关注公众号的组件已开放。此外，根据不同的扫码诉求，小程序拥有多种能力组合，相比H5，有更好的用户体验和回流渠道，也是品牌连接微信生态的第一步。

#### 5. 用户扫码

##### Q：消费者扫码体验是怎么样的？

A：无论是微型码还是普通二维码，消费者仅可通过微信扫码。通过其他应用扫码时，微型码将难以读取；普通二维码将通过浏览器跳转码代表的url并返回错误提示。

#### 6. 持续运营

##### Q：如何查看扫码数据和用户分析？

A：在赋码商品投放市场，产生扫码数据后，可以登录微信公众平台，在一物一码功能菜单下，查看详细的扫码数据和用户分析。

##### Q：可查看的数据维度包含哪些？和小程序数据看板有什么不同？

A：扫码数据包含商品、活动的扫码时间、地点、次数分布，以及商品交叉扫码情况。用户分析包含用户年龄、性别、地域、终端、机型分布，品牌触达，以及对不同商品的复购情况。

小程序数据为单个小程序的访问数据和用户分析，包含多种流量来源。一物一码数据是扫码本身反映的综合数据，体现的是同一主体下的扫码分布，可有多个小程序承接不同服务，同时支持对活动、品牌、商品的筛选。

##### Q：扫码数据如何运用？能否和品牌自有CRM打通？

A：可以结合品牌自有CRM综合分析。需要指出的是，微信提供的数据分析为群像数据，不包含单个消费者的信息，不能实现个体维度对应。

扫码数据是消费者消费行为的客观反馈，在获取到准确扫码数据的基础上，可以分析并利用微信生态内消息通道，如公众号图文消息等进行再触达。

此外，扫码用户可以作为核心用户，实现微信商业流量的准确触达，提升广告效能。
