按照如下指导,使用云调用方式使用
// 云函数入口文件const cloud = require('wx-server-sdk')cloud.init()// 云函数入口函数exports.main = async (event, context) => { const wxContext = cloud.getWXContext() let imgUrl = 'https://...' console.log(encodeURIComponent(imgUrl)) try { const result = await cloud.openapi.ocr.idcard({ type: 'photo', imgUrl: encodeURIComponent(imgUrl) }) console.log(result) return result } catch (err) { console.log(err) return err } } |
云端测试时总是报如下错误:
{ Error: errCode: -501007 invalid parameters | errMsg: ocr.idcard:fail Invalid request param at new CloudSDKError (/var/user/node_modules/wx-server-sdk/index.js:6360:28) at Object.<anonymous> (/var/user/node_modules/wx-server-sdk/index.js:434:35) at step (/var/user/node_modules/tslib/tslib.js:136:27) at Object.next (/var/user/node_modules/tslib/tslib.js:117:57) at fulfilled (/var/user/node_modules/tslib/tslib.js:107:62) at <anonymous> at process._tickCallback (internal/process/next_tick.js:188:7) errCode: -501007, errMsg: 'ocr.idcard:fail Invalid request param' }END RequestId: 0161d73f-ba95-11e9-abb2-5254002fa145Report RequestId: 0161d73f-ba95-11e9-abb2-5254002fa145 Duration:94ms Memory:256MB MaxMemoryUsed:3.371094MB |
NOTE: 此代码中的imgUrl是身份证照片,此处省略,测试时是有效的url。
使用https方式调用时是可以成功的,代码很简单,怀疑是个云端bug

如果不 encodeURIComponent?
@官方 请看一下