本文介紹了卡證核身方案純服務(wù)端集成的Java SDK調(diào)用示例。

SDK使用說明

如果需要其他語言的SDK示例代碼,您可以通過OpenAPI開發(fā)者門戶在線調(diào)試工具調(diào)試API接口。該工具會自動生成相應(yīng)API的SDK調(diào)用示例代碼。

詳細信息,請參見調(diào)用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的訪問權(quán)限,建議您使用RAM用戶進行API訪問或日常運維。
            // 強烈建議不要把AccessKey ID和AccessKey Secret保存到工程代碼里,否則可能導(dǎo)致AccessKey泄露,威脅您賬號下所有資源的安全。
            // 本示例通過阿里云Credentials工具從環(huán)境變量中讀取AccessKey,來實現(xiàn)API訪問的身份驗證。如何配置環(huán)境變量,請參見http://m.bestwisewords.com/document_detail/378657.html。
            com.aliyun.credentials.Client credentialClient = new com.aliyun.credentials.Client();
            Config config = new Config();
            config.setCredential(credentialClient);
            // 設(shè)置您的Endpoint,Endpoint為固定值。
            config.setEndpoint("cloudauth.aliyuncs.com");
            // 設(shè)置您的RegionID,RegionID為固定值。
            config.setRegionId("cn-hangzhou");
            // 設(shè)置HTTP代理。
            // config.setHttpProxy("http://xxx.xxx.xxx.xxx:9999");
            // 設(shè)置HTTPS代理。
            // config.setHttpsProxy("https://username:password@xxx.xxx.xxx.xxx:9999");
            Client client = new Client(config);
    
            // 通過以下代碼創(chuàng)建RuntimeObject實例并設(shè)置運行參數(shù)。
            RuntimeOptions runtime = new RuntimeOptions();
            // 設(shè)置調(diào)用超時時間(單位ms)。
            runtime.readTimeout = 10000;
            // 設(shè)置連接超時時間(單位ms)。
            runtime.connectTimeout = 10000;
    
            // 通過以下代碼創(chuàng)建API請求并設(shè)置參數(shù)。
            ElementSmartVerifyRequest request = new ElementSmartVerifyRequest();
            request.setSceneId(200xxxxL);
            // 設(shè)置商戶請求的唯一標(biāo)識。
            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");
    
            // 通過以下代碼發(fā)起請求并處理應(yīng)答和異常。
            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的訪問權(quán)限,建議您使用RAM用戶進行API訪問或日常運維。
            // 強烈建議不要把AccessKey ID和AccessKey Secret保存到工程代碼里,否則可能導(dǎo)致AccessKey泄露,威脅您賬號下所有資源的安全。
            //本示例通過阿里云Credentials工具從環(huán)境變量中讀取AccessKey,來實現(xiàn)API訪問的身份驗證。如何配置環(huán)境變量,請參見http://m.bestwisewords.com/document_detail/378657.html。
            com.aliyun.credentials.Client credentialClient = new com.aliyun.credentials.Client();
            Config config = new Config();
            config.setCredential(credentialClient);
            // 設(shè)置您的Endpoint,Endpoint為固定值。
            config.setEndpoint("cloudauth.aliyuncs.com");
            // 設(shè)置您的RegionID,RegionID為固定值。
            config.setRegionId("cn-hangzhou");
            // 設(shè)置HTTP代理。
            //config.setHttpProxy("http://xxx.xxx.xxx.xxx:9999");
            // 設(shè)置HTTPS代理。
            //config.setHttpsProxy("https://username:password@xxx.xxx.xxx.xxx:9999");
            Client client = new Client(config);
    
            // 通過以下代碼創(chuàng)建RuntimeObject實例并設(shè)置運行參數(shù)。
            RuntimeOptions runtime = new RuntimeOptions();
            // 設(shè)置調(diào)用超時時間(單位ms)。
            runtime.readTimeout = 10000;
            // 設(shè)置連接超時時間(單位ms)。
            runtime.connectTimeout = 10000;
    
            // 通過以下代碼創(chuàng)建API請求并設(shè)置參數(shù)。
            ElementSmartVerifyAdvanceRequest request = new ElementSmartVerifyAdvanceRequest();
            request.setSceneId(200xxxxL);
            //設(shè)置商戶請求的唯一標(biāo)識。
            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");
            //設(shè)置本地文件路徑。
            InputStream inputStream = new FileInputStream("xxx");  
            request.setCertFileObject(inputStream);
    
            // 通過以下代碼發(fā)起請求并處理應(yīng)答或異常。
            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();
            }
    
            // 通過以下代碼關(guān)閉資源。
            inputStream.close();
        }
    }