xinyanIDVerification

立即使用

论坛示例

为帮助用户更好更快的使用模块,论坛维护了一个示例,示例中包含示例代码、知识点讲解、注意事项等,供您参考。

概述

xinyanIDVerification是新颜提供的专注于识别互联网用户身份真实性的产品。通过前端用户人脸活体识别验证,以用户为中心,验证用户的真实性,全面预防互联网用户身份欺诈风险。

xinyanIDVerification可应用于运营商业务办理、银行自助业务办理、互联网用户注册认证、现金贷平台用户注册认证、借款申请审核等环节。使用本模块需在线云编译安装包或自定义 loader 使用。由于XYIDVerification SDK付费,使用之前需要和新颜科技的技术支撑联系,开通SDK,并注册应用。

运行环境

编译时候的固件版本安卓要求4.1.2以上,IOS要求8.0以上

在集成此模块之前需先配置config.xml文件。在config里添加如下字段:

  • 名称:xinyanIDVerification
  • 参数:memberId、terminalId、license
  • 配置示例:

  <feature name="xinyanIDVerification">
    <param name="memberId" value="**************" />
    <param name="terminalId" value="**************" />
    <param name="license" value="**************" />
  </feature>
  • 字段描述:

memberId:商户号,开通SDK后,新颜提供给商户的唯一编号

terminalId:终端号,开通SDK后,新颜提供给商户的AES终端编号,查看方式:SDK:开放平台->用户中心->信息管理->安全证书管理->密钥类型为AES的终端号 或者 API:开放平台->用户中心->信息管理->安全证书管理->密钥类型为RSA的终端号

license:商户的license,license和bundle ID、商户号、终端号绑定唯一,请提前找新颜技术支持申请

模块接口

configuration

配置智能人身核查SDK

configuration({params})

params

editable:

  • 类型:布尔类型
  • 描述:设置身份信息页面是否可编辑
  • 说明:字段非必填,不填默认为不可编辑

showResult:

  • 类型:布尔类型
  • 描述:是否展示智能人身核查结果页
  • 说明:字段非必填,不填默认为展示

needRadarInfo:

  • 类型:布尔类型
  • 描述:是否返回智能评估数据信息
  • 说明:字段非必填,不填默认是不会返回

phoneNo:

  • 类型:字符串
  • 描述:手机号
  • 说明:如果设置needRadarInfo:true,则手机号不能为空,为空则会返回错误信息msg

needDeviceInfo:

  • 类型:布尔类型
  • 描述:是否需要采集设备指纹信息
  • 说明:字段非必填,不填默认是需要设备指纹信息

takePhoto:

  • 类型:布尔类型
  • 描述:OCR手动拍照识别功能
  • 说明:字段非必填,不填默认是没有手动拍照入口

playSound:

  • 类型:布尔类型
  • 描述:是否播放语音提示
  • 说明:字段非必填,不填默认是播放语音提示

backUrl:

  • 类型:字符串
  • 描述:推送回调地址,如果需要结果异步通知到用户指定URL地址,需要设置该地址
  • 说明:字段非必填

identityVerification:

  • 类型:布尔类型
  • 描述:是否开启实名认证
  • 说明:字段非必填,不填就不开启实名认证。该参数只在startPassiveVerify才起作用

openRiskRecognition:

  • 类型:布尔类型
  • 描述:OCR是否开启风险识别
  • 说明:字段非必填,不填默认是不开启风险识别的

示例代码


var demo = api.require('xinyanIDVerification');
demo.configuration({
                      editable : false,
                      showResult : true,
                      needRadarInfo : true,
                      phoneNo : '11111111111',
                      needDeviceInfo : false,
                      takePhoto : true,
                      playSound : true,
                      backUrl : '**************',
                      identityVerification : false,
                      openRiskRecognition : true
                      });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

startActiveVerify

开始有源人身核查

startActiveVerify({params}, callback(ret, err))

params

