开发者中心

作者:xuxl 时间:2021.10.12

通用响应

code为000000即代表成功, 其他情况则为失败。

接口列表


获取授权Token(Auth Token)

说明:auth_token有效期为30分钟,每个用户需单独获取,不能共用

请求URL:

https://apisdk.253.com/plat_app/platform/app/token/get

请求方式:POST

请求Header:

参数
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"
    }
}

活体检测

人像比对(核身)

请求URL:

https://sdk.253.com/identity_auth/faceAlive/v3/match

请求方式:POST

请求Header:

参数
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"
	}
}

人像图片提取(提取视频中一张正面照)

请求URL:

https://sdk.253.com/identity_auth/faceAlive/v1/global/videoVerify/image

请求方式:POST

请求Header:

参数
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"
	}
}

OCR身份证识别(双面)

请求URL:https://sdk.253.com/identity_auth/ocr/new/idCard/doubleSide/v3

请求方式:POST

请求Header:

参数
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
		}
	}
}

【Java版】RSA解密工具

/**
* 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);
}