河南商城网站建设,营销型网站建设公司是干嘛的,如何做繁体字网站,外贸网站设计制作我们使用微信官方提供的接口getwxacode获取了微信小程序二维码#xff0c;但是#xff0c;获取的二进制图片无论如何都没法展示出来。
调用微信官方接口的方法为#xff1a;使用Nodejs包request#xff0c;调用方法为;
// 获取小程序二维码
async queryQRCode(access_tok…我们使用微信官方提供的接口getwxacode获取了微信小程序二维码但是获取的二进制图片无论如何都没法展示出来。
调用微信官方接口的方法为使用Nodejs包request调用方法为;
// 获取小程序二维码
async queryQRCode(access_token: string) {try {return new Promise(async (resolve, reject) {const params {path: pages/card/index,}const url https://api.weixin.qq.com/wxa/getwxacode?access_token${access_token}request({url: https://api.weixin.qq.com/wxa/getwxacode?access_token${access_token},method: post,body: JSON.stringify(params),// encoding: null,}, async function(error, response, body) {let data bodyvar base64Img data:image/png;base64, data.toString(base64); // base64图片编码字符串resolve(base64Img)})})} catch(e) {console.log(e)}
}刚开始我们转base64的方式进行展示图片展示不了。使用的如下方式
let data body
let base64Img data:image/png;base64, data.toString(base64); // base64图片编码字符串后面我们又将二进制保存成为图片同样是展示不了。使用的方式如下
fs.writeFile(test_wx.png, data, function(err) {console.log(err, err)
}) // 保存成图片发现还是展示不了。
最后发现是因为request会自动对返回的结果进行encoding。所以我们只需要在request时添加encoding: null即可。最终的实现方式如下
// 获取小程序二维码
async queryQRCode(access_token: string) {try {return new Promise(async (resolve, reject) {const params {path: pages/card/index,}const url https://api.weixin.qq.com/wxa/getwxacode?access_token${access_token}request({url: https://api.weixin.qq.com/wxa/getwxacode?access_token${access_token},method: post,body: JSON.stringify(params),// encoding: null,}, async function(error, response, body) {let data bodyvar base64Img data:image/png;base64, data.toString(base64); // base64图片编码字符串resolve(base64Img)})})} catch(e) {console.log(e)}
}完美解决。