绑定普通二维码

更新时间 2024-10-16 09:07:40
收藏
我的收藏
为了方便小程序开发者能更便捷地推广小程序,兼容线下已有的二维码,抖音开放平台开放扫描普通二维码跳转到抖音小程序能力。普通二维码,是指开发者使用工具对网页链接进行编码后生成的二维码。​

功能介绍​

线下商户可不需更换线下二维码,在完成相关配置后,即可在用户扫描普通链接二维码时打开小程序,继而引导用户在小程序内完成相关操作。对于普通链接二维码,目前支持使用抖音“扫一扫”或抖音内打开图片识别二维码跳转小程序。​
抖音和抖音极速版 20.4.0 以上支持。​

准入条件​

暂无准入条件,所有小程序均可使用。​

接入流程​

第一步:配置二维码信息

    1.登录开发者平台控制台。​
    2.在「我的应用」页面中点击「小程序」,然后在「小程序」页签中点击已创建的应用。​
    3.在应用详情页面左侧导航栏选择「设置」>「关联设置」。在「关联设置」页面的「普通二维码绑定」区域点击「添加」。​
    4.在「配置普通二维码」对话框中填写相关信息,点击「提交」。​

需配置的信息说明:

信息​
说明​
二维码链接​
    1.二维码规则的域名须通过 ICP 备案的验证。​
    2.支持 HTTP、HTTPS 开头的链接(如:http://open.dy.comhttps://open.dy.com/mp/https://open.dy.com/mp?id=123)。​
    3.一个小程序帐号可配置不多于 100 个二维码前缀规则。​
校验文件​
    1.下载随机校验文件,并将文件上传至服务器指定位置的目录下,方可通过所属权校验。​
    2.验证文件放置规则: 放置于 URL 中声明的最后一级子目录下,若无子目录,则放置于 host 所属服务器的顶层目录下。请根据页面提示将验证文件放置在指定的目录下。​
小程序功能页面​
扫描后进入的小程序落地页,如:pages/index/index。​
前缀占用规则​
选择是否占用符合二维码匹配规则的所有子规则。如选择占用,则其他帐号不可申请使用满足该前缀匹配规则的其他子规则。​
如:若开发者 A 配置二维码规则:https://open.dy.com/mp?id=123,并选择「占用所有子规则」,其他开发者将不可以配置满足前缀匹配的子规则如https://open.dy.com/mp?id=1234。​
测试范围​
选择测试范围:建议先测试再调整成全网生效。​
    1.测试版:配置只对开发者生效。​
    2.线上版:配置对线上用户生效。​
功能测试只在指定版本针对指定用户生效,可随时修改,不影响线上用户的正常使用。​

配置规则:

抖音客户端扫码将按以下匹配规则控制跳转:​
    二维码链接的协议、域名与已配置的二维码规则一致。​
    二维码链接属于后台配置的二维码规则的子路径(如需支持子路径匹配,请确认后台配置的二维码规则以/结尾,且勾选了占用前缀规则)。​
    如果二维码规则包含参数,链接?后为参数部分,参数要求前缀匹配。​
示例:​
注册 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 }