产品二维码(微信),需要定时更新token,72000s
async function sendqr(id, name) {
try {
if (!accessToken || isAccessTokenExpired()) {
await getAccessToken();
}
console.log(accessToken);
const config = {
app_id: '小程序id',
secret: '密钥'
};
const app = new EasyWechat.Factory.MiniProgram(config);
const token = await app.access_token.refresh();
const response = await app.app_code.getUnlimit(id, {
page: '页面路径',
width:二维码大小,number,
});
// console.log(app.app_code);
console.log(response);
// console.log(response instanceof EasyWechat.Http.StreamResponse,'000000000');
if (response instanceof EasyWechat.Http.StreamResponse) {
const date = new Date().toISOString().split('T')[0].replace(/-/g, '');
const filename = `${id}_${name}.png`;
const directoryPath = path.join(__dirname,'uploads/QR', date);
const filePath = path.join(directoryPath, filename);
// Create the directory if it doesn't exist
if (!fs.existsSync(directoryPath)) {
fs.mkdirSync(directoryPath, { recursive: true });
}
// Save the file
fs.writeFile(filePath, response.content, (error) => {
if (error) {
console.error(`Error saving file: ${error}`);
} else {
console.log(`File saved: ${filePath}`);
}
});
const urlNew = `/uploads/QR/${date}/${filename}`
return urlNew;
}
} catch (error) {
console.log(error);
}
}
产品二维码(支付宝)
async function sendpr(id,name){
const alipaySdk = new AlipaySdk({
appId: '小程序id',
keyType: 'PKCS1', // 默认值。请与生成的密钥格式保持一致,参考平台配置一节
privateKey: '密钥',
alipayPublicKey: '公钥',
gateway: 'https://openapi.alipay.com/gateway.do',
signType:"RSA2",
postCharset:"UTF-8",
format:"json"
});
const result = await alipaySdk.exec('alipay.open.app.qrcode.create',{
bizContent:{
url_param:"页面路径",
query_param:`id=${id}`,参数
describe:`${name}`,
color:"0x00BFFF",颜色
size:"m"//大小
}
});
// console.log(result,"???????");
// return result.qrCodeUrlCircleBlue //图片地址
const qrCodeUrl = result.qrCodeUrlCircleBlue;
const response = await fetch(qrCodeUrl);
const buffer = await response.buffer();
const date = new Date().toISOString().split('T')[0].replace(/-/g, '');
const filename = `${id}_${name}.JPEG`;
const directoryPath = path.join(__dirname,'uploads/QR', date)
const filePath = `${directoryPath}/${filename}`;
// 创建目录(如果不存在)
if (!fs.existsSync(directoryPath)) {
fs.mkdirSync(directoryPath, { recursive: true });
}
// 保存文件
fs.writeFile(filePath, buffer, (error) => {
if (error) {
console.error(`Error saving file: ${error}`);
} else {
console.log(`File saved: ${filePath}`);
}
});
const urlZfb = `/uploads/QR/${date}/${filename}`
return urlZfb;
}
我的是在后台添加产品时,同步生成的