作者:xuxl 时间:2021.10.12
说明:auth_token有效期为30分钟,每个用户需单独获取,不能共用
https://apisdk.253.com/plat_app/platform/app/token/get
参数 | 值 |
---|---|
Content-Type | application/json |
参数 | 是否必须 | 类型 | 说明 |
---|---|---|---|
appKey | 是 | String | 上海璟梦信息科技有限公司appKey |
appSecret | 是 | String | 上海璟梦信息科技有限公司appSecret |
did | 是 | String | 客户自己生成随机码 长度【0~32】 |
{
"appKey": "X6IfC4BO",
"appSecret": "397T7Nn9",
"did": "1375369787324108800"
}
参数 | 是否必须 | 类型 | 说明 |
---|---|---|---|
authToken | 是 | String | 认证令牌 温馨提示:每个用户需单独获取,不能共用 |
{
"code": "000000",
"message": "成功",
"data": {
"authToken": "1CFD08D67E724845A54F5AE2C83D0A6A"
}
}
https://sdk.253.com/identity_auth/faceAlive/v3/match
参数 | 值 |
---|---|
Content-Type | application/json |
参数 | 是否必须 | 类型 | 说明 |
---|---|---|---|
app_key | 是 | String | 上海璟梦信息科技有限公司appKey |
auth_token | 是 | String | 认证令牌 auth_token获取接口 |
id_card_no | 是 | String | 身份证号 需经过RSA加密,请用公钥加密,公钥请向上海璟梦信息科技有限公司运营人员申请 加密代码示例 |
id_card_name | 是 | String | 身份证姓名 需经过RSA加密,请用公钥加密,公钥请向上海璟梦信息科技有限公司运营人员申请 加密代码示例 |
{
"app_key": "wyeTncRs38GMDm5b",
"auth_token": "lxllksdfikjkjsf3fdsflxldnm",
"id_card_no": "420528199206241438",
"id_card_name": "张三丰"
}
参数 | 是否必须 | 类型 | 说明 |
---|---|---|---|
match | 是 | String | 比对结果 pass:通过 fail:不通过 |
score | 是 | String | 人像分值 范围[0,100] |
desc | 否 | String | 比对结果描述 |
image | 否 | String | base64编码后的人像图片信息。需要注意的是,该值仅在人像对比成功后返回。 |
{
"code": "000000",
"message": "成功",
"data": {
"match": "pass",
"score": "98",
"desc": "比对成功",
"image": "/9j/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAPABDgDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQ"
}
}
https://sdk.253.com/identity_auth/faceAlive/v1/global/videoVerify/image
参数 | 值 |
---|---|
Content-Type | application/json |
参数 | 是否必须 | 类型 | 说明 |
---|---|---|---|
app_key | 是 | String | 上海璟梦信息科技有限公司appKey |
auth_token | 是 | String | 认证令牌 auth_token获取接口 |
{
"app_key": "wyeTncRs38GMDm5b",
"auth_token": "1C790DB5EEBB4BFBA98099054B19D420"
}
参数 | 是否必须 | 类型 | 说明 |
---|---|---|---|
image | 是 | String | 返回的是活体检测成功后图片的地址路径。需要注意的是,该值仅在活体检测成功后返回,图片地址有效期为30分钟。 |
{
"code": "000000",
"message": "成功",
"data": {
"image": "https://chuanglan-test.oss-cn-shanghai.aliyuncs.com/sdk/platform/personal_card/4d86c390b64c11ec94f1fa163ec1e88c.jpeg"
}
}
参数 | 值 |
---|---|
Content-Type | application/json |
参数 | 是否必须 | 类型 | 说明 |
---|---|---|---|
app_key | 是 | String | 上海璟梦信息科技有限公司appKey |
auth_token | 是 | String | 认证令牌 auth_token获取接口 |
image_type | 是 | String | 图片类型 BASE64:图片的base64值,base64编码后的图片数据,需urlencode,编码后的图片大小不超过2M; |
front_image | 是 | String | 证件照,正面照片 |
back_image | 是 | String | 证件照,反面照片 |
platform_type | 是 | int | 平台类型 5:服务端 |
{
"app_key": "X6IfC4BO",
"auth_token":"45B6C2EDE1894F2B902E259C87AE2763",
"image_type":"BASE64",
"front_image":"iVBORw0KGgoAAAANSUhEUgAAASwAAAHLCAYAAAByPKVPAAAAAXNSR0IArs...",
"back_image":"DDOBORw0KGgoAAAANSUhEUgAAASwAAAHLCAYAAAByPKVPAAAAAXNSR0IArs...",
"platform_type": 5
}
参数 | 是否必须 | 类型 | 说明 |
---|---|---|---|
front | 是 | object | 正面信息 |
+id_card_no | 是 | String | 证件号密文(解密工具参考文档末尾) |
+name | 是 | String | 姓名密文(解密工具参考文档末尾) |
+sex | 是 | String | 性别 |
+brith_day | 是 | String | 出生年月 |
+address | 是 | String | 身份证地址 |
+nation | 是 | String | 民族 |
back | 是 | object | 反面信息 |
+issuing_authority | 是 | String | 签发机关 |
+issuing_date | 是 | String | 签发日期 |
+expire_date | 是 | String | 有效日期 |
{
"code": "000000",
"message": "成功",
"data": {
"front": {
"address": "XXX",
"id_card_no": "XXX",
"brith_day": "XXX",
"name": "XXX",
"sex": "男",
"nation": "汉",
"msg": null
},
"back": {
"issuing_authority": "XXX",
"issuing_date": "XXXXX",
"expire_date": "XXXXX",
"msg": null
}
}
}
/**
* RSA解密
*
* @param data 待解密数据
* @param publicKey 公钥
* @return
*/
public static String decrypt(String data, PublicKey publicKey) throws Exception {
Cipher cipher = Cipher.getInstance("RSA");
cipher.init(Cipher.DECRYPT_MODE, publicKey);
byte[] dataBytes = Base64.getDecoder().decode(data);
int inputLen = dataBytes.length;
ByteArrayOutputStream out = new ByteArrayOutputStream();
int offset = 0;
byte[] cache;
int i = 0;
// 对数据分段解密
while (inputLen - offset > 0) {
if (inputLen - offset > MAX_DECRYPT_BLOCK) {
cache = cipher.doFinal(dataBytes, offset, MAX_DECRYPT_BLOCK);
} else {
cache = cipher.doFinal(dataBytes, offset, inputLen - offset);
}
out.write(cache, 0, cache.length);
i++;
offset = i * MAX_DECRYPT_BLOCK;
}
byte[] decryptedData = out.toByteArray();
out.close();
// 解密后的内容
return new String(decryptedData, "UTF-8");
}
/**
* 获取公钥
*
* @param publicKey 公钥字符串
* @return
*/
public static PublicKey getPublicKey(String publicKey) throws Exception {
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
byte[] decodedKey = Base64.getDecoder().decode(publicKey.getBytes());
X509EncodedKeySpec keySpec = new X509EncodedKeySpec(decodedKey);
return keyFactory.generatePublic(keySpec);
}