收藏
回答

关于调用getUnlimitedAPI生成无限量带参二维码扫码后不能拿到参数的问题?

// 云函数入口文件
//openapi.wxacode.createQRCode可以正常拿到传递过来的参数,但是用getUnlimitedAPI这个方法就拿不到参数
const cloud = require('wx-server-sdk')


cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV,
})
 const uploadfile = async function(arraybuffer,path){
   //console.log('我被调用了');
   let {fileID} = await cloud.uploadFile({
     cloudPath:path,
     fileContent:arraybuffer
   })
   return fileID
 }
// 云函数入口函数
exports.main = async (event, context) => {
      try {
        const result = await cloud.openapi.wxacode.createQRCode({
            path'pages/index/index?a=1',
            width430
          })
          console.log(result);
          fileID = await uploadfile(result.buffer, 'my.jpg')
          return fileID
      }
         catch (err) {
    
    return err
  }
     }


下面这种就拿不到要传递的参数

// 云函数入口文件
const cloud = require('wx-server-sdk')


cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV,
})
 const uploadfile = async function(arraybuffer,path){
   console.log('我被调用了');
   let {fileID} = await cloud.uploadFile({
     cloudPath:path,
     fileContent:arraybuffer
   })
   return fileID
 }
// 云函数入口函数
exports.main = async (event, context) => {


  //根据渠道名称进行数据库查询,如果存在(即二次点击),则返回文件艾迪
  
  // console.log(event.namevalue);
    
     //数据库查询不到该渠道,二维码即是第一次输入
     
      try {
        const result = await cloud.openapi.wxacode.getUnlimited({
          scene'a=1'
        })
         // console.log(result);
          fileID = await uploadfile(result.buffer, 'my.jpg')
          return fileID
      }
         catch (err) {
    
    return err
  }
     }


回答关注问题邀请回答
收藏

3 个回答

  • 睡前原谅一切
    睡前原谅一切
    2021-03-17
    onLoad(options) {
        if (!options.scene) {
          this.setData({
            ak: options.ak || app.globalData.query.ak || '',
          })
        } else {
          var getQueryString = {}
          var strs = decodeURIComponent(options.scene).split('&') //以&分割
          //取得全部并赋值
          for (var i = 0; i < strs.length; i++) {
            getQueryString[strs[i].split('=')[0]] = unescape(strs[i].split('=')[1])
          }
          this.setData({
            ak: getQueryString['ak'] || ''
          })
        }
      }
    
    2021-03-17
    有用
    回复 2
    • 。
      2021-03-17
      我的options是个空对象 。。。
      2021-03-17
      1
      回复
    • 睡前原谅一切
      睡前原谅一切
      2021-03-17回复
      2021-03-17
      回复
  • peng
    peng
    2021-03-17

    参数获取使用options.query.scene 获得的值是a=1,自己拿到这个字符串后处理。

    2021-03-17
    有用
    回复 4
    • 。
      2021-03-17
      我用getUnlimitedAPI这个生成扫码后拿到的 options是个空对象
      2021-03-17
      回复
    • peng
      peng
      2021-03-17回复
      码和工具的小程序是对应的吧?正常解析是如下图:
      2021-03-17
      回复
    • 。
      2021-03-17回复peng
      对啊 我用getUnlimitedAP生成的二维码解析之后是没有启动参数的,用其他API生成的二维码解析之后就有启动参数,同样的代码只是改调用了API。
      从昨天弄到现在快自闭了
      我下面有两种方式的解析图片 ,所以原因有可能是传参的时候没传进去,但是我是按官网写的啊。。
      2021-03-17
      回复
    • peng
      peng
      2021-03-17回复
      需要云开发的大佬指点下,没有用过这个接口,不知能有没有这个问题。
      2021-03-17
      回复
  • 。
    2021-03-17

    

    上图是通过上面的第一种方法可以拿到参数a = 1

    下图是通过上面的第二种方法拿不到参数a=1

    2021-03-17
    有用
    回复 3
    • peng
      peng
      2021-03-17
      你直接使用二维码编译试试能不能进入页面
      2021-03-17
      回复
    • 。
      2021-03-17回复peng
      可以进入页面,但是拿不到参数,options是个空对象
      2021-03-17
      回复
    • 。
      2021-03-17
      好像只有设置的scene和width不生效,设置背景颜色可以有效果
      2021-03-17
      回复
登录 后发表内容
问题标签