本文介绍了调用卡证核身服务的Java SDK调用示例。

前提条件

使用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.20</version>
</dependency>

调用示例

DefaultProfile profile = DefaultProfile.getProfile(
"cn-hangzhou",    // 服务地域,固定为cn-hangzhou。
"AccessKeyID",      // 填写您的AccessKey ID。
"AccessKeySecret");  // 填写您的AccessKey Secret。
IAcsClient client = new DefaultAcsClient(profile);

InitSmartVerifyRequest request = new InitSmartVerifyRequest();
// MetaInfo环境参数,需要通过客户端SDK获取。
request.setMetaInfo(
"{\"apdidToken\":\"\",\"appName\":\"com.aliyun.identity.platform\",\"appVersion\":\"1.0\","
+ "\"bioMetaInfo\":\"5.1.0:11501568,4\",\"deviceModel\":\"JKM-AL00b\",\"deviceType\":\"android\","
+ "\"osVersion\":\"9\",\"zimVer\":\"1.0.0\"}");
// 证件类型,固定值。
request.setCertType("IDENTITY_CARD");
request.setSceneId(20000xxxxxxL);
request.setOuterOrderNo("商户请求的唯一标识");
// ProductCode,固定值。
request.setProductCode("SMART_CARD");
// 卡证核身类型,固定值。
request.setMode("OCR_VERIFY");

InitSmartVerifyResponse response = client.getAcsResponse(request);

System.out.println(response.getCode());
System.out.println(response.getMessage());
System.out.println(response.getRequestId());
System.out.println(response.getResultObject().getCertifyId());


// 当App客户端提交核身申请后,在客户端SDK的回调函数中,由客户端通知服务端运行以下代码查询认证结果。
DefaultProfile profile = DefaultProfile.getProfile(
"cn-hangzhou",    // 服务地域,固定为cn-hangzhou。
"AccessKeyID",      // 您的AccessKey ID。
"AccessKeySecret");  // 您的AccessKey Secret。
IAcsClient client = new DefaultAcsClient(profile);

DescribeSmartVerifyRequest request = new DescribeSmartVerifyRequest();
request.setCertifyId("InitSmartVerify接口返回的CertifyId");
request.setSceneId(20000xxxxxxL);

DescribeSmartVerifyResponse 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());