小程序·云开发~无限制生成带参小程序码

背景

本文主要解决小程序内部,分享朋友圈时生成海报中包含“带参小程序码”的场景;

步骤

  • 开通云环境(不做介绍)
  • 编写云函数
    1. 生成二维码
    #      配置权限
    {
      "permissions": {
        "openapi": [
          "wxacode.getUnlimited"
        ]
      }
    }
    
    1. 上传到云服务
    2. 获取临时链接
// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init()
const db = cloud.database();
let response = function (code, data, msg) {
  return {
    code: code,
    data: data,
    msg: msg || '成功'
  }
}

exports.main = async (event, context) => {
  const wxContext = cloud.getWXContext()
  console.log({
    event,
    openid: wxContext.OPENID,
    appid: wxContext.APPID,
    unionid: wxContext.UNIONID,
  })
  try {
    const imgData = await cloud.openapi.wxacode.getUnlimited({
      "page": event.path,
      "scene": event.scene
    })
    let imgType = imgData.contentType.split('/')[1];
    console.log('图片类型:', imgType);
    let fileData = await cloud.uploadFile({
      cloudPath: `appletQRCode/${event.createTime}QRCode.${imgType}`,
      fileContent: imgData.buffer,
    })

    const fileList = [fileData.fileID]
    const result = await cloud.getTempFileURL({
      fileList: fileList,
    })

    return response(10000, result.fileList, '成功')
  } catch (err) {
    return response(20000, err, '失败')
  }
}

使用云函数

  • WX_getQRCode 这个是云函数名称,自行定义
wx.cloud.callFunction('WX_getQRCode', {
      path: 'pages/all-goods/all-goods',
      scene: 'azzzzzbc_234',
    })
    .then((res) => {
      console.log(res)
    })

总结

生成小程序码有两种场景

两种场景

这里使用的是:接口B
接口A :
wxacode.createQRCode 总共生成的码数量限制为 100,000,请谨慎调用。

注意

接口只能生成已发布的小程序的二维码

你可能感兴趣的:(小程序·云开发~无限制生成带参小程序码)