一、百度云
1.注册百度云账号(网址:百度智能云控制台-管理中心)
2.进入百度云点击控制台 -> 文字识别 -> 根据情况创建应用
3.创建应用成功,点击管理应用
里面有API Key和Secret Key,用于请求access_token。参考“Access Token获取”
二、应用中
1.获取 Access Token(Access Token的有效期(秒为单位,有效期30天);)
注意:Access Token是有有效期的,所以需要定时或者在打开页面时就获取它,我是在进入有识别的页面,每次后获取它
(1).方法:
// 获取 身份识别的 Access Token
getAccessToken: function() {
var _this = this
uni.request({
url: "https://aip.baidubce.com/oauth/2.0/token",
data: {
grant_type: "client_credentials",
client_id: "替换成您管理应用中的 API Key", //API Key
client_secret: "替换成您管理应用中的 Secret Key" //Secret Key
},
method: 'POST',
header: {
'Content-Type': 'application/x-www-form-urlencoded'
},
success(res) {
_this.accessToken = res.data.access_token
console.error("获取 身份识别的 accessToken = " + JSON.stringify(_this.accessToken))
}
})
},
(2).调用:
onLoad() {
var _this = this
// 获取身份证识别的 accessToken
_this.getAccessToken()
},
(3).选择图片并识别身份证
这是布局中身份正反面布局以及点击事件(uploadImage参数传1:表示正面 2:表示反面)
选择并识别身份证方法:
// 身份证图片选择
uploadImage: function(ocrtype) {
var _this = this
var cardType = ""
if (ocrtype == 1) {
cardType = "front"
} else {
cardType = "back"
}
uni.chooseImage({
count: 1, //默认9
sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
sourceType: ['album'], //从相册选择
success(res) {
var tempImg = res.tempFilePaths[0]
console.log("选择图片路径 tempImg = " + JSON.stringify(tempImg))
// 转base64
pathToBase64(res.tempFilePaths[0])
.then(base64 => {
// 识别
uni.request({
url: 'https://aip.baidubce.com/rest/2.0/ocr/v1/idcard?access_token=' +
_this.accessToken,
data: {
id_card_side: cardType,
image: base64,
language_type: 'ENG', //识别语言类型,默认中英文结合
&