阿里云OCR用户身份证和营业执照认证

/**
     * 身份认证
     * @param userInfo
     */
    @Override
    public boolean verifyIDCard(String imageUrl, String inputName, String inputIdNumber,String type) {
        try {
            //imageUrl="https://59.25.126.35:8080/image/identityImage/9025fe7d-8852-4aae-bedb-73859eeaf79d.png";
            log.info("认证的图片地址为"+imageUrl);
            StaticCredentialProvider provider = StaticCredentialProvider.create(Credential.builder()
                    .accessKeyId(ACCESS_KEY_ID)
                    .accessKeySecret(ACCESS_KEY_SECRET)
                    //.securityToken(System.getenv("ALIBABA_CLOUD_SECURITY_TOKEN")) // use STS token
                    .build());
            AsyncClient client = AsyncClient.builder()
                    .region("cn-hangzhou") // Region ID
                    .credentialsProvider(provider)
                    .overrideConfiguration(
                            ClientOverrideConfiguration.create()
                                    // Endpoint 请参考 https://api.aliyun.com/product/ocr-api
                                    .setEndpointOverride("ocr-api.cn-hangzhou.aliyuncs.com")
                            //.setConnectTimeout(Duration.ofSeconds(30))
                    )
                    .build();
            //InputStream bodyStream = new FileInputStream(new File("<your-file-path>"));
            RecognizeAllTextRequest recognizeAllTextRequest = RecognizeAllTextRequest.builder()
                    //.body(bodyStream)
                    //.url("https://img.alicdn.com/tfs/TB1q5IeXAvoK1RjSZFNXXcxMVXa-483-307.jpg")
                    .url(imageUrl)
                    .type(type)// BusinessLicense  营业执照      IdCard   身份证号
                    .build();
            CompletableFuture<RecognizeAllTextResponse> response = client.recognizeAllText(recognizeAllTextRequest);
            RecognizeAllTextResponse resp = response.get();
            log.info("OCR识别结果:"+new Gson().toJson(resp));
            client.close();
            if("IdCard".equals(type)){
                //身份证认证
                if (resp.getBody().getCode() == null) {
                    //错误码(当识别成功时不会返回)。
                    RecognizeAllTextResponseBody.SubImages subImages =resp.getBody().getData().getSubImages().get(0);
                    String ocrName =  subImages.getKvInfo().getKvDetails().get("name").getValue();
                    String ocrIdNumber =subImages.getKvInfo().getKvDetails().get("idNumber").getValue();
                    // 比较姓名和身份证号是否一致
                    log.info("OCR识别身份证结果:"+ocrName+"-"+ocrIdNumber+"传入结果="+inputName+"-"+inputIdNumber);
                    return inputName.equals(ocrName) && inputIdNumber.equals(ocrIdNumber);
                } else {
                    //错误信息(当识别成功时不会返回)。
                    log.info("OCR识别失败:未返回有效数据"+resp.getBody().getMessage());
                    return false;
                }
            }else if("BusinessLicense".equals(type)){
                //营业执照认证
                if (resp.getBody().getCode() == null) {
                    //错误码(当识别成功时不会返回)。
                    RecognizeAllTextResponseBody.SubImages subImages =resp.getBody().getData().getSubImages().get(0);
                    String ocrCompanyName =  subImages.getKvInfo().getKvDetails().get("companyName").getValue();
                    String ocrCreditCode =subImages.getKvInfo().getKvDetails().get("creditCode").getValue();
                    // 比较姓名和身份证号是否一致
                    log.info("OCR识别营业执照结果:"+ocrCompanyName+"-"+ocrCreditCode+"传入结果="+inputName+"-"+inputIdNumber);
                    return inputName.equals(ocrCompanyName) && inputIdNumber.equals(ocrCreditCode);
                } else {
                    //错误信息(当识别成功时不会返回)。
                    log.info("OCR识别失败:未返回有效数据"+resp.getBody().getMessage());
                    return false;
                }
            }else{
                return false;
            }
        } catch (Exception e) {
            log.info("OCR识别异常:" + e.getMessage());
            return false;
        }
    }

 

<!--阿里云OCR识别  start-->
    <dependency>
      <groupId>com.aliyun</groupId>
      <artifactId>alibabacloud-ocr_api20210707</artifactId>
      <version>3.0.4</version>
    </dependency>

    <!--阿里云OCR识别   end-->

  

posted on 2025-07-04 15:18  IT-QI  阅读(20)  评论(0)    收藏  举报