/v2/identity/selfie_idnumber_verification

优质
小牛编辑
144浏览
2023-12-01

1.接口描述

(v2版本带签名认证)该接口在身份核验的基础上,结合用户的活体检测动作,基于模型算法的能力,优先进行图片质量检测,判断用户图片是否清晰,是否过度曝光等;再对照片进行人像定位,特征提取;并最终判断是否为用户本人。
(注:此接口只提供比对相似度分数,不提供比对照片)

  • 普通人脸图片要求
    1. 格式为 JPG(JPEG),BMP,PNG,GIF,TIFF
    2. 宽和高大于 8px,小于等于4000px
    3. 小于等于 2 MB,建议100KB以内
    4. 人脸双眼间距不小于30像素,建议90像素以上
    5. 图像中人脸图像较清晰,不因镜头散焦或运动而模糊
    6. 眼睛的瞳孔清晰可见,镜面无反光,禁止戴墨镜,且眼镜框不得遮挡眼睛,不要带宽框眼镜
    7. 人脸光线均匀且无阴影,亮度在200-800Lux,面部无明显反光、逆光、侧光
    8. 要求头发及饰物不能遮挡人脸,禁止戴口罩,帽子
    9. 表情自然、放松、无夸张动作,脸部区域完整、轮廓清晰、人脸比例不失真
    10. 照片中只允许有1张人脸,且背景简单,无复杂场景
    11. 人脸姿态要求,平面旋转(roll)±15°,俯仰变化(pitch)±10°,姿态偏转(yaw)±15°
  • 支持自动识别人脸方向
    1. 上传的图片中包含有 exif 方向信息,先按此信息旋转、翻转后再做识别人脸方向并调整。
    2. 如果照片方向混乱且 exif 方向信息不存在或不正确,自动识别人脸方向并调整

请求方式:

POST

请求URL:

https://cloudapi.linkface.cn/v2/identity/selfie_idnumber_verification

2.请求参数

字段类型必需描述
api_idstringAPI 账户。
sequence_idstring客户请求流水号,建议唯一性
id_numberstring身份证号。用以查询近照
namestring与身份证号相对应的姓名。身份证号及姓名相匹配才能查询近照
selfie_filefile见下方注释需上传的图片文件。上传本地图片可选取此参数
selfie_urlstring见下方注释图片网络地址。采用抓取网络图片方式可选取此参数
selfie_image_idstring见下方注释图片的id。在云端上传过的图片可选取此参数
selfie_auto_rotateboolean开启图片自动旋转功能。开通:true,不开通:false。默认不开通
timestampstring时间戳
signstring签名(api_id+api_secret+timestamp使用SHA256算法获取)

参数 selfie_file,selfie_url,selfie_image_id必三选一,如同时传入多个参数,本API使用顺序为selfie_image_id优先,其次selfie_fileselfie_url

若将 URL 放入 Query String 中则需要对特殊字符进行转义,所有中文和特殊字符必需以UTF-8编码转义。 目前支持 http/https 等协议的网络地址。下载限时 5s,超时后仍未下载完成则属于失败。 参数 selfie_file 需把图片文件的内容以 multipart/form-data 的形式放到 POST 消息体中。 打开自动旋转功能会增加运算时间,请酌情考虑是否开通此功能

所有中文和特殊字符必需以UTF-8编码转义。

签名sign说明:

我们会为每位公有云用户分配一个账户API ID和对应秘钥API SECRET。为了保证安全性,用户的每次接口调用都需要上传一个签名(基于API ID和API SECRET获取)。

Java示例代码:

SHA256Util.getSHA256Str(LF_APP_ID + LF_APP_SECRET + timeStamp)
/**
     * 利用java原生的摘要实现SHA256加密
     *
     * @param str 加密后的报文
     */
    public static String getSHA256Str(String str) {
        MessageDigest messageDigest;
        String encodeStr = "";
        try {
            messageDigest = MessageDigest.getInstance("SHA-256");
            messageDigest.update(str.getBytes("UTF-8"));
            encodeStr = byte2Hex(messageDigest.digest());
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        return encodeStr;
    }
    /**
     * 将byte转为16进制
     */
    private static String byte2Hex(byte[] bytes) {
        StringBuffer stringBuffer = new StringBuffer();
        String temp = null;
        for (int i = 0; i < bytes.length; i++) {
            temp = Integer.toHexString(bytes[i] & 0xFF);
            if (temp.length() == 1) {
                //1得到一位的进行补0操作
                stringBuffer.append("0");
            }
            stringBuffer.append(temp);
        }
        return stringBuffer.toString();
    }

3.返回参数

字段类型描述
request_idstring本次请求的 id
codestring业务响应码。正常为 0000 ,其他值表示失败。详见业务响应码
msgstring消息说明
dataobject消息体,详见data数组中字段的结构(只有code: 0000调用成功时返回)
chargeint是否收费,1收费,2不收费

data 的结构如下:

字段类型描述
check_resultint查询结果 1人证比对查得 2图片质量校验不合格
id_name_resultint身份核验结果 1姓名身份证号一致 2姓名身份证号不一致 3库无
photo_resultint图片校验结果 1比对成功 2库中无照片 3特征提取失败
certificate_scoredouble人脸和证件照比对结果系统判断为不同人:[0,40) 不确定是否为同一人:[40,45) 系统判断为同一人:[45,100]
selfie_image_idstring请求参数中使用file、url方式会返回图片的id

收费标准:code为0000,charge为1时收费;其他情况(code非0000),charge为2,不收费;

成功返回示例:

{
    "code": "0000",
    "msg": "调用成功",
    "charge": 1,
    "data": {
        "photo_result": 1,
        "check_result": 1,
        "selfie_image_id": "f950dc6b8116459d99969bcaf9d7a437",
        "certificate_score": 9.000000000000002,
        "id_name_result": 1
    },
    "request_id": "TIDabc8426e508a5ced3a92715779bedabc"
}

失败返回示例:

{
  "request_id": "TID2af751b4bff24be781d60af10bf84101",
  "code": "1000",
  "msg": "验签失败",
  "charge": 2
}

4.业务响应码

codemsg 字段
0000调用成功
1000验签失败
1001参数非UTF-8编码
1002请求参数错误,具体原因见 reason 字段内容
1003liveness_data 出错
1004图片未检测出人脸 。对应图片见字段 image 所反馈的值
1005从网络获取图片超时
1006网络地址图片获取失败
1007账号或密钥错误
1008账号过期,具体情况见 reason 字段内容
1009调用频率超出限额
1010调用次数超出限额
1011无调用权限
1012请求路径错误
1013图片体积过大。对应图片见字段 image 所反馈的值
1014图片不存在。对应图片见字段 image 所反馈的值。
1015文件不是图片文件或已经损坏。对应图片见字段 image 所反馈的值
1016图片大小或格式不符合要求。对应图片见字段 image 所反馈的值
9999服务器内部错误