为了方便小程序开发者更便捷地推广小程序,兼容线下已有的二维码,微信公众平台开放扫描普通链接二维码跳转小程序能力。

# 功能介绍

普通链接二维码,是指开发者使用工具对网页链接进行编码后生成的二维码。
线下商户可不需更换线下二维码,在小程序后台完成配置后,即可在用户扫描普通链接二维码时打开小程序,使用小程序的功能。
对于普通链接二维码,目前支持使用微信“扫一扫”或微信内长按识别二维码跳转小程序。

# 开放范围

企业、媒体、政府及其他组织类型小程序。

# 二维码跳转规则

注意:从2017年5月开始,微信客户端支持二维码规则根据“子路径匹配”。如原有二维码链接为http://www.qq.com/a/123456,其中12345为业务参数,则可配置规则http://www.qq.com/a/实现扫码打开小程序。
微信客户端扫码将按以下匹配规则控制跳转:
二维码链接的协议、域名与已配置的二维码规则一致。二维码链接属于后台配置的二维码规则的子路径。(如需支持子路径匹配,请确认后台配置的二维码规则以/结尾)如果二维码规则包含参数,链接?后为参数部分,参数要求前缀匹配。
常见匹配错误类型:

后台已配置的二维码规则线下二维码完整链接错误原因
http://www.qq.com/a/bhttps://www.qq.com/a/b协议不一致
https://www.qq.com/a/bhttps://www.weixin.qq.com/a/b域名不一
https://www.qq.com/a/b?id=123https://www.qq.com/a/b?id=132参数不满足前缀匹配
https://www.qq.com/a/bhttps://www.qq.com/a/bc不属于子路径
https://www.qq.com/a/bhttps://www.qq.com/a/b/123规则没有以/结尾,不支持子路径匹配

# 二维码内容获取

在小程序后台配置二维码跳转小程序规则之后即可使用微信(6.5.6及其以上客户端版本)扫码打开小程序。
二维码链接内容会以参数q的形式带给页面,在onLoad事件中提取q参数并自行decodeURIComponent一次(对于小游戏可使用 wx.getEnterOptionsSync 接口获取),即可获取原二维码的完整内容。同时会附加一个参数 scancode_time(UNIX 时间戳,单位秒),表示用户扫码的时间。
Page({onLoad(query){const q=decodeURIComponent(query.q)// 获取到二维码原始链接内容const scancode_time=parseInt(query.scancode_time)// 获取用户扫码时间 UNIX 时间戳}})

# 配置流程

登录小程序后台,进入“设置-开发设置-扫普通链接二维码打开小程序”,开启功能后即可配置二维码规则。

# 二维码规则