nodejs生成产品二维码(微信/支付宝)

产品二维码(微信),需要定时更新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;

}

我的是在后台添加产品时,同步生成的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值