阿里云、腾讯云实人认证(身份证、人脸图像比对)

调用第三方API,实现实名认证的功能。

阿里云实名认证

首先,导入maven依赖

<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>aliyun-java-sdk-core</artifactId>
    <version>4.4.3</version>
</dependency>
<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>aliyun-java-sdk-cloudauth</artifactId>
    <version>2.0.6</version>
</dependency>

阿里云提供了很多种不同的认证方案,具体可参见 阿里云实名认证方案

这里使用纯服务端接入的方式实现,也就是 VerifyMaterial 方式。

我们只需要传入对应的参数即可,具体的参数以及返回值说明请参见 VerifyMaterial认证方式参数及返回值说明

同样的,在正式使用之前,要先去阿里云账号下进行业务的场景设置,然后才能正常使用,具体操作可参见 实人认证场景设置

后台代码如下:

public static boolean certification(String idCardNumber,String name,String faceimgUrl,String idCardFrontImgUrl,String idCardBackImgUrl){
        DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "*******x1S7yOby", "**************T0csI9Bzdv");
        IAcsClient client = new DefaultAcsClient(profile);
        VerifyMaterialRequest request = new VerifyMaterialRequest();
        request.setRegionId("cn-hangzhou");
        request.setFaceImageUrl(faceimgUrl);
        request.setBizType("**********");
        request.setBizId(UUID.randomUUID().toString().trim().replaceAll("-", ""));
        request.setName(name);
        request.setIdCardNumber(idCardNumber);
        if (idCardBackImgUrl != null) {
            request.setIdCardBackImageUrl(idCardBackImgUrl);
        }
        if (idCardFrontImgUrl != null) {
            request.setIdCardFrontImageUrl(idCardFrontImgUrl);
        }

        try {
            VerifyMaterialResponse response = client.getAcsResponse(request);
            JSONObject resp = JSONObject.fromObject(response);
            return (Integer)resp.get("verifyStatus") == 1;
        } catch (ServerException e) {
            e.printStackTrace();
            return false;
        } catch (ClientException e) {
            System.out.println("ErrCode:" + e.getErrCode());
            System.out.println("ErrMsg:" + e.getErrMsg());
            System.out.println("RequestId:" + e.getRequestId());
            return false;
        }
    }

认证通过返回true,否则返回false。
当然,也可以根据返回状态自定义返回的结果表示形式。

官方的Demo请参见 阿里实名认证Demo

另附一篇参考文章: 阿里实人认证



腾讯云实人认证

同样地,腾讯云也提供了实人认证的一些产品,但是个人感觉没有阿里云用起来舒服和方便,这里就不具体介绍了。

给出两款产品的链接,感兴趣可以试一下,(可以免费试用3~5次)

1、人脸身份证比对验证-人脸识别-人证对比

2、身份证二要素实名认证核验比对一致性验证

产品文档里对请求方式、调用地址、请求参数、返回示例等都有详细的说明,而且配备了多种语言的demo实现,只需要自己去注册一下账号,购买了这个产品后,将自己的密钥id和key替换后,就可以正常使用。

由于这两个产品都没有使用maven依赖,所有看起来代码要比阿里云的繁琐一点,可能在非maven项目中使用更好吧。

个人建议在maven项目中,还是阿里云的好用一点,代码封装性较好,逻辑比较清晰,代码也比较简洁!

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页