直接看代码
wx.chooseImage({
count: 1,
sizeType: ['compressed'],
sourceType: ['album', 'camera'],
success(res) {
// tempFilePath可以作为img标签的src属性显示图片
const tempFiles = res.tempFiles
console.log(tempFiles[0])
wx.serviceMarket.invokeService({
service: 'wx79ac3de8be320b71', // '固定为服务商OCR的appid,非小程序appid',
api: 'OcrAllInOne',
data: {
img_url: tempFiles[0].path,
data_type: 3,
ocr_type: 4,
},
}).then(res => {
console.log('invokeService success', res)
}).catch(err => {
console.error('invokeService fail', err)
})
或者这种方式
wx.request({
url: store.state.url + '/wxshop/horesman/getHoresmanToken',
method: 'POST',
data: {
},
success(res) {
console.log(res)
wx.request({
url: "https://api.weixin.qq.com/cv/ocr/drivinglicense?img_url="+tempFilePaths[0]+"&access_token="+res.data.data,
method: 'POST',
data: {
},
success(res) {
console.log(res)
},
fail(error) {
console.log(error);
}
})
},
fail(error) {
console.log(error);
}
})
我们通过选择本地或者拍摄的图片返回的地址为http地址,我查到的资料显示为ocr功能需要https路径图片,并且路径中不能有端口号,我自己配的图片服务器是带端口号的,会报错,
我在网上找到的图片可以使用,复制网上的图片地址链接可以使用。
可以试一下我服务器的图片,地址是https://www.vaiq.cn:8181/dhn/icon/drive/drive.jpg
图片是网图,就没有打码了
这是报错,如果真机调试,报的是另一个错,那个错就不贴了。
一定是要https?
试试上传到云存储,然后获取临时路径
https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-sdk-api/storage/Cloud.getTempFileURL.html
若认为该回答有用,给回答者点个[ 有用 ],让答案帮助更多的人
弄成https://img.vaiq.cn/dhn/icon/drive/drive.jpg不香吗
如果是单域名证书,用个免费的证书就好
https://developers.weixin.qq.com/miniprogram/dev/extended/service-market/api.html试下这个哈
文档上有说可以使用 CDN 方法对文件路径进行标记(或用任意的存储服务和自建的存储服务,也可以使用云开发的云文件存储服务,但都没有 CDN 方法便捷),没仔细看这句话,本地图片需要转一下才能用
碰到这个问题的记得仔细看文档