绑定普通二维码
收藏
我的收藏为了方便小程序开发者能更便捷地推广小程序,兼容线下已有的二维码,抖音开放平台开放扫描普通二维码跳转到抖音小程序能力。普通二维码,是指开发者使用工具对网页链接进行编码后生成的二维码。
功能介绍
线下商户可不需更换线下二维码,在完成相关配置后,即可在用户扫描普通链接二维码时打开小程序,继而引导用户在小程序内完成相关操作。对于普通链接二维码,目前支持使用抖音“扫一扫”或抖音内打开图片识别二维码跳转小程序。
抖音和抖音极速版 20.4.0 以上支持。
准入条件
暂无准入条件,所有小程序均可使用。
接入流程
第一步:配置二维码信息
- 1.登录开发者平台控制台。
- 2.在「我的应用」页面中点击「小程序」,然后在「小程序」页签中点击已创建的应用。
- 3.在应用详情页面左侧导航栏选择「设置」>「关联设置」。在「关联设置」页面的「普通二维码绑定」区域点击「添加」。
- 4.在「配置普通二维码」对话框中填写相关信息,点击「提交」。
需配置的信息说明:
信息 | 说明 |
二维码链接 |
http://open.dy.com 、https://open.dy.com/mp/ 、https://open.dy.com/mp?id=123 )。
|
校验文件 |
|
小程序功能页面 | 扫描后进入的小程序落地页,如: pages/index/index 。 |
前缀占用规则 | 选择是否占用符合二维码匹配规则的所有子规则。如选择占用,则其他帐号不可申请使用满足该前缀匹配规则的其他子规则。 如:若开发者 A 配置二维码规则: https://open.dy.com/mp?id=123 ,并选择「占用所有子规则」,其他开发者将不可以配置满足前缀匹配的子规则如https://open.dy.com/mp?id=1234 。 |
测试范围 | 选择测试范围:建议先测试再调整成全网生效。
功能测试只在指定版本针对指定用户生效,可随时修改,不影响线上用户的正常使用。 |
配置规则:
抖音客户端扫码将按以下匹配规则控制跳转:
- •二维码链接的协议、域名与已配置的二维码规则一致。
- •二维码链接属于后台配置的二维码规则的子路径(如需支持子路径匹配,请确认后台配置的二维码规则以
/
结尾,且勾选了占用前缀规则)。- •如果二维码规则包含参数,链接
?
后为参数部分,参数要求前缀匹配。示例:
注册 URL | 扫码解 析 URL | 是否匹配 | 原因 |
否 | 协议不匹配 | ||
否 | 非子路径 | ||
否 | 域名不匹配 | ||
否 | 非子路径 | ||
是 | 以“/”结尾,代表可以匹配子路径。 匹配子路径需要勾选占用前缀规则 | ||
是 | 满足前缀匹配,包含动态参数 | ||
否 | 不以“/”结尾,不能匹配子路径 | ||
是 | 满足前缀匹配,包含动态参数 | ||
否 | 不满足前缀匹配 | ||
否 | 不满足前缀匹配,匹配的参数键值对需相等 | ||
是 | 满足前缀匹配 |
第二步:测试/调试
测试仅对指定的测试链接和测试范围内的抖音用户生效,其他用户扫码后依然跳转到原页面,不影响全网用户正常使用。
第三步:全网生效
测试无误后,可在「操作」列点击「发布」,选择发布二维码。
发布后开发者仍然可以选择在指定版本(测试版/线上版本)下测试,请注意扫码用户要打开开发版必须提交过代码。
传递动态参数
跳转至对应小程序页面后:
在页面的
onLoad()
函数中,将 URL 的“参数”以 json string 的形式,放在query.q
中传递给小程序;如果你需要读取完整的 URL,也可以在 query.url
中获取。系统会以字符串的形式将二维码解析出来的完整 URL 放在 query.url
中。如果小程序页配置上也有一个 q=xx 的参数,会用动态参数覆盖配置的静态参数;如果原有配置上有
url=xxx
作为参数,会用动态参数覆盖配置的静态参数。query 中会增加一个参数
scancode_time
(UNIX 时间戳,单位秒),表示用户扫码的时间。示例:
后台配置:
扫码识别出的 URL:
最终小程序获取的参数:
onLoad(query) { console.log(扫码时间${query.scancode_time}); //扫码时间xxx console.log(动态参数${query.q}); //动态参数{"isShare":"true","from":"scan"},url动态参数 console.log(动态参数${query.url}); // 动态地址:https://www.tt.com/a/b?isShare=true&from=scan console.log(${query.code}); //true,开发者自己配置的功能页面query console.log(${query.q}); //不为3,开发者自己配置的功能页面query中q被url传入的动态参数覆盖 console.log(${query.url}); // https://www.tt.com/a/b?isShare=true&from=scan }