node生成带参数的小程序二维码并保存到本地

注意:小程序必须要上线才能获取到小程序二维码,否则会报错。。

使用node koa2框架,生成小程序二维码,需要引入两个模块

var requestp = require('request-promise');
var fs = require('fs'); // 载入fs模块

通过微信接口,获取小程序二维码,并保存到本地。返回图片名称。

var wxapi = {};
module.exports = wxapi;
//获取二维码
wxapi.qrcode = async (ctx, next) => {
    //获取access_token
    var access_token = global.access_token
    var qrcodeurl = 'https://api.weixin.qq.com/wxa/getwxacode?access_token='+access_token
    let options = {
        method: 'POST',
        uri: qrcodeurl,
        encoding:null,
        body: {
            "path": 'pages/index/index?openid='+ctx.query.openid,//带参数的path
            "width":280,
            "is_hyaline":false
        },
        json: true
    }
    var imgname='./public/images/'+ ctx.query.openid+'.jpg'
    var imgnameback=ctx.query.openid+'.jpg'
    fs.exists(imgname, function (exists) {
        //判断图片是否存在
        if(!exists){
            //通过微信接口获取小程序码
            requestp(options)
            .then(function (body) { 
                var base64Img = body.toString('base64');  // base64图片编码字符串
                var dataBuffer = new Buffer(base64Img, 'base64');
                //保存到本地
                fs.writeFile(imgname, dataBuffer, function(err) {
                    if(err){
                        console.log(err);
                    }else{
                        console.log("保存成功!");
                    }
                });
            })
            .catch(function (err) {
                console.log(err)
            });
        }
    })
    //返回图片名
    ctx.body = {
        code: 1,
        img: imgnameback
    }
};

 

你可能感兴趣的:(微信小程序和公众号开发)