本文介绍Java SDK集成纯服务端认证方案的操作方法。

前提条件

  • 已注册阿里云账号并获取AccessKey ID和AccessKey Secret。更多信息,请参见阿里云账号注册流程创建AccessKey
  • 需要使用的Java版本在1.8版本及以上。
  • 使用Maven引入服务依赖。
    <dependency>
        <groupId>com.aliyun</groupId>
        <artifactId>cloudauth20200618</artifactId>
        <version>1.0.2</version>
    </dependency>

示例

  • 方式一:不使用本地图片示例
    import com.aliyun.cloudauth20200618.models.ContrastSmartVerifyRequest;
    import com.aliyun.cloudauth20200618.models.ContrastSmartVerifyResponse;
    import com.aliyun.tea.TeaException;
    import com.aliyun.tearpc.models.Config;
    import com.aliyun.teautil.models.RuntimeOptions;
    
    public class ContrastSmartVerifyTest {
    
        public static void main(String[] args) throws Exception {
            // 通过以下代码创建Config实例并初始化。
            Config config = new Config();
            // 您的AccessKey ID。
            config.setAccessKeyId("AccessKey");
            // 您的AccessKey Secret。
            config.setAccessKeySecret("AccessSecret");
            // 设置Endpoint,Endpoint为固定值。
            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();
            // 设置连接超时时间(单位ms)。
            runtime.readTimeout = 10000;
            // 设置调用超时时间(单位ms)。
            runtime.connectTimeout = 10000;
    
            // 通过以下代码创建API请求并设置参数。
            ContrastSmartVerifyRequest request = new ContrastSmartVerifyRequest();
            request.setSceneId("xxxxx");
            request.setOuterOrderNo("xxxxxxxxxxx");
            request.setMode("xxxxx");
            // 固定值IDENTITY_CARD。
            request.setCertType("IDENTITY_CARD");
            request.setCertName("张三");
            request.setCertNo("18位身份证号");
            request.setMobile("xxxxxx");
            // 公网可以访问的HTTP、HTTPS链接。
            request.setFacePicUrl("https://xxxx.jpg");
            // 使用图片Base64编码方式。
            // request.setFacePicString("xxxxx");
    
            // 通过以下代码发起请求并处理应答和异常。
            try {
                ContrastSmartVerifyResponse response = client.contrastSmartVerify(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().getRiskInfo());
                System.out.println(response.getResultObject().getVerifyInfo());
            } 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 com.aliyun.cloudauth20200618.models.ContrastSmartVerifyAdvanceRequest;
    import com.aliyun.cloudauth20200618.models.ContrastSmartVerifyResponse;
    import com.aliyun.tea.TeaException;
    import com.aliyun.tearpc.models.Config;
    import com.aliyun.teautil.models.RuntimeOptions;
    
    public class ContrastSmartVerifyTest {
    
        public static void main(String[] args) throws Exception {
            // 通过以下代码创建Config实例并初始化。
            Config config = new Config();
            // 您的AccessKey ID。
            config.setAccessKeyId("AccessKey");
            // 您的AccessKey Secret。
            config.setAccessKeySecret("AccessSecret");
            // 设置Endpoint,Endpoint为固定值。
            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();
            // 设置连接超时时间(单位ms)。
            runtime.readTimeout = 10000;
            // 设置调用超时时间(单位ms)。
            runtime.connectTimeout = 10000;
    
            // 通过以下代码创建API请求并设置参数。
            ContrastSmartVerifyAdvanceRequest request = new ContrastSmartVerifyAdvanceRequest();
            request.setSceneId("xxxxx");
            request.setOuterOrderNo("xxxxxxxxxxx");
            request.setMode("xxxxx");
            // 固定值IDENTITY_CARD。
            request.setCertType("IDENTITY_CARD");
            request.setCertName("张三");
            request.setCertNo("18位身份证号");
            request.setMobile("xxxxxx");
            // 本地文件。
            InputStream inputStream = new FileInputStream("xxxx");
            request.setFacePicFileObject(inputStream);
    
            // 通过以下代码发起请求并处理应答和异常。
            try {
                ContrastSmartVerifyResponse response = client.contrastSmartVerifyAdvance(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().getRiskInfo());
                System.out.println(response.getResultObject().getVerifyInfo());
            } 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();
            }
        }
    }