收藏
回答

想生成一个二维码,但是为什么总报错?

// cloudfunctions/generateQR/index.js
const cloud = require('wx-server-sdk');
const request = require('request-promise');


cloud.init({ env"df0b57aa8f36757cb968-7be3d93962c" })


exports.main = async (event, context) => {
  try {
    const { scene, page, width = 430 } = event;
    
    console.log("请求参数:", { scene, page, width });
    
    // 调用已有的getAccessToken云函数
    const tokenResponse = await cloud.callFunction({
      name'getaccesstoken'
    });
    
    console.log("获取token结果:", tokenResponse);
    
    if (!tokenResponse.result || !tokenResponse.result.success) {
      throw new Error('获取access_token失败: ' + JSON.stringify(tokenResponse.result));
    }
    
    const accessToken = tokenResponse.result.accessToken;
    console.log("获取到的access_token:", accessToken);
    
    // 直接调用微信API
    const url = `https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=${accessToken}`;
    const result = await request({
      url: url,
      method'POST',
      body: {
        scene: scene,
        page: page,
        width: width,
        check_pathfalse,
        env_version'release'
      },
      jsontrue,
      encodingnull // 确保返回的是Buffer类型
    });
    
    // 检查返回是否是Buffer
    if (Buffer.isBuffer(result)) {
      // 上传生成的二维码到云存储
      const uploadResult = await cloud.uploadFile({
        cloudPath`qrcodes/${Date.now()}.jpg`,
        fileContent: result
      });
      
      console.log("上传结果:", uploadResult);
      
      return {
        fileID: uploadResult.fileID,
        status'success'
      };
    } else {
      // 如果返回的不是Buffer,说明是错误信息
      console.error('API返回错误:', result);
      return {
        status'fail',
        error: result
      };
    }
  } catch (err) {
    console.error('生成二维码错误:', err);
    return {
      status'fail',
      error: err.message || err
    };
  }
};
回答关注问题邀请回答
收藏

1 个回答

  • Mr.Zhao
    Mr.Zhao
    2025-05-05

    报啥错就是不说,让大家猜

    2025-05-05
    有用
    回复 2
    • 梨园一梦
      梨园一梦
      2025-05-05
      "status":"fail","error":"callFunction:fail -501001 resource system error. requestID 1969dc1020a_1 谢谢回复,这是云端测试的错误,我想知道这是正确的方法吗
      2025-05-05
      回复
    • Mr.Zhao
      Mr.Zhao
      发表于移动端
      2025-05-05回复梨园一梦
      自己看看日志,是哪段代码报的错
      2025-05-05
      回复
登录 后发表内容