小程序太阳码 B接口有时返回的图片二进制流数据不完整导致前端图片显示失败
发布于 5 年前 作者 lei40 7791 次浏览 来自 问答
  • 当前 Bug 的表现(可附上截图)

通过小程序二维码接口B,有时可以拿到小程序二维码,有时拿不到。具体是当无法显示二维码时我发现微信返回给我的流文件大小只有109字节,应该是流文件不完整。

  • 预期表现

凌晨时查询二维码几乎每次都能成功显示,白天查询很容易问题重现。

  • 复现路径

只要在白天调用B接口就容易重现。

  • 提供一个最简复现 Demo

我后端使用了nodejs,相关代码如下:

let data = {
              scene: theStudent._id.toString()
           };
 
           request({
                      method: 'POST',
                      uri: `https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=${accessToken}`,
                      json: true,
                      body: data
                  })
          .pipe(fs.createWriteStream(filePath))

          .on('finish', () => {

            //在这里处理流文件逻辑。我发现有时流文件大小只有109字节,这时前端无法渲染;有时有100多K字节,前端可以成功渲染。所以我怀疑是微信返回的流文件不完整

                          
          })
          .on('error', (reason) => {
                        log.error(`miniUtil->getMiniQrCode__ FAILED 1. Reason = ${JSON.stringify(reason)}`);
                        reject(reason);
          });




这个问题困扰我很久了,以前以为是request的pipe方法用的不对,网上搜了很多文章发现上面代码里pipe用法是正确的,所以现在开始怀疑是微信返回的流文件不完整了,希望官方技术支持能看一下,谢谢啦。

1 回复

没有人遇到类似问题吗?

官方的技术人员可以解答一下吗?

回到顶部