【前端】支付宝和微信小程序普通二维码跳转二合一
业务需要:
系统支持微信小程序和支付宝小程序,现在要扫码跳转到对应小程序,要使用一个二维码,并能携带业务参数,用户使用微信扫码,就能打开微信小程序并获取参数,使用支付宝扫码,就能打开支付宝小程序,并获取参数
一、 微信小程序普通二维码跳转实现
1、在微信公众平台-开发管理-开发设置中找到【扫描普通链接二维码打开小程序】去配置二维码链接地址
参考:https://developers.weixin.qq.com/miniprogram/introduction/qrcode.html#%E5%8A%9F%E8%83%BD%E4%BB%8B%E7%BB%8D
2、配置要求
二维码规则:配置为二维码对应的链接,其中最后要加/,这样才可以动态传参。扫描后面参数不同的二维码都能跳转。这样类似与测试链接中 https://xxx.xxx.com/?sid=1或者https://xxx.xxx.com/?sid=2等的链接都可以跳转 当配置未发布时,扫描测试链接才可以跳转(未发布时没法匹配动态参数) 下载校验文件要放在对应二维码链接域名对应服务器的根目录中,然后再点击保存 跳转的小程序一直都是发布了的小程序 后端返回的二维码链接地址也要有/,就是说https://xxx.xxx.com/?sid=1可以跳转,但https://xxx.xxx.com?sid=2不会跳转小程序
3、发布后的规则微信扫描跳转的小程序是发布了的小程序
如果要是想在测试阶段跳转体验版的小程序(体验版的小程序调用的后端接口也不同的话)
可以再添加一条规则-同上,二维码规则填写测试环境的链接
不同的是,测试链接要填写,只有填写在测试链接的二维码才会跳转体验小程序
4、 小程序页面接收参数
二维码链接内容会以参数 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 时间戳 }})
二、 支付宝小程序普通二维码跳转实现
1、 规则配置
参考:https://opendocs.alipay.com/isv/03kve4
在 开放平台控制台> 第三方应用详情页 > 小程序模板详情页 > 二维码管理 > 关联普通二维码 中,点击 添加。
支付宝这个要比微信的好配置的多,直接就是精确匹配和模糊匹配,因为我们会有不同的业务参数,我们直接选择模糊参数模式
二维码地址需要和微信配置的相同,以便我们最后使用相同的链接生成一个二维码使用,我们同样设置为:https://xxx.xxx.com/
2、 精确匹配 和 模糊匹配 区别:
精确匹配:根据填写的二维码地址精确匹配,地址完全一致时才能唤起小程序并跳转到指定页面(如配置二维码地址为 https://www.alipay.com/my/doc?id=123 ,当用户扫这个地址的二维码可唤起小程序)。
模糊匹配:根据填写的二维码地址前缀模糊匹配,只要地址前缀匹配即可唤起小程序跳转到指定页面(如配置二维码地址为 https://www.alipay.com/my/ ,当用户扫的二维码地址为 https://www.alipay.com/my/doc?id=123 可唤起小程序,只要前缀完全匹配即可唤起小程序)。
3、 小程序页面获取参数值
获取二维码码值请在小程序 app.js 文件的 onLaunch() 方法中使用 options.query 获取,解析码值可得到二维码地址 ? 后的所携参数,示例代码如下。
onLaunch(options){ my.alert({ title: 'app onLaunch', content: JSON.stringify(options), success: (res) => { //成功处理代码段 }, }); //获取关联普通二维码的码值,放到全局变量qrCode中 if (options.query && options.query.qrCode) { this.qrCode = options.query.qrCode; }
三、二维码生成
微信和支付宝小程序普通二维码规则配置好之后,在业务使用中,使用我们配置好的规则链接,拼接上业务参数,然后生成二维码即可。
配置规则:https://xxx.xxx.com/
业务参数:sid=1
最终链接:https://xxx.xxx.com/?sid=1
将最终链接生成二维码即可,二维码生成方法此处不再赘述
猜你喜欢
- 【HTML】 html 初始化执行方法
- HTML的初始化执行方法有多种。以下是其中几种常见的方式: 1. JavaScript的DOMContentLoaded事件:当页面加载完成并且所有元素都已经被创建时,会触发该事件。可以通过在JavaScript文件或者内联script标签中编写相应的函数来处理这个事件。示例如下:document.addEventListener("DOMContentLoaded", function() { // 在此处添加需要执行的代
- 【HTML】必应地图BingMaps的使用
- 又换新地图了,之前换了箩筐地图,效果不能满足实际需要,这次换成了必应地图BingMaps,同样实现设置考勤区域的功能,效果还是挺不错的。相关阅读【HTML】html使用高德地图设置考勤范围 【HTML】箩筐地图的使用,设置考勤范围一、 获取应用KEY还是老样子,先注册账号,然后获取key。注册参考官方说明https://www.bingmap.cn/guide/db765008-dafe-11e8-a995-d46d6d978bfa?module=doc,这里不再过多说明。
- 【前端】前端网络安全
- 今天思考下前端源码安全的东西(不是前端安全,只是针对于源码部分)。在我看来,源码安全有两点,一是防止抄袭,二是防止被攻破。实际上讲,前端的代码大多是没有什么可抄袭性,安全更是形同虚设的(任何前端输入都是不能相信的)。但如果还是想防止源码被查看,HTML、CSS并不能做什么,最终都会用露出来(最简单用Chrome开发者工具就可以看到),所以只能针对JS做文件的压缩合并和混淆。关于抄袭其实就前端来讲,代码没有什么好抄袭的,大多人都是抄UI设计(这个是躲不了),还有一些富前端的控件和算法,重要之处还是
- 【前端】vite+vue3+ts 项目安装 Ant Design of Vue方法
- 安装 Ant Design of Vue 和@ant-design/icons-vue图标库npm add ant-design-vue @ant-design/icons-vue安装插件 unplugin-vue-components 配合vite可以自动帮我们引入组件npm add unplugin-vue-components -D配置 vite.config.tsimport {&nbs
- 【前端】前端实现文件下载自动打开预览的解决方法
- 问题:前端使用React开发,想要下载阿里云OSS存储的视频文件,使用了<a>标签,点击后就会在浏览器打开预览,查找到了几个解决办法,在此记录一下。一、 下载文件的三种通用方式1、使用iframe实现只需要传一个文件下载地址的url即可 downloadFile = (url) => { //下载方法 console.log(url)
- 【前端】JavaScript判断数组对象是否含有某个值的方法(6种)
- 【JavaScript基础语法】web前端判断数组对象是否含有某个值的方法(6种)知识回调场景复现实现方式(6种)利用循环遍历数组元素利用some,filter方法利用array.indexOf方法利用array.includes方法利用array.find方法利用set中has方法本期小结知识回调文章内容文章链接vue3 antd table表格的增删改查(一)input输入框根据关键字搜索【后台管理系统纯前端filter过滤】https://blog.csdn.net/XSL_HR/arti
- 【前端】PHP开发者的Vue与React入门指南
- PHP是一种常用的服务器端脚本语言,用于开发动态网页和网站。许多PHP开发者经常需要学习前端框架来提升他们的技能,并且Vue.js和React.js是两个当前非常热门的前端框架。本文将为PHP开发者提供一份Vue.js和React.js的入门指南,带有具体的代码示例,帮助他们快速了解这两个框架的基本概念和用法。1. Vue.js入门指南Vue.js是一款轻量级的JavaScript框架,用于构建交互式的用户界面。下面是一个简单的Vue.js示例,展示了如何创建一个基本的Vue组件并进行数据绑定:
- 【HTML】html使用高德地图设置考勤范围
- 需求:系统需要考勤功能,并在WEB端设置考勤范围,用于员工手机端再次范围内打卡签到,WEB端需要设置考勤地点以及考勤范围。1 使用高德地图开发首先需要再高德开放平台注册账号,并创建应用,获取高德地图key以及安全秘钥这里需要用到地图定位,一级地理坐标转换,使用高德开放平台JSAPI开发。HTML引入js,安全秘钥配置一定要写在js上方:<script> window._AMapSecurityConfig = { &