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 });
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);
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_path: false,
env_version: 'release'
},
json: true,
encoding: null
});
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 {
console.error('API返回错误:', result);
return {
status: 'fail',
error: result
};
}
} catch (err) {
console.error('生成二维码错误:', err);
return {
status: 'fail',
error: err.message || err
};
}
};
报啥错就是不说,让大家猜