xinyanOCR

立即使用

论坛示例

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

概述

xinyanOCR是新颜提供的专注于识别互联网用户身份真实性的产品,支持身份证识别和银行卡识别。由于XYOCRSDK付费,使用之前需要和新颜科技的技术支撑联系,开通SDK,并注册应用。

  • 身份证识别:支持对大陆居民二代身份证正反面的所有字段进行结构化识别,包括姓名、性别、民族、出生日期、住址、身份证号、签发机关、有效期限;同时,支持对用户上传的身份证图片进行图像风险和质量检测,可识别图片是否为复印件或临时身份证,是否被翻拍或编辑,是否存在正反颠倒、模糊、欠曝、过曝等质量问题。
  • 银行卡识别:识别银行卡并返回卡照片、卡号、发卡行和卡片类型。

运行环境

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

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

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

  <feature name="xinyanOCR">
    <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

配置‘OCR’SDK

configuration({params})

params

openRiskRecognition:

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

backUrl:

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

示例代码

var demo = api.require('xinyanOCR');
//自定义模块配置项
demo.configuration({
                    openRiskRecognition : false,// 是否开启风险识别
                    backUrl:""
                       });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

startIDCardScan

开始身份证识别

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

params

transId:

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

callback(ret, err)

ret:

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

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

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

    idCardInfo

    - 类型:JSON 对象
    - 描述:身份证信息,详见'idCardInfo详细信息'
  • idCardInfo详细信息:
    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
    }

调用身份证识别示例代码

var demo = api.require('xinyanOCR');
//开启身份证识别
demo.startIDCardScan({
                       transId:"" // 订单号
                       },function(ret,err){
                       var msg =  ret.responseDesc;
                       var objToStr = JSON.stringify(ret);
                       //打印返回的报文
                       console.log(objToStr);
                       //toast结果展示
                       api.toast({
                                 msg: msg,
                                 location: 'middle'
                                 });

startBankCardScan

开始银行卡识别

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

params

transId:

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

callback(ret, err)

ret:

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

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

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

    bankCardInfo

    - 类型:JSON 对象
    - 描述:银行卡信息,详见'bankCardInfo详细信息'
  • bankCardInfo详细信息:
    bankCardInfo: {        //JSON对象
        bank_card_no: ,     //银行卡号
        bank_card_type:,   // 银行卡类型
        bank_name:,        // 银行卡名字
        bank_card_image:,  // 银行卡照片
    }

调用银行卡识别示例代码

var demo = api.require('xinyanOCR');
//开启银行卡识别
demo.startBankCardScan({
                       transId:"" // 订单号
                         },function(ret,err){
                         var msg =  ret.responseDesc;
                         var objToStr = JSON.stringify(ret);
                         //打印返回的报文
                         console.log(objToStr);
                         //toast结果展示
                         api.toast({
                                   msg: msg,
                                   location: 'middle'
                                   });

响应码

编码 描述 备注
00000 识别成功

验证错误

编码 描述 备注
C0001 商户号不能为空
C0002 终端号不能为空
C0003 license不能为空
C0004 订单号不能为空
C0005 模型文件不存在
C0006 模型文件不合法
C0007 未获得相机权限
C0008 调用后置摄像头异常
C1001 扫描超时,请重试一次
C1002 网络连接超时,请稍后再试
C1003 处理异常
C1004 引擎忙
C1005 已取消
C1006 未采集到数据
C1007 拍照模式下不能传 XYIdCardScanSideAuto
C1008 图像识别失败
C1009 扫描区域设置不正确
C1010 检测异常
C9999 用户未授权协议

服务器错误

错误码 描述 备注
S0001 系统繁忙,请稍后再试
S1000 请求参数有误
S1003 订单不能重复提交
S1004 请求订单创建失败
S1005 请求报文解析失败
S1009 请求订单已过期,请重新发起交易
S1011 包名错误
S1015 未找到卡bin信息
S1016 暂不支持该银行卡校验
S1017 银行卡信息已修改,请重新发起交易
S2000 商户不存在
S2001 商户状态异常
S2002 商户终端信息不存在
S2003 商户终端信息状态异常
S2004 商户暂不支持该产品
S2005 商户暂不支持该功能
S2006 商户余额不足
S3001 暂不支持该产品
S3002 操作频繁,请稍后再试
S3003 报文验签不通过
S4001 创建渠道订单失败
S4002 请求获取密钥服务失败
S216201 图片解码失败
S216630 识别错误,请再次请求
S400002 识别身份证错误
S400012 识别失败(风险识别开启时)
S400013 识别失败/请使用身份证原件