uniapp 调用阿里云OCR身份证识别

uniapp 调用阿里云OCR身份证识别

有个项目需求用到阿里云印刷身份证识别,网上搜了很多没有参考,话不多说爬坑总结;
第一步先注册阿里云账号点击注册阿里云账号已有账号忽略;

  1. 阿里云身份证识别购买第一次购买可以0元调用500次测试在这里插入图片描述
  2. 购买后在下边会有调用api的接口在这里插入图片描述和调用接口后返回的参数话不多少上代码简单明了,
  3. 上代码在这里插入图片描述
  4. 这里需要注意下 也是我遇见的坑 发送请求的时候一定要写上请求头 是你买完身份证识别后的appcode ,点击这里查看你的appcode在这里插入图片描述
  5. 此时你的appcode格式也一定要对 下面展示格式注意注释内容 内联代码片
// APPCODE和你的数字之间一定要有个空格否则接口返回400
 header: {
	     'Authorization': 'APPCODE 546846841465484145498'//APPCODE值
	    },

6.请求方式为POST,返回的数据格式为JSON,请求时的参数主要有两个, 一个是识别图片的base64码,另一个是要识别身份证的正面还是反面(face: 正面; back: 反面);

这里在传参数时要注意传入参数的正确格式,另外在传入base64码时是不需要传入base64的文件头的;

图片base64编码字符串的截取
举例:
如下的base64字符串:

data:image/jpeg;base64,/9j/4QsJRXhpZgAATU0AKgAAAAgADAEQAAIAAAALAAAAngEA......

现在我们需要是base64,后面的字符串:

截取方法:
	1. 先使用js中的 indexOf 方法找到 ',' 字符的下标
	2. 使用 js 中的 substring 方法 直接截取 下标后面的值
	
	str.substring(str.indexOf(',')+1)

看代码中的例子在这里插入图片描述
7.下面我把源码,放出来仅供参考
下面展示一些 内联代码片

// 选取图片
			chooseImage(e) {
				console.log(e)
				if(e == 'face'){
					var configure = "{'side':'face'}" //face正面、back反面
				}else{
					var configure = "{'side':'back'}"
				}
				var that = this
				uni.chooseImage({
					count: 1,
					sizeType: ['original'],
					sourceType: ['album'],//从相册选取
					success: (res) => {
						console.log(res);
						const tempFilePaths = res.tempFilePaths;
						pathToBase64(tempFilePaths[0])
							.then(base64 => {
								console.log('11', base64)
								let str = base64.substring(base64.indexOf(',')+1)
								console.log(str);
								var json = {
									"image": str,
									"configure": configure
								};
								console.log(json)
								uni.request({
									url: 'http://dm-51.data.aliyun.com/rest/160601/ocr/ocr_idcard.json',//测试api
									dataType:'json',
									 header: {
									        'Authorization': 'APPCODE +你的APPCODE值'//APPCODE值
									    },
									method: 'POST',
									data: JSON.stringify(json),
									success(res) {
										console.log(res);
									}
								})
							})
							.catch(error => {
								console.error(error)
							})
					}
				})
			}
  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值