调用华为云ocr身份证验证

华为云测试API地址:https://apiexplorer.developer.huaweicloud.com/apiexplorer/sdk?product=OCR&api=RecognizeIdCard

获取对应的参数

 

依赖

<!--        华为云sdk-->
        <dependency>
            <groupId>com.huaweicloud.sdk</groupId>
            <artifactId>huaweicloud-sdk-core</artifactId>
            <version>3.1.5</version>
        </dependency>
        <dependency>
            <groupId>com.huaweicloud.sdk</groupId>
            <artifactId>huaweicloud-sdk-ocr</artifactId>
            <version>3.1.5</version>
        </dependency>

 代码  


    /**
     *
     * @param
     * @param side 正面 反面  front:身份证正面。    back:身份证背面
     * @return
     */
    @PostMapping("/isCard")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "file", value = "身份证上传文件"),
            @ApiImplicitParam(name = "side", value = "front:身份证正面。    back:身份证背面")
    })
    public R idCard(MultipartFile file,String side) throws IOException {

  

        String ak = "3AQCOssssL";
        String sk = "MHdic08sssssh";

        ICredential auth = new BasicCredentials()
                .withAk(ak)
                .withSk(sk);

        OcrClient client = OcrClient.newBuilder()
                .withCredential(auth)
                .withRegion(OcrRegion.valueOf("cn-north-4"))
                .build();
        RecognizeIdCardRequest request = new RecognizeIdCardRequest();
        IdCardRequestBody body = new IdCardRequestBody();
        body.withDetectCopy(true);  //true :返回身份证图像是否是复印件
        body.withDetectReproduce(true);  //true 返回身份证图像是否经过翻拍
        body.withReturnTextLocation(true); //true 返回各个文字块区域
        body.withReturnVerification(true);  //true:返回校验信息  false:不返回校验信息
        body.withSide(side);  //front:身份证正面。    back:身份证背面
        body.withUrl(fileUrl);  //与url二选一  图片的URL路径
//        body.withImage("s"); //图像数据,base64编码
        request.withBody(body);
        String responses = "";
        try {
            RecognizeIdCardResponse response = client.recognizeIdCard(request);
            responses = response.toString();
            System.out.println(response.toString());
        } catch (ConnectionException e) {
            e.printStackTrace();
        } catch (RequestTimeoutException e) {
            e.printStackTrace();
        } catch (ServiceResponseException e) {
            e.printStackTrace();
            System.out.println(e.getHttpStatusCode());
            System.out.println(e.getErrorCode());
            System.out.println(e.getErrorMsg());
        }
        return R.ok().data("response",responses);
    }

猜你喜欢

转载自blog.csdn.net/Java_Mr_Jin/article/details/128303108
今日推荐