微信小程序二维码

  |  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
'use strict';
const request = require('request');
const got = require('got');
const chance = require('chance')();
const fs = require('fs');
const path = require('path');
const PassThrough = require('stream').PassThrough;
//文档 https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/qr-code/wxacode.getUnlimited.html

// 生成图片到本地
// (async () => {
// let appid = ''; // 微信小程序
// let appsecret = ''; // 微信小程序
// let accessTokenInfo = (await got.get(`https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=${appid}&secret=${appsecret}`, { 'json': true })).body;
// let { access_token } = accessTokenInfo || {};

// let params = {
// 'scene': chance.hash({ 'length': 32 }).toLowerCase(),
// // 'page': 'pages/index/index',
// };

// // 创建一个可读浏
// let name = `${new Date().getTime()}${chance.hash({ 'length': 4 }).toLowerCase()}.png`;
// let file = path.resolve(__dirname, `../videos/${name}`);
// let writeStream = fs.createWriteStream(file);

// let result = await new Promise((resolve, reject) => {
// return request({
// 'method': 'POST',
// 'url': `https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=${access_token}`,
// 'json': true,
// 'body': {
// 'scene': '222',
// },
// }, (err, res, body) => {

// if (err) reject(err);
// // resolve(res);
// }).pipe(fs.createWriteStream('doodle.png'));
// });

// // 如果调用成功,会直接返回图片二进制内容,如果请求失败,会返回 JSON 格式的数据
// // console.log('result.body=====>', result.body);
// // console.log('result.body=====>', result.body.errcode); // 45009 频率受限制 41030 所传page页面不存在,或者小程序没有发布

// })();

const OSS = require('ali-oss');
const client = new OSS({
'region': '',
'accessKeyId': '',
'accessKeySecret': '',
'bucket': '',
});
// 生成图片到oss
(async () => {
let appid = 'wx543f14cc9070b343'; // 小程序appid
let appsecret = 'ae811740d8776b7cdd5233a141c1b01d'; // 小程序secret
let accessTokenInfo = (await got.get(`https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=${appid}&secret=${appsecret}`, { 'json': true })).body;
let { access_token } = accessTokenInfo || {};

let params = {
'scene': chance.hash({ 'length': 32 }).toLowerCase(),
// 'page': 'pages/index/index',
};

let stream;
let pipf = await new Promise((resolve, reject) => {
stream = request({
'method': 'POST',
'url': `https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=${access_token}`,
'json': true,
'body': {
'scene': '222',
},
}).on('error', err => {
resolve(0);
})
.on('response', response => {
if (response.statusCode !== 200) {
resolve(0);
}
resolve(1);
})
.pipe(PassThrough());
});
if (!pipf) {
return;
}

//上传到oss上
let result = await client.putStream(`/common/organization/${new Date().getTime()}${chance.hash({ 'length': 4 }).toLowerCase()}/org.png`, stream);

console.log('result=======>', result);
})();
文章目录