本文介绍了卡证核身方案纯服务端集成的Java SDK调用示例。

SDK使用说明

如果需要其他语言的SDK示例代码,您可以通过OpenAPI开发者门户在线调试工具调试API接口。该工具会自动生成相应API的SDK调用示例代码。

详细信息,请参见调用ElementSmartVerify接口

前提条件

需要使用的Java版本在1.8版本及以上。

使用Maven引入SDK

<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>cloudauth20200618</artifactId>
    <version>1.0.4</version>
</dependency>

示例

  • 方式一:不使用本地证件示例
    import com.aliyun.cloudauth20200618.Client;
    import com.aliyun.cloudauth20200618.models.ElementSmartVerifyRequest;
    import com.aliyun.cloudauth20200618.models.ElementSmartVerifyResponse;
    import com.aliyun.tearpc.models.Config;
    import com.aliyun.teautil.models.RuntimeOptions;
    
    public class ElementSmartVerifyTest {
    
        public static void main(String[] args) throws Exception {
    
            // 阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
            // 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
            // 本示例通过阿里云Credentials工具从环境变量中读取AccessKey,来实现API访问的身份验证。如何配置环境变量,请参见https://help.aliyun.com/document_detail/378657.html。
            com.aliyun.credentials.Client credentialClient = new com.aliyun.credentials.Client();
            Config config = new Config();
            config.setCredential(credentialClient);
            // 设置您的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请求并设置参数。
            ElementSmartVerifyRequest request = new ElementSmartVerifyRequest();
            request.setSceneId(200xxxxL);
            // 设置商户请求的唯一标识。
            request.setOuterOrderNo("xxx");   
            // 模式。
            request.setMode("OCR_VERIFY_ID_NAME");
            // 固定值。
            request.setCertType("IDENTITY_CARD");
            // request.setCertName("张三");
            // request.setCertNo("18位身份证号");
            request.setCertUrl("https://www.aliyun.com/test.jpeg");
            // 身份证国徽面URL。
            // request.setCertNationalEmblemUrl("https://www.aliyun.com/test.jpeg");
    
            // 通过以下代码发起请求并处理应答和异常。
            try {
                ElementSmartVerifyResponse response = client.elementSmartVerify(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().getCertifyId());
                System.out.println(response.getResultObject().getSubCode());
                System.out.println(response.getResultObject().getMaterialInfo());
            } 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.cloudauth20200618.Client;
    import com.aliyun.cloudauth20200618.models.ElementSmartVerifyAdvanceRequest;
    import com.aliyun.cloudauth20200618.models.ElementSmartVerifyResponse;
    import com.aliyun.tea.TeaException;
    import com.aliyun.tearpc.models.Config;
    import com.aliyun.teautil.models.RuntimeOptions;
    
    public class ElementSmartVerifyTest {
    
        public static void main(String[] args) throws Exception {
    
            // 阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
            // 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
            //本示例通过阿里云Credentials工具从环境变量中读取AccessKey,来实现API访问的身份验证。如何配置环境变量,请参见https://help.aliyun.com/document_detail/378657.html。
            com.aliyun.credentials.Client credentialClient = new com.aliyun.credentials.Client();
            Config config = new Config();
            config.setCredential(credentialClient);
            // 设置您的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请求并设置参数。
            ElementSmartVerifyAdvanceRequest request = new ElementSmartVerifyAdvanceRequest();
            request.setSceneId(200xxxxL);
            //设置商户请求的唯一标识。
            request.setOuterOrderNo("xxx");   
            // 模式。
            request.setMode("OCR_VERIFY_ID_NAME");
            // 固定值。
            request.setCertType("IDENTITY_CARD");
            // request.setCertName("张三");
            // request.setCertNo("18位身份证号");
            // 身份证国徽面URL。
            // request.setCertNationalEmblemUrl("https://www.aliyun.com/test.jpeg");
            //设置本地文件路径。
            InputStream inputStream = new FileInputStream("xxx");  
            request.setCertFileObject(inputStream);
    
            // 通过以下代码发起请求并处理应答或异常。
            try {
                ElementSmartVerifyResponse response = client.elementSmartVerifyAdvance(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().getCertifyId());
                System.out.println(response.getResultObject().getSubCode());
                System.out.println(response.getResultObject().getMaterialInfo());
            } 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();
        }
    }