# 移动端在线活体验证
# 业务介绍
通过传入的活体sdk的信息生成token,并能根据生成的token查询认证的状态和结果。
# 获取token
根据传入的活体sdk的信息生成token
# 一、请求说明
请求地址:http://api.spiderid.cn/api/router/rest,https://api.spiderid.cn/api/router/rest
服务接口名称(即公共参数method的值): liveness.sdk.getToken
请求方式:GET,POST
# 二、请求参数
名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
sdkVersion | Integer | 是 | SDK版本,范围(1-99999) |
sdkType | String | 是 | SDK类型(ios或android) |
appIdentifier | String | 是 | 应用标识符,android为包名,IOS为bundleId |
certMd5 | String | 否 | 签名证书MD5,sdkType为android则必填,sdkType为ios则不填 |
notifyUrl | String | 否 | 平台方服务器主动通知客户服务器指定页面,向服务器主动推送活体验证结果 |
请求示例:
https://api.spiderid.cn/api/router/rest?
sdkVersion=XXX
&sdkType=XXX
&appIdentifier=XXX
&<[公共请求参数]>
# 三、响应参数
data 结果信息 | 类型 | 描述 |
---|---|---|
token | String | 认证Token |
expireTime | Long | 过期时间毫秒数 |
incorrect | Integer | 返回码(详情见字段解释) |
message | String | 对返回码的描述 |
字段解释
incorrect 返回码介绍
字段 | 状态介绍 |
---|---|
100 | 成功 |
# 四、成功示例
JSON示例
{
"code": 0,
"requestId":"f1005...",
"message": "success",
"data": {
"token":"ZjA3OGZmZmZiYjMwYzdkNGVkNzljZGM3ZjFlOWM1YzQ0MTgzMzIxYTQxMTE5ZjU0ZDFmZTMyODA4M2MwZWVjZmYxMDA1ZjIyNjFmYjdkNTYwZDAwMDE5NzU5MTM=",
"expireTime":1596124827263,
"incorrect":100,
"message":"成功"
}
}
# 五、失败示例
JSON示例
{
"code": 10005,
"requestId":"f1005...",
"message": "请求参数(certMd5)必须为空,请参考API文档",
"data":null
}
# 获取认证状态
根据token获取认证状态
# 一、请求说明
请求地址:http://api.spiderid.cn/api/router/rest,https://api.spiderid.cn/api/router/rest
服务接口名称(即公共参数method的值): liveness.sdk.getStatus
请求方式:GET,POST
# 二、请求参数
名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
token | String | 是 | 认证token |
请求示例:
https://api.spiderid.cn/api/router/rest?
token=XXX
&<[公共请求参数]>
# 三、响应参数
data 结果信息 | 类型 | 描述 |
---|---|---|
status | String | 认证状态 |
incorrect | Integer | 返回码 100为成功 |
message | String | 对返回码的描述 |
字段解释
status 认证状态介绍
字段 | 状态介绍 |
---|---|
CREATE | 未认证 |
ACTION | 认证中 |
OVER | 完成认证 |
INVALID | 已失效 |
- incorrect 返回码介绍
字段 | 状态介绍 |
---|---|
100 | 成功 |
101 | 认证记录不存在 |
# 四、成功示例
JSON示例
{
"code": 0,
"requestId":"dsd24...",
"message": "success",
"data": {
"status":"OVER",
"incorrect":100,
"message":"成功"
}
}
# 五、失败示例
JSON示例
{
"code": 0,
"requestId":"dsd24...",
"message": "success",
"data": {
"incorrect":101,
"message":"认证记录不存在"
}
}
# 获取认证结果
根据token获取认证结果,状态为OVER时,才能获取到认证结果。
请求地址:http://api.spiderid.cn/api/router/rest,https://api.spiderid.cn/api/router/rest
服务接口名称(即公共参数method的值): liveness.sdk.getResult
请求方式:GET,POST
# 二、请求参数
名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
token | String | 是 | 认证token |
请求示例:
https://api.spiderid.cn/api/router/rest?
token=XXX
&<[公共请求参数]>
# 三、响应参数
data 结果信息 | 类型 | 描述 |
---|---|---|
image | String | 活体图片 |
incorrect | Integer | 返回码(详情见字段解释) |
message | String | 对返回码的描述 |
字段解释
incorrect 返回码介绍
字段 | 状态介绍 |
---|---|
100 | 成功 |
101 | 认证记录不存在 |
102 | 认证状态非法 |
# 四、成功示例
JSON示例
{
"code": 0,
"requestId":"f1005f...",
"message": "success",
"data": {
"image":"/9j/4AAQ...",
"incorrect":100,
"message":"成功"
}
}
# 五、失败示例
JSON示例
{
"code": 0,
"requestId":"f1005f...",
"message": "success",
"data": {
"incorrect":102,
"message":"认证状态非法"
}
}
# SDK 请求示例
# 获取 Token
//提供的url
String url = "http://api.spiderid.cn/api/router/rest";
//您的appKey
String appkey = "XXX";
//您的appSecret
String secretKey = "XXX";
//1.原客户端
ApiClient apiClient = new DefaultApiClient(url, appkey, secretKey);
//2.调用出错,自动重试客户端
//AutoRetryApiClient apiClient = new AutoRetryApiClient(url, appkey, secretKey);
LivenessSdkGetTokenRequest req = new LivenessSdkGetTokenRequest();
//SDK版本
req.setSdkVersion(10000);
//SDK类型 ios | android
req.setSdkType("ios");
//应用标识符,android 为包名 IOS 为 bundleId
req.setAppIdentifier("cn.unitid.spark.demo.detection");
//平台方服务器主动通知客户服务器指定页面(选填)
//req.setNotifyUrl("xxx.xxx.xxx");
//签名证书MD5,sdkType为android 必填 sdkType为ios 不填
//req.setCertMd5("XXX");
try {
LivenessSdkGetTokenResponse response = apiClient.execute(req);
//后续业务处理
} catch (ApiException e) {
e.printStackTrace();
}
}
# 获取认证状态
//提供的url
String url = "http://api.spiderid.cn/api/router/rest";
//您的appKey
String appkey = "XXX";
//您的appSecret
String secretKey = "XXX";
//1.原客户端
ApiClient apiClient = new DefaultApiClient(url, appkey, secretKey);
//2.调用出错,自动重试客户端
//AutoRetryApiClient apiClient = new AutoRetryApiClient(url, appkey, secretKey);
LivenessSdkGetStatusRequest req = new LivenessSdkGetStatusRequest();
//认证token
req.setToken("XXX");
try {
LivenessSdkGetStatusResponse response = apiClient.execute(req);
//后续业务处理
} catch (ApiException e) {
e.printStackTrace();
}
}
# 获取认证结果
//提供的url
String url = "http://api.spiderid.cn/api/router/rest";
//您的appKey
String appkey = "XXX";
//您的appSecret
String secretKey = "XXX";
//1.原客户端
ApiClient apiClient = new DefaultApiClient(url, appkey, secretKey);
//2.调用出错,自动重试客户端
//AutoRetryApiClient apiClient = new AutoRetryApiClient(url, appkey, secretKey);
LivenessSdkGetResultRequest req = new LivenessSdkGetResultRequest();
req.setToken("xxx");
try {
LivenessSdkGetResultResponse response = apiClient.execute(req);
//后续业务处理
} catch (ApiException e) {
e.printStackTrace();
}