小程序推广码获取参数处理Buffer
处理Buffer文件
问题场景:小程序生成推广二维码,用户A推荐用户B注册,将用户A的openid作为参数写进二维码中,
用户B微信扫码跳转到小程序应用中并获取二维码中的参数,生成推荐记录。
微信官方文档 微信生成推广码接口
根据步骤调用接口,返回值是一个二进制文件,需要处理成图片。
(后端调用该接口不考虑)
前端处理方案,将二进制文件转换成base64文件,再存储本地即可。
具体实现如下:
let val = {path:'pages/index/index',scene:openId,width:280}wx.request({// 获取tokenurl: 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential',data: {appid: 'wxddd04a919638017b',secret: '96cb90a6f3b2e4993d125724d7a64a17'},success(res) {wx.request({// 调用接口Burl: 'https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=' + res.data.access_token,method: 'POST',responseType: "arraybuffer",data: JSON.stringify(val),success(res) {console.log(res)// let base64 = wx.arrayBufferToBase64(res.data)// let bb = "data:image/png;base64,"+base64;// console.log(bb)let fileManager = wx.getFileSystemManager();//获取文件管理器let filePath = wx.env.USER_DATA_PATH + '/inner.jpg';//设置临时路径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)},});}})}})
能个将二进制文件最终在前端展示,但是前端是不允许这样做的,因为微信官方规定AppSecret不能够写在前端
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
