收藏
回答

关于二维码的生成与显示?

问题模块
API和组件

官方文档里关于二维码的生成接口描述的比较简单,大部分人都能通过工具比如POSTMAN来实现,但是接口返回的是二进制流,如何将二进制流转换为真正的图片,并显示在小程序的页面上,官方文档没有涉及,是否可以将这部分的内容在文档里面完善下,从返回数据的格式到如何实现转换和显示。或者推荐相关技术的文档链接。

最后一次编辑于  2017-12-10  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

17 个回答

  • 禹城苗方清颜专业祛痘
    禹城苗方清颜专业祛痘
    2018-01-18

    好像我在题目里说错了,返回的数据好像不是二进制的。

    2018-01-18
    赞同
    回复
  • 禹城苗方清颜专业祛痘
    禹城苗方清颜专业祛痘
    2018-01-18

    对nodejs不是很了解,

    response.setEncoding('binary');

    为什么是binary?

    另外你试试接口B

    我没有研究接口A.

    另外你可以用你的这些参数,在postman里request下,看看能否正确返回。


    2018-01-18
    赞同
    回复
  • 王凡
    王凡
    2018-01-18
    body: parms
    parms是生成二维码需要的参数
    2018-01-18
    赞同
    回复
  • 王凡
    王凡
    2018-01-18
    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;
    });
    })


    2018-01-18
    赞同
    回复
  • 王凡
    王凡
    2018-01-18

    好了 显示出来了 我整理下 贴下代码

    2018-01-18
    赞同
    回复
  • 禹城苗方清颜专业祛痘
    禹城苗方清颜专业祛痘
    2018-01-18

    方便看下你代码吗?

    2018-01-18
    赞同
    回复
  • 王凡
    王凡
    2018-01-18

    。。。我之前的操作就是这样做的,node上传到阿里云,然后显示。太麻烦,后来java接口直接输出给我数据流,node直接输出显示。还没搞定呢

    2018-01-18
    赞同
    回复
  • 禹城苗方清颜专业祛痘
    禹城苗方清颜专业祛痘
    2018-01-18

    不好意思,我刚才又看了一下我的代码,发现上面说错了一处,就是在网页上用

    <img src="data:image/jpeg;base64,xxxxxx">

    的形式显示二维码的时候,需要将接口返回的数据,也就是xxxxxxxx,base64_encode一下。

    另外@闫峰,我发现你用的是接口a,我用的接口b,估计有所不同,但是我觉得就是base64 decode encode 的问题,你多试试,应该能找到问题所在


    2018-01-18
    赞同
    回复
  • 禹城苗方清颜专业祛痘
    禹城苗方清颜专业祛痘
    2018-01-18

    不好意思,我刚才又看了一下我的代码,发现上面说错了一处,就是在网页上用

    <img src="data:image/jpeg;base64,xxxxxx">

    的形式显示二维码的时候,需要将接口返回的数据,也就是xxxxxxx,base64_encode一下。

    另外@闫峰,我发现你用的是接口a,我用的接口b,估计有所不同,但是我觉得就是base64 decode encode 的问题,你多试试,应该能找到问题所在


    2018-01-18
    赞同
    回复
  • 禹城苗方清颜专业祛痘
    禹城苗方清颜专业祛痘
    2018-01-18

    @闫峰,我不是很懂nodejs,但是应该基本思路是差不多,你可以在七牛云上注册个账户,它上面有个接口可以直接把base64流推上去然后自动生成图片,返回你图片名。我在服务器本地写文件不用转码就成功了。或者base64 decode一下,推到小程序端,用我上面说的办法就能显示。

    2018-01-18
    赞同
    回复

正在加载...