收藏
回答

微信ocr身份证证识别ios手机报错?

在使用wx.serviceMarket.invokeService进行身份证识别时,在开发工具和android手机上一切正常,但是在ios手机上会报错,错误日志如下:

nvokeService fail Error: invokeService:fail operateWXData:fail data no response(err_code 0)

    at eval (eval at n.call.document (runtime.js?devtools_ignore=true:1), <anonymous>:2:534470)

    at eval (eval at n.call.document (runtime.js?devtools_ignore=true:1), <anonymous>:2:230341)

    at Object.eval [as throw] (eval at n.call.document (runtime.js?devtools_ignore=true:1), <anonymous>:2:230446)

    at o (eval at n.call.document (runtime.js?devtools_ignore=true:1), <anonymous>:2:229240)

    at t (eval at n.call.document (runtime.js?devtools_ignore=true:1), <anonymous>:2:65618)

    at eval (eval at n.call.document (runtime.js?devtools_ignore=true:1), <anonymous>:2:65740)

    at e (eval at n.call.document (runtime.js?devtools_ignore=true:1), <anonymous>:2:68193)

    at e.exports (eval at n.call.document (runtime.js?devtools_ignore=true:1), <anonymous>:2:27006)

参数类型使用的是base64,先拿到图片,然后转换成base64传参,核心代码:

wx.getFileSystemManager().readFile({

filePath: filePath, //选择图片返回的相对路径

encoding: 'base64', //编码格式

success: res => { //成功的回调

console.log('data:image/png;base64,' + res.data)

wx.showLoading({

title: '检验照片是否合法'

})

wx.serviceMarket.invokeService({

service: 'wx79ac3de8be320b71', // 'wx_mp_appid',

api: 'OcrAllInOne',

data: {

img_data: res.data,

data_type: 2,

ocr_type: 1

},

}).then(res => {

曾想到的解决方案:以为是ios手机图片过大导致的错误,于是把图片进行压缩,然后再把图片转换成base64上传,这时再用真机测试,发现android和ios都会报以上的错误。

小弟实在是束手无策了,烦请各位大哥大姐帮帮忙,万分感谢。



回答关注问题邀请回答
收藏
登录 后发表内容
问题标签