说明
调用实人认证客户端前,您必须先通过服务端调用
DescribeVerifyToken
获取
verifyToken
。
方式一:start
默认推荐使用此方式调用实人认证,支持
RPBasic
、
RPBioOnly
、
RPBioID
、
RPManual
、
FDBioOnly
、
FVBioOnly
认证方案。该接口会以加载
H5
的方式显示页面,包含身份证件拍摄等其他步骤。
Objective-C
// 由于安全原因,实人认证不支持模拟器调试。
#import <RPSDK/RPSDK.h>
[RPSDK startWithVerifyToken:verifyToken
viewController:self
completion:^(RPResult * _Nonnull result) {
// 建议接入方调用实人认证服务端接口DescribeVerifyResult,来获取最终的认证状态,并以此为准进行业务上的判断和处理。
NSLog(@"实人认证结果:%@", result);
switch (result.state) {
case RPStatePass:
// 认证通过。
break;
case RPStateFail:
// 认证不通过。
break;
case RPStateNotVerify:
// 未认证。
// 通常是用户主动退出或者姓名身份证号实名校验不匹配等原因导致。
// 具体原因可通过result.errorCode来区分(详见文末错误码说明表格)。
break;
说明 errorCode
说明请参见错误码说明。
Swift// 由于安全原因,实人认证不支持模拟器调试。
import RPSDK
RPSDK.start(withVerifyToken: verifyToken, viewController: self) { result in
// 建议接入方调用实人认证服务端接口DescribeVerifyResult,
// 来获取最终的认证状态,并以此为准进行业务上的判断和处理。
print("实人认证结果:", result);
switch result.state {
case .pass:
// 认证通过。
break
case .fail:
// 认证不通过。
break
case .notVerify:
// 未认证。
// 通常是用户主动退出或者姓名身份证号实名校验不匹配等原因导致。
// 具体原因可通过result.errorCode来区分(详见文末错误码说明表格)。
break
default:
break
说明 errorCode
说明请参见错误码说明。
方式二:startByNative如果您选择的认证方案只包含活体检测步骤,例如RPBioOnly、FDBioOnly、FVBioOnly,则可以考虑使用此方式接入。
Objective-C// 由于安全原因,实人认证不支持模拟器调试。
#import <RPSDK/RPSDK.h>
[RPSDK startByNativeWithVerifyToken:verifyToken
viewController:self
completion:^(RPResult * _Nonnull result) {
// 建议接入方调用实人认证服务端接口DescribeVerifyResult,来获取最终的认证状态,并以此为准进行业务上的判断和处理。
NSLog(@"实人认证结果:%@", result);
switch (result.state) {
case RPStatePass:
// 认证通过。
break;
case RPStateFail:
// 认证不通过。
break;
case RPStateNotVerify:
// 未认证。
// 通常是用户主动退出或者姓名身份证号实名校验不匹配等原因导致。
// 具体原因可通过result.errorCode来区分(详见文末错误码说明表格)。
break;
说明 errorCode
说明请参见错误码说明。
Swift// 由于安全原因,实人认证不支持模拟器调试。
import RPSDK
RPSDK.startByNative(withVerifyToken: verifyToken, viewController: self) { result in
// 建议接入方调用实人认证服务端接口DescribeVerifyResult,来获取最终的认证状态,并以此为准进行业务上的判断和处理。
print("实人认证结果:", result);
switch result.state {
case .pass:
// 认证通过。
break
case .fail:
// 认证不通过。
break
case .notVerify:
// 未认证。
// 通常是用户主动退出或者姓名身份证号实名校验不匹配等原因导致。
// 具体原因可通过result.errorCode来区分(详见文末错误码说明表格)。
break
default:
break
说明 errorCode
说明请参见错误码说明。
实人认证提供了一系列可选的配置,您可以通过以下方式来改变SDK的界面和行为。如果您使用默认配置,则无需关注以下内容。
配置选项接口在
RPConfiguration.h文件中。在调用实人认证之前,您必须先创建实人认证配置实例,示例代码如下:
RPConfiguration *configuration = [RPConfiguration configuration];
UI定制
实人认证服务为您提供UI定制功能,您可以根据实际需要自定义实人认证页面的按钮颜色、文案颜色、文案字体大小和图片资源等信息。UI定制功能仅适用于实人认证iOS SDK版本在4.6.2版本及以上。更多内容,请参见UI定制。
旧版UI设置方式已经废弃,请您及时更换设置方式,具体方法如下:
// 设置皮肤路径即可(沙盒、bundle等都可以),不设置则使用默认皮肤。
configuration.customUIPath = @"xxx/xxx/xxx";
提示声音默认开关
在活体检测过程中,默认开启提示声音,例如“眨下眼”、“左右摇头”等。如果您需要默认关闭提示音,可以在调用实人认证接口之前,使用以下方法进行定制。
RPSDK.configuration.isMutedByDefault = YES;
// YES表示默认关闭提示声音,NO表示默认开启提示声音。
自定义扫脸页面弹出和关闭方式
如果您需要自定义扫脸页面的弹出和关闭方式,可以在调用实人认证接口之前,使用以下方法进行定制。
configuration.presentHandler = ^(UIViewController * _Nonnull viewController) {
// 弹出扫脸页面。
configuration.dismissHandler = ^(UIViewController * _Nonnull viewController) {
// 关闭扫脸页面。
活体检测结果页
当用户完成活体检测时,默认会直接关闭活体检测页面。如果您需要用户在活体检测页面等待服务端返回认证结果,并显示加载中页面和结果页(结果页会在展示一秒后自动消失),可以在调用实人认证接口之前,使用以下方法进行定制。
configuration.shouldWaitResult = YES;
注意 上述配置只适用于
startByNative接口。如果需要配置start接口,请在实人认证控制台进行操作。
退出时弹窗确认
如果您需要在用户操作关闭按钮时显示确认弹窗,以防止用户误触,可以在调用实人认证接口之前,使用以下方法进行定制。
RPSDK.configuration.shouldAlertOnExit = YES;
说明 使用push方式弹出时,请确认当前viewController的navigationController属性不为空。
活体检测幅度提示颜色
活体检测默认的幅度提示颜色为蓝色(过程中)和绿色(成功)。如果您需要定制活体检测幅度提示颜色,可以在调用实人认证接口之前,使用以下方法进行定制。
RPSDK.configuration.intermediateProgressColor = UIColor.orangeColor; //活体检测幅度提示颜色(过程中)设置为橙色。
RPSDK.configuration.successfulProgressColor = UIColor.redColor; //活体检测幅度提示颜色(成功)设置为红色。
实人认证可以定制的图标包括:关闭按钮、声音开启和关闭按钮、确认按钮。如果您需要定制以上按钮的图标,可以在调用实人认证接口之前,使用以下方法进行定制。
//关闭按钮图标设置,像素设置为40*40。
RPSDK.configuration.exitIcon = [UIImage imageNamed:@"custom_icon"];
//声音开启图标设置,像素设置为40*40。
RPSDK.configuration.soundOnIcon = [UIImage imageNamed:@"custom_icon"];
//声音关闭图标设置,像素设置为40*40。
RPSDK.configuration.soundOffIcon = [UIImage imageNamed:@"custom_icon"];
//确认按钮图标设置,像素设置为761*114。
RPSDK.configuration.confirmButtonIcon = [UIImage imageNamed:@"custom_icon"];
实人认证过程回调
实人认证提供了不同阶段的回调方法,方便您在不同阶段进行定制。
/**
NS_ENUM(NSInteger, RPPhase)
实人认证阶段
typedef NS_ENUM(NSInteger, RPPhase) {
活体检测即将开始
RPPhaseBiometricsWillStart,
活体检测已经开始
RPPhaseBiometricsDidStart,
活体检测成功
RPPhaseBiometricsDidSucceed,
活体检测失败
RPPhaseBiometricsDidFail,
提交服务端认证开始
RPPhaseVerificationDidStart,
提交服务端认证结束
RPPhaseVerificationDidFinish,
如果您需要定制上述功能,可以调用以下接口。
/**
开始实人认证,适用于纯Native的认证方案。
只支持纯人脸的登录、解锁、认证功能,纯H5方案不支持此方法。
@param verifyToken 实人认证流程的唯一标识,一般从接入方自己的服务端获取,有效时间30分钟。
@param viewController 调用实人认证的视图控制器。
@param transitionStyle 页面跳转方式。
@param progress 实人认证过程回调。
@param completion 实人认证结果回调。
+ (void)startByNativeWithVerifyToken:(NSString *)verifyToken
viewController:(UIViewController *)viewController
transitionStyle:(RPTransitionStyle)transitionStyle
progress:(RPProgress _Nullable)progress
completion:(RPCompletion _Nullable)completion;