OpenID: o2LIQ5lTHpiAdRAGQLOdcKsc-u-w
1)云函数部分:
1.1) 新建Node.js云函数,命名:ocr;
点击鼠标右键,选择 在外部窗口终端打开 ,执行以下命令,安装依赖:
npm init
npm install --save wx-server-sdk@latest
1.2)ocr目录下: config.json,增加:"ocr.driverLicense"
{
"permissions": {
"openapi": [
"ocr.driverLicense" // 增加部分
]
}
}
1.3)ocr 目录下: index.js,代码:
// 云函数入口文件
const cloud = require('wx-server-sdk')
// cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV }) // 使用当前云环境
cloud.init({ env: "ycanide-4gunqo7ae1b42a9d"}) // 使用当前云环境
// 云函数入口函数
exports.main = async (event, context) => {
const wxContext = cloud.getWXContext()
console.log(new Date, "ocr云函数:", wxContext, event.imgUrl)
try {
const result = await cloud.openapi.ocr.driverLicense({
"type": 'photo',
"imgUrl": event.imgUrl
})
console.log(new Date, "ocr云函数执行完毕:", event.imgUrl, result)
return result
} catch (err) {
console.log(new Date, "ocr云函数执行错误:", err)
return err
}
}
1.4)ocr目录,
点击鼠标右键, 上传并部署:云端安装依赖(不上传node_modules);
点击鼠标右键, 上传并部署:所有文件;
1.5)
经过本地调试,参数:
{
"imgUrl": *** 填驾驶证路径
}
调试成功。
2)小程序端 部分:
chooseImage() {
const that = this;
wx.chooseMedia({
count: 1,
mediaType: 'image',
sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
success(res) {
// 返回选定照片的本地文件路径列表,tempFilePath可以作为img标签的src属性显示图片
var tempPic = res.tempFiles[0].tempFilePath; //临时图片路径
// 取文件名
console.log(tempPic);
let file = tempPic.substring(tempPic.lastIndexOf('/') + 1, tempPic.length); // tempPic.lastIndexOf('.') );
console.log(file, tempPic.length);
// 上传到云端
wx.cloud.uploadFile({
cloudPath: 'vichenter/drvlic/' + file,
filePath: tempPic, // 文件路径
config: {
env: app.data.envId
}
}).then(res => {
console.log("res.fileID", res.fileID);
// 上传成功 get resource ID = res.fileID, 转换为URL
wx.cloud.getTempFileURL({
fileList: [{
fileID: res.fileID
}]
}).then(res => {
// get temp file URL
const tempFileURL = res.fileList[0].tempFileURL;
let date = new Date();
console.log(date, "进入 OCR 识别阶段, imgUrl=[" + tempFileURL + "]")
// OCR 识别 驾驶证 函数
wx.cloud.callFunction({
name: 'ocr',
data: {
"imgUrl": tempFileURL
},
success: res => {
console.log('识别成功:', res.result.name, res.result.idNum, res.result.carClass, res.result.officialSeal, 'URL:' + tempFileURL, res);
}
})
}).catch(error => {
// handle error
})
}).catch(error => {
// handle error
})
},
});
},
问题描述:
在 2)小程序端 部分, 上传的图片,偶尔可以识别,大部分时间识别不了。
错误提示如下:
2022-10-23T04:15:18.831Z ocr云函数执行错误: {
"errCode": -604102,
"errMsg": "system error: error code: -604102"
}
REPORT RequestId:f633645a-ab41-4c13-afab-f61cdfa7e8cb Duration:2075ms Memory:256MB MemUsage:24.078568MB
END