本人查阅了许多资料,网上大部分的描述都比较模棱两可,我这里就将我的想法分享出来提供大家学习。
在这里实现一码多用的功能指的是 同个二维码在不同端扫出的结果不一样 例如微信扫跳出 微信小程序,支付宝扫跳出 支付宝小程序,内部APP扫码跳 内部页面等等。
1、实现流程
1.1、流程图
#####1.2、详细流程步骤
1、 是生成二维码,链接是前端H5界面的链接
2、 用户扫一扫的时候就会根据扫码的APP进行判断,其中微信扫一扫如果要 跳转小程序 的话需要在 微信公众平台 配置,而且小程序 暂不支持个人类型小程序开启此功能。相关配置操作如下:
-
配置二维码规则跳转二维码
-
二维码规则: 微信api里说的很清楚了
1、二维码规则的域名须通过ICP备案的验证。
2、支持http、https、ftp开头的链接(如:http://wx.qq.com、https://wx.qq.com/mp/、https://wx.qq.com/mp?id=123)。
3、一个小程序帐号可配置不多于10个二维码前缀规则。 -
前缀占用规则:
开发者可选择是否占用符合二维码匹配规则的所有子规则。如选择占用,则其他帐号不可申请使用满足该前缀匹配规则的其他子规则。
如:若开发者A配置二维码规则:https://wx.qq.com/mp?id=123,并选择“占用所有子规则“,其他开发者将不可以配置满足前缀匹配的子规则如https://wx.qq.com/mp?id=1234。
**3、**内置APP需要在扫码端进行判断对应扫码内容并进行处理。如果识别到对应的 H5页面 和 带有对应的参数 就跳转到 对应APP内部页面,如果是其他页面则跳转至单页面,展示复制并打开浏览器即可查看网站/展示对应的内容,这样就实现了APP扫码跳转功能。
2、后端实现
2.1、准备工作
- 下载的网站链接 https://packagist.org/packages/yansongda/pay?query=Endroid%5CQrCode
- 选择生成二维码包,这里我推荐使用 endroid/qr-code