近期接到个需求,商家需要一个二维码放在海报上,用户扫描二维码就会进入小程序的推广页,在页面里可以看到各种介绍、广告,如果感兴趣可以留下姓名和电话号,供后台回访拨号。
拿到需求先分析了下难点,没玩过的就是二维码从哪来,其他的业务无非是增删改查了。
通过我这把度,得知微信开发者文档里就有现成的接口,专门提供相应页面的二维码,下面看一下它是啥样的。
大致就是给你提供一个接口,你往里发请求,告诉他你要跳到什么路径,往路径里传什么参。发请求的时候要用到access_token,获取token需要appid,secret(这两个可以在自己管理平台上获取)。
具体请求发下来就是下面这套代码了,应该是可以拿来直接用滴。
wx.request({
url: 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' + '你的appid' + '&secret=' + '你的secret',
method: "GET",
success: res => {
let token = res.data.access_token
wx.request({
url: 'https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token=' + token,
data: {
path: "pages/pageName/pageName", // 扫小程序码要进入的页面路径
},
responseType: 'arraybuffer',
method: "POST",
success(res) {
let fileManager = wx.getFileSystemManager(); //获取文件管理器
let filePath = wx.env.USER_DATA_PATH + '/inner.jpg'; //设置临时路径
// 存二维码
wx.cloud.uploadFile({
cloudPath: 'qr_' + Date.parse(new Date()) + '.png',
filePath: filePath, // 文件路径
success: res => {}
})
//显示二维码
fileManager.writeFile({ //获取到的数据写入临时路径
filePath: filePath, //临时路径
encoding: 'binary', //编码方式,二进制
data: res.data, //请求到的数据
success: function (res) {
console.log(res)
// console.log(filePath)//打印路径
that.setData({
imgUrl: filePath
})
},
fail: function (res) {
console.log(res)
},
});
},
fail(err) {
console.log(err)
}
})
}
})