本文介绍了调用增强版实人认证服务的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-hangzhourequest。
"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\"}");
// 证件类型,取值固定为IDENTITY_CARD,表示身份证。
request.setCertType("IDENTITY_CARD");
request.setSceneId(20000xxxxxxL);
request.setOuterOrderNo("商户请求的唯一标识");
// 业务场景类型。
request.setMode("MARKET_SAFE");
// 是否需移动端OCR操作。
request.setOcr("T");
request.setCertName("张三");
request.setCertNo("330103xxxxxxxxxxxx");
request.setMobile("139xxxxxxxx");
request.setIp("xxx.xxx.xxx.xxx");
request.setUserId("xxxxxxx");

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-hangzhourequest。
"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().getPassedScore());
System.out.println(response.getResultObject().getSubCode());
System.out.println(response.getResultObject().getMaterialInfo());