获取二维码返回二进制,服务端后台如何保存?
我使用 nodejs 调用的https://developers.weixin.qq.com/miniprogram/dev/api/qrcode.html 获取二维码二进制数据,保存成图片后,图片打不开。
最后直接保存成 qr.png
尝试过将返回的数据流进行utf8,binary 等其他格式编码保存成图片,还是无法查看。官方能不能在这个接口返回的数据流作下详情说明或者给个demo啊。
我使用 nodejs 调用的https://developers.weixin.qq.com/miniprogram/dev/api/qrcode.html 获取二维码二进制数据,保存成图片后,图片打不开。
最后直接保存成 qr.png
尝试过将返回的数据流进行utf8,binary 等其他格式编码保存成图片,还是无法查看。官方能不能在这个接口返回的数据流作下详情说明或者给个demo啊。
解决了,我就不一一回复了。我使用nodejs写的demo。
const axios = require('axios');const fs = require('fs');// 1.首先获取 access_tokenconst APPID = 'your appid';const APPSECRET = 'your appsecret';getToken() .then(res => { console.log('获取accessToken', res); return getQRCode(res.access_token); }) .then(data => { if (data.errcode) { return new Error('出错啦,错误信息:' + data.errmsg);
data.pipe(fs.createWriteStream(Date.now() + '.png')); });// 获取access_tokenfunction getToken() { return new Promise(function(resolve) { axios .get('https://api.weixin.qq.com/cgi-bin/token', { params: { grant_type: 'client_credential', appid: APPID, secret: APPSECRET } }) .then(response => response.data) .then(function(data) { resolve(data); }); });}// 获取二维码function getQRCode(access_token) { const GET_WXACODE_UNLIMIT = `https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=`; let params = { scene: 'goodsId=1232412', page: 'pages/product/index', width: 430, auto_color: false, line_color: { r: '0', g: '0', b: '0' } }; console.log(JSON.stringify(params)); return new Promise(function(resolve, reject) { axios .post(GET_WXACODE_UNLIMIT + access_token, params, { responseType: 'stream' // 这行很重要 }) .then(response => response.data) .then(function(data) { resolve(data); }); });} |