xinyanOCR

立即使用

configuration startIDCardScan startBankCardScan

论坛示例

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

概述

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

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

官网:https://www.xinyan.com/
电话:400-9556-888 传真:021-68811007
邮箱:service@xinyan.com

运行环境

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

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

  • 名称:xinyanOCR
  • 参数:memberId、terminalId、license
  • 配置示例:
  1. <feature name="xinyanOCR">
  2. <param name="memberId" value="**************" />
  3. <param name="terminalId" value="**************" />
  4. <param name="license" value="**************" />
  5. </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地址,需要设置该地址
  • 说明:字段非必填,不填默认为空

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

startIDCardScan

开始身份证识别

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

params

transId:

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

callback(ret, err)

ret:

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

    1. responseCode
    2. - 类型:字符串
    3. - 描述:响应码
    4. - 说明:为00000,则表示查询成功。具体可参见[响应码表](#a4)
  1. responseDesc
  2. - 类型:字符串
  3. - 描述:响应码对应的内容描述
  4. idCardInfo
  5. - 类型:JSON 对象
  6. - 描述:身份证信息,详见'idCardInfo详细信息'
  • idCardInfo详细信息:
  1. idCardInfo: { //JSON对象
  2. idcard_birthday: , //生日(正面信息),字符串
  3. idcard_address: , //住址(正面信息),字符串
  4. idcard_number: , //公民身份证号(正面信息),字符串
  5. idcard_authority: , //签发机关(背面信息),字符串
  6. idcard_nation: , //名族(正面信息),字符串
  7. valid_date: , //签发日期-截止日期(背面信息),字符串
  8. idcard_name: , //姓名(正面信息),字符串
  9. idcard_gender: , //性别(正面信息),字符串
  10. idcard_front_image: , //身份证正面照照片,base64
  11. idcard_back_image: //身份证背面照照片,base64
  12. }

调用身份证识别示例代码

  1. var demo = api.require('xinyanOCR');
  2. //开启身份证识别
  3. demo.startIDCardScan({
  4. transId:"" // 订单号
  5. },function(ret,err){
  6. var msg = ret.responseDesc;
  7. var objToStr = JSON.stringify(ret);
  8. //打印返回的报文
  9. console.log(objToStr);
  10. //toast结果展示
  11. api.toast({
  12. msg: msg,
  13. location: 'middle'
  14. });

startBankCardScan

开始银行卡识别

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

params

transId:

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

callback(ret, err)

ret:

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

    1. responseCode
    2. - 类型:字符串
    3. - 描述:响应码
    4. - 说明:为00000,则表示查询成功。具体可参见[响应码表](#a4)
  1. responseDesc
  2. - 类型:字符串
  3. - 描述:响应码对应的内容描述
  4. bankCardInfo
  5. - 类型:JSON 对象
  6. - 描述:银行卡信息,详见'bankCardInfo详细信息'
  • bankCardInfo详细信息:
  1. bankCardInfo: { //JSON对象
  2. bank_card_no: , //银行卡号
  3. bank_card_type:, // 银行卡类型
  4. bank_name:, // 银行卡名字
  5. bank_card_image:, // 银行卡照片
  6. }

调用银行卡识别示例代码

  1. var demo = api.require('xinyanOCR');
  2. //开启银行卡识别
  3. demo.startBankCardScan({
  4. transId:"" // 订单号
  5. },function(ret,err){
  6. var msg = ret.responseDesc;
  7. var objToStr = JSON.stringify(ret);
  8. //打印返回的报文
  9. console.log(objToStr);
  10. //toast结果展示
  11. api.toast({
  12. msg: msg,
  13. location: 'middle'
  14. });

响应码

编码描述备注
00000识别成功

验证错误

编码描述备注
C0001商户号不能为空
C0002终端号不能为空
C0003license不能为空
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识别失败/请使用身份证原件