本文介绍了调用视频实人认证的Java SDK调用示例。

前提条件

支持OSS方式和本地文件方式上传(推荐)

安装Java SDK之前,请先获取Java SDK包

  • 使用Maven引入SDK:
    <dependency>
        <groupId>com.aliyun</groupId>
        <artifactId>cloudauth20190307</artifactId>
        <version>1.0.0</version>
    </dependency>
  • 使用OSS示例:
    import com.aliyun.cloudauth20190307.Client;
    import com.aliyun.cloudauth20190307.models.ContrastFaceVerifyRequest;
    import com.aliyun.cloudauth20190307.models.ContrastFaceVerifyResponse;
    import com.aliyun.tearpc.models.Config;
    import com.aliyun.teautil.models.RuntimeOptions;
    
    public class ContrastFaceVerifyTest {
    
        public static void main(String[] args) throws Exception {
            // 通过以下代码创建Config实例并初始化。
            Config config = new Config();
            // 您的AccessKey ID。
            config.setAccessKeyId("AccessKey");
            // 您的AccessKey Secret。
            config.setAccessKeySecret("AccessSecret");
            // 设置Endpoint,IPv6为:cloudauth-dualstack.aliyuncs.com。
            config.setEndpoint("cloudauth.aliyuncs.com");
            // 设置RegionID,RegionID为固定值。
            config.setRegionId("cn-hangzhou");
            // 设置http代理。
             //config.setHttpProxy("http://xxx.xxx.xxx.xxx:9999");
            // 设置https代理。
            //config.setHttpsProxy("https://username:password@xxx.xxx.xxx.xxx:9999");
            Client client = new Client(config);
    
            // 通过以下代码创建RuntimeObject实例并设置运行参数。
            RuntimeOptions runtime = new RuntimeOptions();
            // 设置不自动重试
            runtime.autoretry = false;
            // 设置连接超时时间(单位ms)。
            runtime.readTimeout = 10000;
            // 设置调用超时时间(单位ms)。
            runtime.connectTimeout = 10000;
    
            // 通过以下代码创建API请求并设置参数。
            ContrastFaceVerifyRequest request = new ContrastFaceVerifyRequest();
            request.setSceneId(200xxxxL);
            // 设置商户请求的唯一标识。
            request.setOuterOrderNo("xxxx");
            // 认证方案,固定值。
            request.setProductCode("ID_MIN_VIDEO");
            // 固定值。
            request.setCertType("IDENTITY_CARD");
            // 姓名。
            request.setCertName("张三");
            // 18位身份证号。
            request.setCertNo("123456199012264321");
            // 活体检测类型。
            request.setModel("FRONT_CAMERA_LIVENESS");
            // 设置OSS视频文件信息。
            request.setOssBucketName("cn-shanghai-aliyun-cloudauth-12xxxxxx");
            request.setOssObjectName("test.mp4");
    
            // 通过以下代码发起请求并处理应答和异常。
            try {
                ContrastFaceVerifyResponse response = client.contrastFaceVerify(request, runtime);
    
                System.out.println(response.getRequestId());
                System.out.println(response.getCode());
                System.out.println(response.getMessage());
                System.out.println(response.getResultObject().getPassed());
                System.out.println(response.getResultObject().getSubCode());
                System.out.println(response.getResultObject().getMaterialInfo());
                System.out.println(response.getResultObject().getIdentityInfo());
            } catch (TeaException e) {
                System.out.println(e.getCode());
                System.out.println(e.getData());
                System.out.println(e.getMessage());
                e.printStackTrace();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
  • 使用本地文件示例:
    import java.io.FileInputStream;
    import java.io.InputStream;
    
    import com.aliyun.cloudauth20190307.Client;
    import com.aliyun.cloudauth20190307.models.ContrastFaceVerifyAdvanceRequest;
    import com.aliyun.cloudauth20190307.models.ContrastFaceVerifyResponse;
    import com.aliyun.tea.TeaException;
    import com.aliyun.tearpc.models.Config;
    import com.aliyun.teautil.models.RuntimeOptions;
    
    public class ContrastFaceVerifyAdvanceTest {
    
        public static void main(String[] args) throws Exception {
            // 通过以下代码创建Config实例并初始化。
            Config config = new Config();
            // 您的AccessKey ID。
            config.setAccessKeyId("AccessKey");
            // 您的AccessKey Secret。
            config.setAccessKeySecret("AccessSecret");
            // 设置Endpoint,IPv6为:cloudauth-dualstack.aliyuncs.com。
            config.setEndpoint("cloudauth.aliyuncs.com");
            // 设置RegionID,RegionID为固定值。
            config.setRegionId("cn-hangzhou");
            // 设置http代理。
             //config.setHttpProxy("http://xxx.xxx.xxx.xxx:9999");
            // 设置https代理。
            //config.setHttpsProxy("https://username:password@xxx.xxx.xxx.xxx:9999");
            Client client = new Client(config);
    
            // 通过以下代码创建RuntimeObject实例并设置运行参数。
            RuntimeOptions runtime = new RuntimeOptions();
            // 设置不自动重试
            runtime.autoretry = false;
            // 设置连接超时时间(单位ms)。
            runtime.readTimeout = 10000;
            // 设置调用超时时间(单位ms)。
            runtime.connectTimeout = 10000;
    
            // 通过以下代码创建API请求并设置参数。
            ContrastFaceVerifyAdvanceRequest request = new ContrastFaceVerifyAdvanceRequest();
            request.setSceneId(200xxxxL);
            // 设置商户请求的唯一标识。
            request.setOuterOrderNo("xxxx");
            // 认证方案,固定值。
            request.setProductCode("ID_MIN_VIDEO");
            // 固定值。
            request.setCertType("IDENTITY_CARD");
            // 姓名。
            request.setCertName("张三");
            // 18位身份证号
            request.setCertNo("123456199012264321");
            // 活体检测类型。
            request.setModel("FRONT_CAMERA_LIVENESS");
            request.setIp("用户IP地址");
            request.setMobile("用户手机号");
            request.setDeviceToken("通过设备指纹获取的deviceToken");
            request.setUserId("用户ID");
            
            // 设置本地文件路径。
            InputStream inputStream = new FileInputStream("test.mp4");
            request.setFaceContrastFileObject(inputStream);
    
            // 通过以下代码发起请求并处理应答或异常。
            try {
                ContrastFaceVerifyResponse response = client.contrastFaceVerifyAdvance(request, runtime);
    
                System.out.println(response.getRequestId());
                System.out.println(response.getCode());
                System.out.println(response.getMessage());
                System.out.println(response.getResultObject().getPassed());
                System.out.println(response.getResultObject().getSubCode());
                System.out.println(response.getResultObject().getMaterialInfo());
                System.out.println(response.getResultObject().getIdentityInfo());
            } catch (TeaException e) {
                System.out.println(e.getCode());
                System.out.println(e.getData());
                System.out.println(e.getMessage());
                e.printStackTrace();
            } catch (Exception e) {
                e.printStackTrace();
            }
    
            // 通过以下代码关闭资源。
            inputStream.close();
        }
    }

仅支持OSS方式上传

如需其他语言的SDK示例代码,您可以通过OpenAPI Explorer在线调试工具调试API接口,该工具会自动生成SDK示例代码。

  • 使用Maven引入SDK:
    <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.22</version>
    </dependency>
  • 使用OSS示例:
    DefaultProfile profile = DefaultProfile.getProfile(
                // 固定为cn-hangzhou。
                "cn-hangzhou", 
                // 您的AccessKey ID。   
                "AccessKeyID", 
                // 您的AccessKey Secret。     
                "AccessKeySecret");  
    IAcsClient client = new DefaultAcsClient(profile);
    ContrastFaceVerifyRequest request = new ContrastFaceVerifyRequest();
    request.setSceneId(200xxxxL);
    // 设置商户请求的唯一标识。
    request.setOuterOrderNo("xxxx");
    // 认证方案,固定值。
    request.setProductCode("ID_MIN_VIDEO");
    // 固定值。
    request.setCertType("IDENTITY_CARD");
    // 姓名。
    request.setCertName("张三");
    // 18位身份证号。
    request.setCertNo("123456199012264321");
    // 活体检测类型。
    request.setModel("FRONT_CAMERA_LIVENESS");
    request.setIp("用户IP地址");
    request.setMobile("用户手机号");
    request.setDeviceToken("通过设备指纹获取的deviceToken");
    request.setUserId("用户ID");
    
    // 设置OSS视频文件信息。
    request.setOssBucketName("cn-shanghai-aliyun-cloudauth-12xxxxxx");
    request.setOssObjectName("test.mp4");
    
    ContrastFaceVerifyResponse response = client.getAcsResponse(request);
    System.out.println(response.getCode());
    System.out.println(response.getMessage());
    System.out.println(response.getRequestId());
    System.out.println(response.getResultObject().getPassed());
    System.out.println(response.getResultObject().getSubCode());
    System.out.println(response.getResultObject().getMaterialInfo());
    System.out.println(response.getResultObject().getIdentityInfo());