尊敬的用户您好!即日起本官网将启用新域名"shanyan.253.com",原域名(flash.253.com)将自动跳转至新域名,原域名后期将停用。请您及时更新浏览器收藏夹或直接使用新域名访问本官网。万分感谢您的配合!

闪验、创蓝闪验

一、准备工作


概述


本文档是人像比对SDK_iOS v1.0.0 版本的接入文档用于指导SDK的使用方法,默认读者熟悉Xcode编译器的使用以及iOS编程语言。


前置条件

  • SDK版本:V 1.0 
  • Xcode版本 : V9.4.1及以上版本,iOS9.0 及以上版本。



创建应用


  • 提示:一个应用对应一个appid,多个应用(不同bundleID)需在闪验平台创建多个应用以对应多个appid

应用的创建流程及APPID/APPKEY的获取,请查看「账号创建」文档

  • 通过审核后 联系客服获取 SDK 使用的授权文件 xxxx.lic (需要将文件名称改为 LinkfaceID.lic) 以及授权文件的更新地址 :jsonURL;


快速体验Demo


  1. demo bundle Identifer 换成自己的项目的Bundle Identifier(与平台创建项目时提交的Bundle Identifier 对应


  1.  demo Appdelegate.m中初始化SDK appkey  appid 以及jsonURL 替换为自己的  appKey appid 以及jsonURL


  1.  demo CLLiveCheckBundle.bundle LinkfaceID.lic资源替换为自己的 LinkfaceID.lic 授权文件。


  1.  编译运行。


开发环境搭建


  1. 导入FrameWork :将实人认证SDK压缩包中framework中的所有资源添加到工程中,并选择  Copy Items if need  选项


20191015140620.jpg



2.  CLLiveCheckBundle.bundle 中的LinkfaceID.lic 资源替换为自己的LinkfaceID.lic的授权文件(该授权文件与项目的Bundle Identifier绑定)


  • 找到CLLiveCheckBundle.bundle 中的LinkfaceID.lic  Show In Finder


20191015142036.jpg


  • 将从客服获取SDK获取授权文件xxxxxx.lic(名称更改为LinkfaceID.lic)直接进行替换


20191015142833.jpg


  1. 配置Xcode 


  •  关闭Bitcode 。设置Xcode->TARGETS->Build Setitngs->EnableBitcode  NO


bitcode.png


  • Xcode->TARGETS->Build Settings->Linking->Other Linker Flags 添加–ObjC -lstdc++


lsd.png



  •  添加系统依赖库  Xcode->TARGETS->General->Linked Framworks and Libraries 添加一下了依赖库


libz.tbd

libbz2.tbd

libiconv.tbd

libz.1.2.5.tbd

VideoToolbox.framework


framework.png

  • Xcode->TARGETS->Info添加相机权限访问描述


20191015153647.jpg



二、SDK使用说明


1.初始化


请确保在调用人像比对服务前,调用此接口。所以我们建议在应用启动时初始化SDK.


/**
 初始化SDK
 
 @param appkey 创蓝平台APPkey
 @param appid 创蓝平台APPid
 @param jsonPathURL 授权文件更新地址
 */
+(void)initSDKWithAPPkey:(NSString * _Nonnull)appkey appid:(NSString * _Nonnull)appid jsonPath:(NSString *)jsonPathURL;


参数描述


参数

是否必填

类型

说明

appkey

NSString

人像比对 对应的appkey

appid

NSString

人像比对 对应的appkey

jsonPathURL

NSString

授权文件更新地址


调用示例:


#import <CLLiveCheck/CLLiveCheck.h>

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.
    ...
    //初始化SDK
    [CheckSDK initSDKWithAPPkey:@"appkey" appid:@"appid" jsonPath:@"jsonURL"];
    ...
    return YES;
}



2.检测参数配置及调用SDK



#import "CheckLiveViewController.h"

//初始化SDK UI
    CheckLiveViewController *checkLiveViewController = [[CheckLiveViewController alloc] initUserName:@"张三" idCarNumber:@"张三的身份证号" checkLiveDuration:10];
    
    //设置活体检测 动作 传入nil 为 4个动作的随机序列
    [checkLiveViewController setDetectionSequence:@[@(BLINK),@(MOUTH),@(NOD),@(YAW)]];
    
    //设置 图片输出方式 以及 活体检测复杂度
    [checkLiveViewController setOutputType:OUTPUT_MULTI_IMAGE complexity:COMPLEXITY_NORMAL];
    
    //设置人像核验结果回调
    [checkLiveViewController setResultBlock:^(ResultType type, NSDictionary * _Nullable result, NSError * _Nullable error) {
        
    }];

  
    UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:checkLiveViewController];
    nav.navigationBar.translucent = NO;
    [self presentViewController:nav animated:YES completion:^{
        //启动检测流程
        [checkLiveViewController startLiveCheck];
    }];


参数及其含义:请参考CheckLiveViewController  类注释以及CLEnumTypy.h的定义



人证校验结果 result  示例:


{       

 "tradeNo":"633756435473235968",   

 "chargeStatus":1,

 "code":"200000",

 "message":"成功",

 "data":{

      "status":"OK",
            
"identity":{
                
"reason":"Gongan status OK",
                
"validity":true     

      },
            
"confidence":0.9357142857142857,
            
"request_id":"TID3a82aa92639d4eea9f7f44c1b84872b9",

       "selfie":{
                
"image_id":"09ee2fbceb8f44ad80493f2ad1955ff4"       

      }

 }

}



result字段含义:


字段类型

说明

tradeNo

String

交易流水号

chargeStatus

Bool

是否收费

code

int

业务码 200000 为成功,其余为失败

message

String

业务码含义

data

Object

人证比对结果



data字段及其含义:


字段

类型

说明

status

String

状态,正常为OK,其他为失败。(具体见status一览表)

identity

Object

身份证号码 与 姓名校验结果

confidence

Float

置信度(0~1)。值越大,代表是相同人的可能性越大(见confidece 表)

request_id

String

本次请求id

selfie/image_id

String 

本次用来与身份证图像对比  的图片的id


identity 字段及其含义



字段

类型

说明

validity

Bool

身份证号与姓名校验结果

reason

String

身份证号与姓名校验错误原因




confdence 置信度阀值 及 错误率表



阈值0.40.50.60.70.80.9
错误率十分之一百分之一千分之一万分之一十万分之一百万分之一




status 一览表


1

PHOTO_SERVICE_ERROR

数据源服务服务出错,详情见字段reason

2

ENCODING_ERROR

参数非UTF-8编码

3

IMAGE_ID_NOT_EXIST

图片不存在

4

IMAGE_FILE_SIZE_TOO_BIG图片体积过大

5

NO_FACE_DETECTED上传的图片未检测出人脸

6

CORRUPT_IMAGE文件不是图片文件或已经损坏

7

INVALID_IMAGE_FORMAT_OR_SIZE

图片大小或格式不符合要求

8

INVALID_ARGUMENT

请求参数错误,具体原因见 reason 字段内容

9

UNAUTHORIZED账号或密钥错误

10

KEY_EXPIRED

账号过期,具体情况见 reason 字段内容

11

RATE_LIMIT_EXCEEDED

调用频率超出限额

12

NO_PERMISSION

无调用权限

13

OUT_OF_QUOTA

调用次数超出限额

14

NOT_FOUND

请求路径错误

15

INTERNAL_ERROR

服务器内部错误