收藏
回答

openapi.ocr.printedText 今日不停地报 fail system error?

在开发过程中,偶尔报过一两次此类错误,但今日交接时,几乎达到了 100%。出现此类报错的原因是什么,和前端(小程序端)有关系么?

最后一次编辑于  09-29
回答关注问题邀请回答
收藏

2 个回答

  • 社区技术运营专员-小柿子
    社区技术运营专员-小柿子
    09-29

    麻烦提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html

    09-29
    赞同
    回复 4
    • 無遠侯
      無遠侯
      09-29
      机型是 iPhone 5s,SAMSUNG S10+;Android 的版本号为 7.0.5,系统为 9.0。我只是想知道 OCR 接口是不是正常提供服务而已
      09-29
      回复
    • 社区技术运营专员-小柿子
      社区技术运营专员-小柿子
      09-29回复無遠侯
      可以的
      09-29
      回复
    • 無遠侯
      無遠侯
      09-29回复社区技术运营专员-小柿子
      在下层更新了 Buffer 传递的代码(小程序端和云函数)以及错误信息,请审阅,指出错误,谢谢!
      09-29
      回复
    • 無遠侯
      無遠侯
      09-29
      你好,不论是 Buffer 还是图床下载,报错机率都比前几天高出不少,能否在提供小程序 appid、请求时间的情况,请官方排查下原因?
      09-29
      回复
  • 無遠侯
    無遠侯
    09-29

    @是柿子啊 @Welkin

    从其余帖子看,fail system error 可能是图片解码错误。目前使用的方式是上传图片至图床,腾讯服务器下载后再识别的方式。这流程可能在某些情况下表现不符合预期(频繁报 fail system error),打算改用 Buffer 的方式。

    代码如下:

    // item 为 chooseImage 返回的图片 path
    let buffer = wx.getFileSystemManager().readFileSync(item)
     
    wx.cloud.callFunction({
        name: 'printedTextOCR',
        data: { buffer }
    }).then(
        r => {
            console.log(r)
        }
    )
     
    // 云函数
    const cloud = require('wx-server-sdk')
     
    cloud.init()
     
    exports.main = async (event, context) => {
     
      return await cloud.openapi.ocr.printedText({
        type: 'photo',
        img: {
          contentType: 'image/jpg',
          value: event.buffer
        }
      }).then(r => r).catch(e => e)
    }

    报如下错误:

    errCode: 41005,
    errMsg: "openapi.ocr.printedText:fail media data missing hint: [Jo03914741]"


    请问官方,代码有什么问题么?

    更新:云函数第八行改为

    value: Buffer.from(event.buffer)


    09-29
    赞同
    回复 1
    • 無遠侯
      無遠侯
      09-29
      请问官方 contentType 限制为 'image/jpeg',如果用户上传 PNG 图像会影响识别么?
      09-29
      回复
问题标签