小程序
小游戏
企业微信
微信支付
扫描小程序码分享
官方文档里关于二维码的生成接口描述的比较简单,大部分人都能通过工具比如POSTMAN来实现,但是接口返回的是二进制流,如何将二进制流转换为真正的图片,并显示在小程序的页面上,官方文档没有涉及,是否可以将这部分的内容在文档里面完善下,从返回数据的格式到如何实现转换和显示。或者推荐相关技术的文档链接。
17 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
好像我在题目里说错了,返回的数据好像不是二进制的。
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
对nodejs不是很了解,
response.setEncoding('binary');
为什么是binary?
另外你试试接口B
我没有研究接口A.
另外你可以用你的这些参数,在postman里request下,看看能否正确返回。
body: parms
parms是生成二维码需要的参数
var request = require('request');var url = 'https://api.weixin.qq.com/wxa/getwxacode?access_token=' + obj.retObj;var options = { url: url, method: "POST", json: true, headers: { "content-type": "application/json", }, body: parms}var wxReq = request(options);wxReq.on('response', function (response) { var type = response.headers["content-type"], body = ""; response.setEncoding('binary'); response.on('end', function() { var data = { type: type, body: body }; res.writeHead(200, {"Content-Type": data.type}); res.write(data.body, "binary"); res.end(); }); response.on('data', function(chunk) { if (response.statusCode == 200) body += chunk; });})
好了 显示出来了 我整理下 贴下代码
方便看下你代码吗?
。。。我之前的操作就是这样做的,node上传到阿里云,然后显示。太麻烦,后来java接口直接输出给我数据流,node直接输出显示。还没搞定呢
不好意思,我刚才又看了一下我的代码,发现上面说错了一处,就是在网页上用
<img src="data:image/jpeg;base64,xxxxxx">
的形式显示二维码的时候,需要将接口返回的数据,也就是xxxxxxxx,base64_encode一下。
另外@闫峰,我发现你用的是接口a,我用的接口b,估计有所不同,但是我觉得就是base64 decode encode 的问题,你多试试,应该能找到问题所在
的形式显示二维码的时候,需要将接口返回的数据,也就是xxxxxxx,base64_encode一下。
@闫峰,我不是很懂nodejs,但是应该基本思路是差不多,你可以在七牛云上注册个账户,它上面有个接口可以直接把base64流推上去然后自动生成图片,返回你图片名。我在服务器本地写文件不用转码就成功了。或者base64 decode一下,推到小程序端,用我上面说的办法就能显示。
正在加载...
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
好像我在题目里说错了,返回的数据好像不是二进制的。
对nodejs不是很了解,
response.setEncoding('binary');
为什么是binary?
另外你试试接口B
我没有研究接口A.
另外你可以用你的这些参数,在postman里request下,看看能否正确返回。
好了 显示出来了 我整理下 贴下代码
方便看下你代码吗?
。。。我之前的操作就是这样做的,node上传到阿里云,然后显示。太麻烦,后来java接口直接输出给我数据流,node直接输出显示。还没搞定呢
不好意思,我刚才又看了一下我的代码,发现上面说错了一处,就是在网页上用
<img src="data:image/jpeg;base64,xxxxxx">
的形式显示二维码的时候,需要将接口返回的数据,也就是xxxxxxxx,base64_encode一下。
另外@闫峰,我发现你用的是接口a,我用的接口b,估计有所不同,但是我觉得就是base64 decode encode 的问题,你多试试,应该能找到问题所在
不好意思,我刚才又看了一下我的代码,发现上面说错了一处,就是在网页上用
<img src="data:image/jpeg;base64,xxxxxx">
的形式显示二维码的时候,需要将接口返回的数据,也就是xxxxxxx,base64_encode一下。
另外@闫峰,我发现你用的是接口a,我用的接口b,估计有所不同,但是我觉得就是base64 decode encode 的问题,你多试试,应该能找到问题所在
@闫峰,我不是很懂nodejs,但是应该基本思路是差不多,你可以在七牛云上注册个账户,它上面有个接口可以直接把base64流推上去然后自动生成图片,返回你图片名。我在服务器本地写文件不用转码就成功了。或者base64 decode一下,推到小程序端,用我上面说的办法就能显示。