const axios = require('axios');
const fs = require('fs');
const path = require('path');
var express = require('express');
var router = express.Router();
// 微信小程序的AppID和AppSecret
const appId = 'xxxx';
const appSecret = 'xxxx';
/* GET home page. */
router.get('/', function (req, res, next) {
res.render('index', { title: 'Express' });
});
//创建二维码
router.get('/createcode/:sid', async (req, res, next) => {
const qrcode = await generateQrcode('pages/index/index', req.params.sid);//获取流
res.send(qrcode);
});
// 异步函数获取access_token
async function getAccessToken() {
const response = await axios({
url: 'https://api.weixin.qq.com/cgi-bin/token',
method: 'get',
params: {
grant_type: 'client_credential',
appid: appId,
secret: appSecret
}
});
return response.data.access_token;
}
// 异步函数生成小程序二维码
async function generateQrcode(pagePath, scene) {
const accessToken = await getAccessToken(); // 确保已获取access_token
console.log('accessToken>>>', accessToken);
const response = await axios({
url: 'https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=' + accessToken,
method: 'post',
responseType: 'arraybuffer',// `responseType` 表示浏览器将要响应的数据类型,选项包括: 'arraybuffer', 'document', 'json', 'text', 'stream'等
data: {
scene: scene, //最大32个可见字符
page: pagePath, // 默认页面路径
"check_path": false,
"env_version": "develop",
width: 430 // 二维码宽度,单位为像素
}
});
if (response.status == 200 && response.data && !response.data.errmsg) {
const qrcodeBuffer = response.data;
console.log('是否是buffer>>>>>',Buffer.isBuffer(qrcodeBuffer));
//转为图片保存
fs.writeFile('qrcode1.png',qrcodeBuffer,'binary',(err)=>{
if(!err){
console.log('图片保存成功');
}
});
const base64Image = qrcodeBuffer.toString('base64');
const dataUrl = `data:image/png;base64,${base64Image}`;
return dataUrl; // 返回图片流
}
}
module.exports = router;
node生成小程序码
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 复制的base64 数据,可在小程序image标签src属性里显示,也可以在这里转换为图片http://qinha...
- 搞了两天,法克啊 官网参考:获取不限制的小程序码https://developers.weixin.qq.com/...
- 功能很简单 但是有坑 废话不多说直接上代码 html canvas 定义画板 构造海报 .preview 生成海报...
- 应用场景: 想通过小程序(或直接使用微信)扫描小程序码(小程序二维码)打开小程序并完成一些指定的任务*******...
- 1、打开https://github.com/Wechat-Group/WxJava链接下载weixin-java...