接入文档
RAW纯接口接入
炫彩活体
开始验证
开始验证

# 引入JS-SDK并开始验证

引入jssdk,并将第一步得到的token以及其他参数,填入sdk 的init方法中

let rtcVideo = RctVideo.init({
	videoWrapper: 'videoWrapper', //页面中镶嵌video元素的位置,需要使用id属性
	width: '320px', //video的宽,默认是320px,需填写单位px, rem, em;此宽高为video宽高,当video宽高与视频宽高不符合时,视频按照video宽高的最长边等比缩放
	height: '320px', //video的高,默认是320px,需填写单位px, rem, em;
	token: 'xxxxxxx', //用户服务器端请求getToken返回的token,  getToken禁止使用前端调用,前端调用存在api_key泄漏风险
	colorListener: (color, status, index, sum)=>{}, //传递color给用户,用户监听color变化,修改页面背景颜色
	tipListener: (tipCode, tipTxt)=>{}, //提示语信息
	statusListener: (statusCode)=>{}, //状态的改变,需要调用方对各个状态做相应处理
	successCallback: (code)=>{}, //验证完毕后,回调
	failCallback: (statusCode)=>{}, //webrtc初始化不支持或中途不支持情况降级回调
	onlyFailCode: true //非必配置项,默认true, failCallback只进行第一次错误广播, 设置为false, 则进行所有错误广播
})
rtcVideo.start()

以上JS方法说明:

1.colorListener(color, status, index, sum)

参数 说明
color 需要打光的16进制颜色,例:”#00FFFF“
status RESET/DONE/COLORING。RESET:照镜子不通过。DONE:打光结束。COLORING:正在打光中
index 当前打光进度,例:1。需配合sum计算进度
sum 总打光数量,依赖于Raw-GetToken接口设置的color_number

2.tipListener(tipCode, tipTxt)

tipCode tipTxt
NoFaceFound 未发现人脸
InvalidFaceYaw 请正对摄像头
InvalidFacePitch 请正对摄像头
InvalidFaceEyeOcclusion 请露出眼睛
InvalidFaceMouth 请露出嘴巴
TooFarAwayFromCamera 请靠近摄像头
TooCloseFromCamera 请远离摄像头
InvalidFaceOutOfImage 请正视摄像头
InvalidFaceBrightness 请调节光线
FaceOK 很好,请保持不动

3.statusListener(statusCode)

statusCode 说明
INIT_LOADING 初始化配置loading
INIT_LOADING_OVER 初始化配置loading状态结束
LOOK_MIRROR 照镜子阶段
SHOW_COLOR 打光阶段
RESULT_LOADING 打光结束等待返回结果loading
RESULT_LOADING_OVER 打光结束等待返回结果loading结束
DISCONNECTED webrtc连接断开,需要用户特殊处理,弹窗提升网络断开,刷新页面

炫彩活体主流程根据 statusListener 进行变更。INIT_LOADING、INIT_LOADING_OVER 为获取配置阶段。之后进入主要需要处理的流程。

  1. 进入LOOK_MIRROR 照镜子阶段。检测人脸角度、光线是否符合检测标准。检测结果会实时触发tipListener,需要提示客户调整人脸。
  2. LOOK_MIRROR 后会进入SHOW_COLOR阶段。此状态会触发colorListener,需要根据返回的颜色设置背景颜色。为了最大化通过率,打光阶段不可在页面设置其它元素,颜色范围设置为整个屏幕。在打光过程中也可能因为人脸质量下降导致打光中断,会触发statusListener,重新进入照镜子阶段(LOOK_MIRROR)。检测结束会进入RESULT_LOADING状态,等待验证结果。
  3. RESULT_LOADING_OVER 结果返回,同时会触发 successCallback 。在 successCallback 内可通知服务端,调用get_result接口获取结果。
  4. DISCONNECTED 为网络问题引起的连接中断,需要提示用户刷新页面,重新开始。

4.successCallback(code)

验证结束,状态变成终止态后,可调用raw_get_result。此回调仅表示验证流程完成,无论验证结果如何都会触发此回调,实际的人脸核验结果需要通过raw_get_result接口获取。

code 描述
SUCCESS 炫彩流程正常结束, 允许用户向我方服务器调用raw_get_result结果

raw_get_result禁止使用前端调用,前端调用存在api_key泄漏风险

5.failCallback(reasonCode)

reasonCode 说明
NOT_SUPPORT_WEBRTC 当前设备不支持炫彩活体:浏览器不支持webrtc,无法初始化
REJECT_MEDIA 当前设备不支持炫彩活体:浏览器无权限访问摄像头或用户拒绝,或6s内仍无法获取权限
NOT_GET_STREAM 当前设备不支持炫彩活体:建立webrtc连接后,6s内仍无法传输流
TOKEN_EXPIRED token无效
TOKEN_CHECKCODE_UPLOAD_TOOMANY token使用次数过多
TIMEOUT 检测超时,不可再验证

以上配置完成后,开始炫彩活体验证

6.start

开始验证,此时才会唤起摄像头。并在id为videoWrapper的标签内插入video标签。

rtcVideo.start()

7.destroy

主动销毁过程,会关闭webrtc,终止流程。在成功/失败回调中无需调用。videoWrapper标签内的video不会删除,需要手动删除,也可直接删除videoWrapper标签。在打光中销毁,会停留在当前打光颜色,需要自行处理。

rtcVideo.destroy()
该文档未解决您的疑问?查看常见问题