当前位置: 首页> 房产> 建材 > 充电宝seo关键词优化_湖北网站建设论文题目要求_关键词排名推广_体验营销

充电宝seo关键词优化_湖北网站建设论文题目要求_关键词排名推广_体验营销

时间:2025/7/15 1:25:29来源:https://blog.csdn.net/SSHLY3/article/details/144885770 浏览次数:0次
充电宝seo关键词优化_湖北网站建设论文题目要求_关键词排名推广_体验营销

上传身份证照片提取身份信息,预填入各身份信息输入框

前端页面: 

 

<el-form-item label="证件照片" prop="carownerIdcardpicturepath"><ImagePicker ref="IdcardImagePicker" :limit="1" :isShowTip="false"v-model="form.carownerIdcardpicturepath" @input="getIdcardValue" />
</el-form-item>

 将身份证照片转base64后调取ocrIdcard身份证百度识别接口提取身份证详情信息

 //身份证百度识别getIdcardValue(fileName) {if (this.form.id != null) {return;}const fileUrl = process.env.VUE_APP_BASE_API + fileName;console.log(fileUrl)this.getBase64(fileUrl,(imgData)=>{let noPrefixBase64Code = imgData.replace(/^data:image\/\w+;base64,/, '');ocrIdcard(noPrefixBase64Code).then(response =>{console.log(response);if(response.code=='200'){let userInfo=response.data;//提取到身份证详情信息this.form.userIdtype = "1";this.form.userName = userInfo.name;this.form.userIdcard = userInfo.cardno;this.form.userPermanentaddress = userInfo.address;}})})},

声明ocrIdcard接口:

  import {ocrIdcard} from "@/api/vvv/utils";

 ocrIdcard接口js:

//身份证识别
export function ocrIdcard(data) {return request({url: '/utils/baidu/ocrIdcard',method: 'post',data: data})
}

后端实现: 

/*** 百度身份证OCR识别* @param imageStr  base64码  不带文件头* @return*/@PostMapping(value = "/ocrIdcard")public AjaxResult ocrIdcard(@RequestBody String imageStr){//去掉多余的双引号String imageBase64=  imageStr.replaceAll("\"","");String retData=baiduService.ocrIdcard(imageBase64);System.out.println("身份证识别返回结果:"+retData);JSONObject retjson =JSONObject.parseObject(retData);if(retjson!=null && retjson.getInteger("words_result_num")>0){JSONObject result=new JSONObject();JSONObject words=(JSONObject) retjson.get("words_result");result.put("photo", retjson.get("photo"));result.put("name", ((JSONObject) words.get("姓名")).get("words"));result.put("sex", ((JSONObject) words.get("性别")).get("words"));result.put("nation", ((JSONObject) words.get("民族")).get("words"));result.put("borndate", ((JSONObject) words.get("出生")).get("words"));result.put("cardno", ((JSONObject) words.get("公民身份号码")).get("words"));result.put("address", ((JSONObject) words.get("住址")).get("words"));return AjaxResult.success(result);}else{return AjaxResult.error("身份证未识别");}}

百度服务:

package com.ruoyi.framework.web.service;import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.ruoyi.common.baidu.AuthService;
import com.ruoyi.common.baidu.util.GsonUtils;
import com.ruoyi.common.baidu.util.HttpUtil;
import org.springframework.stereotype.Service;import java.net.URLEncoder;/*** @Description: (百度服务)* @Author: 南极熊* @CreateTime: 2024-10-31  09:43*/
@Service
public class BaiduService {/*** https://ai.baidu.com/ai-doc/OCR/rk3h7xzck* 身份证OCR识别* @param imgStr base64码  不带文件头* @return*/public String ocrIdcard(String imgStr) {// 请求urlString url = "https://aip.baidubce.com/rest/2.0/ocr/v1/idcard";try {String imgParam = URLEncoder.encode(imgStr, "UTF-8");String param = "id_card_side=front&detect_risk=true&detect_photo=true&image=" + imgParam;String accessToken = AuthService.getOcrAuth();String result = HttpUtil.post(url, accessToken, param);//System.out.println(result);return result;} catch (Exception e) {e.printStackTrace();}return null;}
}
AuthService 服务:
package com.ruoyi.common.baidu;import com.alibaba.fastjson.JSONObject;
import com.ruoyi.common.core.redis.RedisCache;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.spring.SpringUtils;import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;public class AuthService {public static final String OCR_ACCESS_TOKEN_KEY="ocr_access_token_key";public static String getOcrAuth() {RedisCache redisCache= SpringUtils.getBean(RedisCache.class);String token= redisCache.getCacheObject(OCR_ACCESS_TOKEN_KEY);if(StringUtils.isNull(token)){// 官网获取的 API Key 更新为你注册的String clientId = "83oTWLqwQrSytD5bOLkCZffN";// 官网获取的 Secret Key 更新为你注册的String clientSecret = "M4KZpV3lD6zct3xeDQIosHSAQ3b5NRZ6";String access_token = getAuth(clientId, clientSecret);//存入redis 缓存  有效期28 天redisCache.setCacheObject(OCR_ACCESS_TOKEN_KEY,access_token,28, TimeUnit.DAYS);return  access_token;}else {return  token;}}/*** 获取API访问token* 该token有一定的有效期,需要自行管理,当失效时需重新获取.* @param ak - 百度云官网获取的 API Key* @param sk - 百度云官网获取的 Securet Key* @return assess_token 示例:* "24.460da4889caad24cccdb1fea17221975.2592000.1491995545.282335-1234567"*/public static String getAuth(String ak, String sk) {// 获取token地址String authHost = "https://aip.baidubce.com/oauth/2.0/token?";String getAccessTokenUrl = authHost// 1. grant_type为固定参数+ "grant_type=client_credentials"// 2. 官网获取的 API Key+ "&client_id=" + ak// 3. 官网获取的 Secret Key+ "&client_secret=" + sk;try {URL realUrl = new URL(getAccessTokenUrl);// 打开和URL之间的连接HttpURLConnection connection = (HttpURLConnection) realUrl.openConnection();connection.setRequestMethod("GET");connection.connect();// 获取所有响应头字段Map<String, List<String>> map = connection.getHeaderFields();// 遍历所有的响应头字段/*    for (String key : map.keySet()) {System.err.println(key + "--->" + map.get(key));}*/// 定义 BufferedReader输入流来读取URL的响应BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));String result = "";String line;while ((line = in.readLine()) != null) {result += line;}/*** 返回结果示例*/System.err.println("result:" + result);JSONObject jsonObject =JSONObject.parseObject(result);String access_token = jsonObject.getString("access_token");return access_token;} catch (Exception e) {System.err.printf("获取token失败!");e.printStackTrace(System.err);}return null;}
}

Idea控制台效果: 

 

关键字:充电宝seo关键词优化_湖北网站建设论文题目要求_关键词排名推广_体验营销

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: