小程序推广码获取参数处理Buffer

处理Buffer文件

问题场景:小程序生成推广二维码,用户A推荐用户B注册,将用户A的openid作为参数写进二维码中,
用户B微信扫码跳转到小程序应用中并获取二维码中的参数,生成推荐记录。

微信官方文档 微信生成推广码接口

根据步骤调用接口,返回值是一个二进制文件,需要处理成图片。
(后端调用该接口不考虑)

前端处理方案,将二进制文件转换成base64文件,再存储本地即可。
具体实现如下:

let val = {
      path:'pages/index/index',
      scene:openId,
      width:280
    }
    wx.request({
      // 获取token
      url: 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential',
      data: {
       appid: 'wxddd04a919638017b',
       secret: '96cb90a6f3b2e4993d125724d7a64a17'
      },
      success(res) {
       wx.request({
        // 调用接口B
        url: '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不能够写在前端

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值