接入文档
SDK方案(海外版)
FinAuth海外轻量版(中文)
API接口
API接口

# 版本

5.0.0

# 描述

此接口用于将客户图像数据进行上传,并获取1:1人脸比对结果。

# 调用URL

新加坡:https://api-sgp.yljz.com/finauth/v5/compare
印尼:https://api-idn.yljz.com/finauth/v5/compare

注意:在生产环境中,请使用HTTPS的通信方式。HTTP方式的通信属于不安全链路,存在安全风险,请勿在生产环境中使用。在生产环境中使用HTTP方式的,将无法得到服务可靠性保障。

# 调用方法

POST  注意:用 form-data 格式请求

# 权限

仅当用户接入FinAuth产品后,才能调用FinAuth各Web API。接入FinAuth的流程请咨询FinAuth商务人员。

# 参数

必选/可选 参数 类型 参数说明
必选 sign String 调用此API客户的签名,具体的签名产生方式请查阅鉴权说明
必选 sign_version String 签名算法版本号,请传递:hmac_sha1
可选 biz_no String “默认为空”。客户业务流水号,建议设置为您的业务相关的流水串号并且唯一,会在return时原封不动的返回给您的服务器,以帮助您确认对应业务的归属。此字段不超过128字节
必选 compare_id String compare场景id:本次验证请求相关配置在“控制台compare场景”可设置,并将生成的id号在接口中使用
必选 encryption_type String 是否开启传输数据加密,详细说明见:加密说明
  • 0: 不开启
  • 2: RSA
  • 必选 image File 通过传入自有照片进行验证
    必选 image_ref1 File 由应用方提供的参照人脸照片。 如果在image_ref1中没有找到人脸,将返回错误码400(NO_FACE_FOUND); 如果图片中有多张脸,将选择最大人脸进行比对
    可选 uuid String 用于标志本次识别对应的用户的唯一ID,长度不长于128字节,对同一用户持续使用相同ID,便于结果追溯与数据报表优化。

    # 返回值说明

    参数类别 参数 类型 参数说明
    #基础返回信息 request_id String API 调用的流水号
    biz_no String 传入的业务流水号,原封不动地返回
    time_used Int 整个请求所花费的时间,单位为毫秒。此字段必定返回
    error String 当请求失败时才会返回此字符串,具体返回内容见后续错误信息章节,否则此字段不存在
    #状态码 result_code Int 表示本次验证的结果状态码。可结合result_code和result_message字段知晓具体的结果及原因:
    • 1000系列状态码表示比对完成,活体验证通过,比对通过
    • 2000系列状态码表示比对完成,活体验证通过,比对失败
    • 其他结果,请预留处理方案,对于未来可能的错误,我们可能持续增加错误码
    #状态码描述 result_message String 可通过此字段信息知晓具体的原因。具体见:result_code & result_message 对照表
    #比对结果 verification Json
  • "ref1":传入的image人像与上传的image_ref1的比对结果
    • "confidence":Float类型,取值[0,100],数字越大表示风险越小
    • “thresholds”:一组用于参考的置信度阈值,Object类型,包含以下字段,均为Float类型、取值[0,100]:
      • “1e-3”:风险为千分之一的置信度阈值(对应控制台compare场景配置中,比对严格程度=宽松)
      • “1e-4”:风险为万分之一的置信度阈值(对应控制台compare场景配置中,比对严格程度=常规(默认值))
      • “1e-5”:风险为十万分之一的置信度阈值(对应控制台compare场景配置中,比对严格程度=严格)
      • “1e-6”:风险为百万分之一的置信度阈值(对应控制台compare场景配置中,比对严格程度=非常严格)
  • 注:比对参考阈值在控制台compare场景的“比对严格程度”配置,会直接影响比对状态码result_code;比对结果分confidence大于设定的比对阈值则比对通过(result_code=1000),小于设定的比对阈值则比对失败(result_code=2000)。
  • #附加返回信息
    visual_attributes Json 附加属性:
    • “age”:预估核验人年龄
    • “gender”:预估核验人性别;0:代表男;1:代表女
    • “age_image_ref1”:预估参照人脸图ref1年龄
    • “gender_image_ref1”:预估参照人脸图ref1性别。0:代表男;1:代表女
    verify_risk_info Json 比对风险提示结果:
    • "verify_info_tags":Json类型;表示活体图比对风险类型
    注: 仅当在控制台compare场景中开启“比对风险检测”时,返回该参数
    比对风险Tag 说明
    is_gender_risk string类型,0:表示传入的image与上传的image_ref1性别预测一致;1:表示传入的image与上传的image_ref1性别预测不一致;
    is_age_risk string类型,0:表示传入的image与上传的image_ref1年龄预测差异不大;1:表示传入的image与上传的image_ref1年龄预测差异较大;(一般指的是年龄差距在10岁及以上,具体根据阈值设定)
    face Json 当选用image方式时返回待验证图片image的属性:
    • "quality":人脸质量
    • "quality_threshold":人脸质量阈值
    • "rect":人脸坐标点,json类型
    • "orientation":人脸方向

    # 返回值示例

    正确请求返回示例

    {
       "request_id":"1531397565,39b19451-393c-4fc4-8fae-6dc74b2b00d7",
       "biz_no":"",
       "time_used":1448,
       "result_code":1000,
       "result_message":"SUCCESS",
       "verification":{
          "ref1":{
             "confidence":86.63057,
             "thresholds":{
                "1e-3":62.168713,
                "1e-4":69.31534
                "1e-5":74.39926,
                "1e-6":78.038055
             }
          }
       },
       "face":{
          "quality":38.221,
          "quality_threshold":30.1,
          "rect":{
             "left":0.18,
             "top":0.18,
             "width":0.596,
             "height":0.596
           },
          "orientation":90
       },
      "visual_attributes":{
          "age":20,
          "gender":0,
          "age_image_ref1":38,
          "gender_image_ref":0,
       },
      "verify_risk_info":{
          "verify_info_tags":{
             "is_gender_risk":0,
             "is_age_risk":1,
           }
       } 
    }
    

    失败请求返回示例

    {
        "error": "AUTHORIZATION_ERROR: INVALID_SIGN"
    }
    

    # result_code & result_message 对照表

    result_code result_message 含义解释 是否计费
    1000 SUCCESS 比对验证成功 是,详细计费请咨询商务
    2000 PASS_LIVING_NOT_THE_SAME 经过验证,待比对照片与其他照片中的至少一张,不是同一个人

    # 错误码列表

    HTTP状态代码 错误信息 说明
    400 MISSING_ARGUMENTS:<key> 缺少某个必选参数
    400 IMAGE_ERROR_UNSUPPORTED_FORMAT:<param> 参数<param>对应的图像无法解析,有可能不是图像文件、或有数据破损。<param>为 image_ref1、 image_ref2中的一个。请注意:<param>只会有一项,即第一个满足条件的名称
    400 NO_FACE_FOUND:<param> 表示上传的 image_ref 的图像中,没有检测到人脸。<param>为 image_ref1、 image中的一个。请注意:<param>只会有一项,即第一个满足条件的名称
    400 INVALID_IMAGE_SIZE:<param> 上传的图像太大,具体是指像素尺寸的长或宽超过4096像素。<param>为 image_ref1、image中的一个。请注意:<param>只会有一项,即第一个满足条件的名称
    400 LOW_QUALITY image图片质量太差
    400 MULTIPLE_FACES image图片中有多张人脸
    400 KEY_NOT_FOUND encryption_type开启加密,但未配置加密公钥和解密私钥
    403 AUTHENTICATION_ERROR 无效签名
    403 AUTHORIZATION_ERROR:<reason> api_key被停用、调用次数超限、没有调用此API的权限,或者没有以当前方式调用此API的权限
    <reason>取值:
    • API_KEY_BE_DISCONTINUED:api_key被停用
    • IP_NOT_ALLOWED:不允许访问的IP(预留设计)
    • LIMIT_REACHED:这个api_key对当前API的调用量达到上限。仅当api_key为测试key
    • MORE_RETRY_TIMES:比对重试次数达到上限
    • DENIED:无权限调用当前API
    • EXPIRED_SIGN:签名已过期
    • INVALID_SIGN:无效签名
    • 其他可能的错误码,请预留处理方案
    403 CONCURRENCY_LIMIT_EXCEEDED 并发数超过限制
    404 API_NOT_FOUND 所调用的API不存在
    413 Request Entity Too Large 客户发送的请求大小超过了10MB限制,该错误的返回格式为纯文本,不是json格式
    500 INTERNAL_ERROR 服务器内部错误,当此类错误发生时请再次请求,如果持续出现此类错误,请及时联系FinAuth客服或商务