transId:

  • 类型:字符串
  • 描述:商户订单号,是商户对这一笔交易的唯一编码,最长允许64位
  • 说明:字段必填,不填会返回错误信息msg

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:

      responseCode
    
      - 类型:字符串
      - 描述:响应码
      - 说明:为00000,则表示查询成功。具体可参见[响应码表](#a4)
    
    responseDesc

    - 类型:字符串
    - 描述:响应码对应的内容描述

    result

    - 类型:JSON 对象
    - 描述:具体内容见result说明

result:

  • 类型:JSON 对象
  • 内部字段:

      idCardInfo
    
      - 类型:JSON 对象,具体见示例
      - 描述:身份证信息结果集
      - 说明:身份证认证成功有值
    
      livenessInfo
    
      - 类型:JSON 对象,具体见示例
      - 描述:人像核查结果集
      - 说明:人像核查成功有值
    
      radarInfo
    
      - 类型:JSON 对象,具体见示例
      - 描述:智能评估查询结果集
      - 说明:设置needRadarInfo:true,phoneNo也正确。且人像对比code为0,评估查询成功才有值
    
      deviceInfo
    
      - 类型:JSON 对象,具体见示例
      - 描述:设备信息查询结果集
      - 说明:设置needDeviceInfo:true,且人像对比code为0,设备信息查询成功才有值
    
  • 示例:
{
    responseCode: ,           //响应码,字符串
    responseDesc: ,           //响应码对应的内容描述,字符串
    idCardInfo: {        //JSON对象
        idcard_birthday: ,     //生日(正面信息),字符串
        idcard_address: ,      //住址(正面信息),字符串
        idcard_number: ,       //公民身份证号(正面信息),字符串
        idcard_authority: ,    //签发机关(背面信息),字符串
        idcard_nation: ,       //名族(正面信息),字符串
        valid_date: ,          //签发日期-截止日期(背面信息),字符串
        idcard_name: ,         //姓名(正面信息),字符串
        idcard_gender: ,       //性别(正面信息),字符串
        idcard_front_image: ,  //身份证正面照照片,base64
        idcard_back_image:     //身份证背面照照片,base64
    },
    livenessInfo: {     //JSON对象
        code: ,                //识别结果,,字符串。0:信息⼀致,认证成功;1:认证信息不一致;2:认证信息不存在;3:照片对比不一致;4:证件照不存在;5:人脸特征提取失败;6:认证异常;9:其它异常
        desc: ,                //描述
        score: ,               //相识度评分,字符串
        level1: ,              //level1评分,字符串
        level2: ,              //level2评分,字符串
        id_no: ,               //公民身份证号,字符串
        id_name: ,             //姓名,字符串
        fee: ,                 //是否收费,字符串
        image:                 //人脸识别图片,base64
    },
    radarInfo: {        //JSON对象 
        code: ,                //查询结果代码,字符串。0:查询成功,1:查询未命中,9:其他异常
        desc: ,                //查询结果描述,字符串
        id_no: ,               //身份证号,字符串
        id_name: ,             //姓名,字符串
        phone_no: ,            //手机号,字符串
        result_detail: {       //字符串,当code=0查询成功时有值,其他状态为空
            loan_black:         //信贷明镜,字符串
            integrity_black:    //诚信明镜,字符串
            cheat_black:        //欺诈明镜,字符串
        }
    },
    deviceInfo: {       //JSON对象
       sign: ,                 //设备信息标签
       token:                  //token建议用户储存,用于查询设备信息
    }
}

示例代码

var demo = api.require('xinyanIDVerification');
demo.startActiveVerify({
                       transId:'******************'
                       },function(ret,err){
                       var msg =  ret.responseDesc;
                       var objToStr = JSON.stringify(ret);
                       console.log(objToStr);
                       api.toast({
                                 msg: msg,
                                 location: 'middle'
                                 });
                       });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

startPassiveVerify

开始无源人身核查

startPassiveVerify({params}, callback(ret, err))

params

transId:

  • 类型:字符串
  • 描述:商户订单号,是商户对这一笔交易的唯一编码,最长允许64位
  • 说明:字段必填,不填会返回错误信息msg

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:数据结构同有源人身核查
{
    responseCode: ,           //响应码,字符串。00000:查询成功!
    responseDesc: ,           //响应码对应的内容描述,字符串
    idCardInfo: {        //JSON对象
        idcard_birthday: ,     //生日(正面信息),字符串
        idcard_address: ,      //住址(正面信息),字符串
        idcard_number: ,       //公民身份证号(正面信息),字符串
        idcard_authority: ,    //签发机关(背面信息),字符串
        idcard_nation: ,       //名族(正面信息),字符串
        valid_date: ,          //签发日期-截止日期(背面信息),字符串
        idcard_name: ,         //姓名(正面信息),字符串
        idcard_gender: ,       //性别(正面信息),字符串
        idcard_front_image: ,  //身份证正面照照片,base64
        idcard_back_image:     //身份证背面照照片,base64
    },
    livenessInfo: {     //JSON对象
        code: ,                //识别结果,字符串。0:亲,认证成功;3:亲,照片对比不一致;9:其它异常
        desc: ,                //描述
        score: ,               //相识度评分,字符串
        level1: ,              //level1评分,字符串
        level2: ,              //level2评分,字符串
        id_no: ,               //公民身份证号,字符串
        id_name: ,             //姓名,字符串
        fee: ,                 //是否收费,字符串
        image:                 //人脸识别图片,base64
    },
    radarInfo: {        //JSON对象
        code: ,                //查询结果代码,字符串。0:查询成功,1:查询未命中,9:其他异常
        desc: ,                //查询结果描述,字符串
        id_no: ,               //身份证号,字符串
        id_name: ,             //姓名,字符串
        phone_no: ,            //手机号,字符串
        result_detail: {       //字符串,当code=0查询成功时有值,其他状态为空
            loan_black:         //信贷明镜,字符串
            integrity_black:    //诚信明镜,字符串
            cheat_black:        //欺诈明镜,字符串
        }
    },
    deviceInfo: {       //JSON对象
       sign: ,                 //设备信息标签
       token:                  //token的有效期为20天,请在20天内查询设备指纹信息,并且储存 
    }
}

示例代码


var demo = api.require('xinyanIDVerification');
demo.startPassiveVerify({
                        transId:'*******************'
                        },function(ret,err){
                        var msg =  ret.responseDesc;
                        var objToStr = JSON.stringify(ret);
                        console.log(objToStr);
                        api.toast({
                                  msg: msg,
                                  location: 'middle'
                                  });
                        });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

响应码

查询成功

响应码 描述
00000 查询成功!

验证错误

响应码 描述
C0000 初始化SDK失败,viewController不能为空
C0001 初始化SDK失败,订单号transId不能为空
C0002 初始化SDK失败,商户号不能为空
C0003 初始化SDK失败,license不能为空
C0004 初始化SDK失败,手机号不能为空
C0005 用户取消操作
C0006 操作频繁,请稍后重试
C0007 数据处理异常
C0008 网络异常,请稍后重试
C0009 初始化SDK失败,请输入正确的手机号
C0010 相机权限获取失败
C0011 初始化SDK失败,终端号terminalId不能为空
C1001 模型文件不存在
C1002 模型文件不合法
C1003 扫描超时,请重试一次
C1004 未采集到数据
C1006 应用被挂起
C1007 图像识别内部发生错误
C2001 活体检测内部发生错误
C9999 用户未授权协议

服务错误

响应码 描述
S0001 系统繁忙,请稍后再试
S1000 请求参数有误(具体以响应参数错误为准)
S1001 请求订单不存在或已过期,请重新发起交易
S1002 请求订单已受理,请稍后查询交易结果
S1003 订单不能重复提交
S1004 请求订单创建失败
S1005 请求报文解析失败
S1006 请求报文加密数据处理失败
S1007 请求明文数据与密文数据不一致
S1011 包名错误
S1015 未找到卡bin信息
S1016 暂不支持该银行卡校验
S1017 银行卡信息已修改,请重新发起交易
S1018 不识别的号码段
S2000 商户不存在
S2001 商户状态异常
S2002 商户终端信息不存在
S2003 商户终端信息状态异常
S2004 商户暂不支持该产品
S2005 商户暂不支持该功能
S2006 商户余额不足
S3001 暂不支持该产品
S3002 订单请求次数超限
S3003 报文验签不通过
S4001 创建渠道订单失败
S4002 请求获取密钥服务失败