记录一下使用华为云OCR识别身份证和银行卡

public class OCRUtil {

    private static String tokenurl="https://iam.cn-east-3.myhuaweicloud.com/v3/auth/tokens";
    private static String username=;
    private static String domain=;
    private static String password=;
    private static String projectid=;

    /**
     * 识别身份证信息
     * @param imageurl 图片地址
     * @param side  true 正面(头像面)    false 反面(国徽面)
     * 注意事项:此处申请华为云必须在华为云上海一区开通身份证识别功能,然后拷贝项目ID到此处进行识别
     */
    public static String getIdCardInfo(String imageurl,String side){
        String JSONSTR = "{ \n \"auth\": { \n \"identity\": { \n \"methods\": [ \n \"password\" \n  ], \n  \"password\": { \n \"user\": { \n\"name\": \""+username+"\", \n \"password\": \""+password+"\", \n \"domain\": { \n \"name\": \""+domain+"\" \n } \n } \n} \n}, \n\"scope\": { \n \"project\": { \n\"name\": \"cn-east-3\" \n} \n} \n} \n}";
        String token =   HttpRequest.post(tokenurl).body(JSONUtil.parse(JSONSTR) ).execute().header("X-Subject-Token");
        String url = "https://ocr.cn-east-3.myhuaweicloud.com/v2/"+projectid+"/ocr/id-card";
        Map<String,Object> param = new HashMap<>();
        param.put("url",imageurl);
        param.put("side",side);
        String result=HttpRequest.post(url).header("X-Auth-Token",token).body(JSONUtil.parse(param) ).execute().body();
        System.out.println(result);
        return result;
    }
    /**
     * 识别银行卡信息
     * @param imageurl 图片地址
     * 注意事项:此处申请华为云必须在华为云上海一区开通身份证识别功能,然后拷贝项目ID到此处进行识别
     */
    public static String getBankInfo(String imageurl){
        String JSONSTR = "{ \n \"auth\": { \n \"identity\": { \n \"methods\": [ \n \"password\" \n  ], \n  \"password\": { \n \"user\": { \n\"name\": \""+username+"\", \n \"password\": \""+password+"\", \n \"domain\": { \n \"name\": \""+domain+"\" \n } \n } \n} \n}, \n\"scope\": { \n \"project\": { \n\"name\": \"cn-east-3\" \n} \n} \n} \n}";
        String token =   HttpRequest.post(tokenurl).body(JSONUtil.parse(JSONSTR) ).execute().header("X-Subject-Token");
        String url = "https://ocr.cn-east-3.myhuaweicloud.com/v2/"+projectid+"/ocr/bankcard";
        Map<String,Object> param = new HashMap<>();
        param.put("url",imageurl);
        String result=HttpRequest.post(url).header("X-Auth-Token",token).body(JSONUtil.parse(param) ).execute().body();
        System.out.println(result);
        return result;
    }
}

着重说明username和password是你的华为云主账号创建的IAM账号。domain是主账号用户名。tokenurl是华为云 华东-上海一 的服务器域名,可根据不同地域更换。

可参考官方文档:https://support.huaweicloud.com/api-iam/iam_17_0002.html

IAM用户组和账号配置:https://support.huaweicloud.com/qs-iam/iam_01_0030.html

错误码:https://support.huaweicloud.com/api-ocr/ocr_03_0028.html

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