实名登记下的NFC手机读取二代证方法

news/2024/11/23 5:44:44/
    实名登记在很多行业或者特殊场景都有很大的使用量,我们常见的银行业务办理、电信营业厅业务办理、酒店住宿、买车票、网吧、疫情期间的刷身份证检查核验等都在广泛使用。传统的方式我们都需要购买一个专用的“二代证读卡器”或者叫“身份证读卡器”的设备才能完成上述刷卡实名登记的过程。从国家二代身份证发布到现在已经有比较长的时间了,身份证实名登记的主要设备均来国内几个主要设备厂家,华视、神思、新中新、国腾、精伦等,相比较原来的复印、扫描OCR方式优势是读取数据更快,准确性是100%,不会存在身份证扫描不清晰影响读取准确性的问题,同时机读方式具备防伪特性可以保障读卡信息的可靠性。但缺点也很明显,首先读卡设备价格比较贵,一般价格在1300~1600一个,其次读卡设备目前都比较大需要配套电脑才能使用,针对需要外出登记移动工作的场景来说就不太方便了。

随着国内实名制的广泛应用,不难发现很多使用场景都需要便携移动的识别登记手段,显然原有的方式和技术对实名制的应用和推广会产生较大阻力,目前新的技术也在不断发展,智能安卓手机集成NFC近场通讯的越来越多,苹果手机NFC功能的开放也势不可挡,原有PC电脑外接读卡器方式或扫描仪、移动端拍照拍照OCR方式的实名采集方式将被更高效、更安全可靠的NFC直接读取方式所代替。

与二代身份证读卡器以及拍照OCR方式比,手机身份证识别及验证方式有以下几大优势:

(1)快速集成优势,应用开发单位或企业不用购买任何外部硬件设备,利用手机本身自带NFC功能,嵌入手机身份证识别识别库,并根据自身业务需要定制开发APP或者小程序等完成高集成度的实名采集登记系统,既能高效读取又能有效鉴真防伪,同时也方便移动办公业务人员直接下载到安卓或IOS手机及平板电脑上使用,完全做到纯软集成。

(2) 快速安全优势,手机身份证识别除了可识别二代身份证还可识别护照、港澳居住证、港澳通行证等其他有效身份证件。甚至可以同时开发兼容原有的IC卡、社保卡、储蓄卡、公交卡等方面的应用,用一台手机集成多种智能卡的功能。读卡速度是拍照扫描方式10倍以差距(一般都是秒级读取,不用正反拍照),而且刷卡方式有安全加密芯片作保障即能保障卡内信息的准确可靠,既能可靠辨别证件真伪(安全加解密),又能防止拍照方式造成的信息泄露。

(3) 巨大的成本优势,通过利用现成的手机等移动终端自带的NFC功能,不再需要购买价格高昂的身份证读卡器外设,也不用单独配置一台读卡电脑,大大节省实名登记系统所需要的投入费用。

(4) 移动便携优势,手机身份证证件识别可便携易于移动办公,手机就是一台读卡器又是一台在线便携的处理终端,原来读卡器方式不易移动携带的问题立刻得到解决。如能将二代证读卡和拍照、签字、人脸核验识别集成,将是各服务行业、电信、银行、保险、政府机构各营业厅柜台以及在线业务实名开户或办理业务的登记核验首选理想模式。

下面简单介绍下手机身份证识别技术的相关信息:

支持平台:Android4.0及以上、Linux、windows、IOS系统;

支持二次开发:提供Android开发JAR包,Linux、windows下的动态库, iOS平台.a静态库开发包;

识别核验模式:人证1:1核验模式,无证人脸核验模式;

支持证件种类:二代身份证、护照、港澳通行证、居住证

1. 接口概要
接口文件在com\readTwoGeneralCard\OTGReadCardAPI.java中。
2. 调用流程图

在这里插入图片描述
3. 读取进度及状态回调处理
在使用本SDK前必须实现ActiveCallBack接口中的相关函数,原型如下:

public interface ActiveCallBack{void readProgress(int npaogress);void setUserInfo(String sztxt);
}void readProgress(int npaogress);//返回身份证读卡进度,一共20步。void setUserInfo(String sztxt);//函数空实现即可,有时会返回调试信息。

4. 接口
OTGReadCardAPI
接口初始化操作。
paramContext:android 的上下文
cb:实现回调的类
bNFC:统一写成false
GetVersion
获取当前版本号
setServerInfo
设置服务器列表(初始化后最先调用,必须)
twoCardServerList:身份证解码服务器列表
eidServerList:为null
bTestServer:统一填false
返回值:无
NfcReadCard
通过NFC读卡,同步操作,执行结束返回状态。
szAppID:APPID,每家商户的唯一ID(需要向本公司申请后获取)
userInfo:用户信息,暂时为空
intent:NFC句柄,OTG时填null
defaultType:只能填eTwoGeneralCard
userData:用户透传数据,如不需要,直接填“”
bAuth:填false
返回值:
41 – 失败
90 – 成功

GetCardType
返回NfcReadCard中读取的卡片类型。
返回值:
同NfcReadCard中的eCardType,返回eTwoGeneralCard

GetTwoCardInfo
当读卡为身份证类型的时候,获取身份证详细信息。
返回值:
public class TwoCardInfo {
public String szTwoIdName; // 姓名
public String szTwoIdSex; // 性别
public String szTwoIdNation; // 民族
public String szTwoIdBirthday; // 出生日期
public String szTwoIdAddress; // 住址
public String szTwoIdNo; // 身份证号码
public String szTwoIdSignedDepartment; // 签发机关
public String szTwoIdValidityPeriodBegin; // 有效期起始日期 YYYYMMDD
public String szTwoIdValidityPeriodEnd; // 有效期截止日期 YYYYMMDD 有效期为长期时存储“长期”
public String szTwoIdNewAddress; // 最新住址
public byte[] arrTwoIdPhoto; // 照片信息
public byte[] arrTwoIdFingerprint; // 指纹信息

public String   szSNID;

public String szDNID;

public String szTwoOtherNO; // 通行证类号码
public String szTwoSignNum; // 签发次数
public String szTwoRemark1; // 预留区
public String szTwoType; // 证件类型标识
public String szTwoRemark2; // 预留区

}

GetErrorInfo
获取执行过程中的出错信息。
0 成功
0 < 失败

5. 调用样例
OTGReadCardAPI ReadCardAPI;
ReadCardAPI = new OTGReadCardAPI(getApplicationContext(), this, false);
ArrayList twoCardServerlist = new ArrayList();
twoCardServerlist.add(new Serverinfo(“xx.xxxx.xx”, 0000));
szFactory = “xxxxxxxxxxxxxxxxxx”;
ReadCardAPI.setServerInfo(twoCardServerlist, null, false);
if (ReadCardAPI.NfcReadCard(szFactory, null, inintent, eCardType.eTwoGeneralCard, “”, false) == 90)
{
// 解码成功
}
else
{
// 解码失败
}

完整源代码和资料:https://github.com/yzfuture/yzfuture


http://www.ppmy.cn/news/653674.html

相关文章

苹果电脑ntfs如何打开硬盘?mac能读取的硬盘格式

如今&#xff0c;使用Mac电脑的用户越来越多&#xff0c;但是不少用户却面临着一个问题&#xff0c;那就是Mac无法正常读写自己的NTFS格式的外置硬盘&#xff0c;硬盘上面保存着很多重要的文件数据&#xff0c;想要进行复制或者是编辑等&#xff0c;压根没有办法在Mac电脑上进行…

使用android (android studio)和苹果ios手机读写NFC卡内容(MifareUltralight)方法 亲身完美体验过程

最近工作需要购买了一些nfc卡进行读写操作&#xff0c;目标是使用手机实现一些业务流程 淘宝购买1-2块钱一张卡&#xff0c;卖家提供的信息&#xff1a;卡的芯片是215 网上找的内容都是一段一段的&#xff0c;我现在把用到的资料都整合起来&#xff0c;以便看一篇就可以知道怎…

stm32 arduino 读取sd卡并在lcd(jlx12864)上播放badapple

目录 前言引脚连接代码示例 问题排查1. sd卡无法读取2. lcd无显示 前言 要问什么是测试单片机控制单色屏幕的最佳办法&#xff0c;我想badapple应该当之无愧&#xff0c;经典程度如helloworld。 这次&#xff0c;我用stm32f103c8t6arduino框架读取sd卡&#xff0c;并控制jlx12…

苹果7pnfc功能门禁卡_苹果下个月终于要开放NFC权限了!iphone一秒变身门禁卡

原标题:苹果下个月终于要开放NFC权限了!iphone一秒变身门禁卡 当我们开始习惯用iPhone的NFC功能进行移动支付,苹果公司要进一步开放NFC芯片功能,它将能用来充当钥匙,可以打开房门车门。 iPhone 6 之后的机型都配备了 NFC 芯片,这和蓝牙一样都是短距离通讯技术,可以在设备…

html 仿浏览器选项卡,【美化TabControl教程】仿苹果Safari浏览器选项卡

【实例简介】 【美化TabControl教程】仿苹果Safari浏览器选项卡 【实例截图】 一步一步玩控件:自定义TabControl——从山寨Apple Safari开始 教程: 分析,分析 山寨的灵魂在于分析,首先把刚才拍的高清果照扯过来分解了。 1337277056_9776.jpg (65.87 KB, 下载次数: 30) 【美…

switch错误码2016-0247 无法识别SD卡解决方案(猴子也能看懂的简单命令行操作,无需格式化!)

Swtich更换microSD卡有时会遇到无法识别的问题&#xff0c;一个例子是错误代码2016-0247。 该错误码的产生原因是SD卡放入switch前使用了MacOS等非Windows系统操作&#xff0c;导致文件归档方式出现差别。 此时无需格式化SD卡&#xff0c;因为本质不是文件系统格式的问题。 &am…

苹果电脑更改sd卡只读_sd卡反复变成只读解决办法

首先推荐两个网页&#xff1a; 我们的相同之处就是用的fat文件系统&#xff0c;我的应用和第二个同志的一样&#xff0c;解决办法:移植一个修复工具dosfsck,其详细用法请参看&#xff1a;http://linux.about.com/library/cmd/blcmdl8_dosfsck.htm FAT (dosfsck) 依次序检查以下…

mac os android sd卡,关于 Mac 上的 SD 和 SDXC 卡插槽

什么是 SD? SD 是指那些符合非易失性存储卡 SD 标准的设备。请访问 SD 协会网站,以了解详细信息。 SD 卡插槽对可插入的存储卡的大小有没有限制? 有。存储卡的 SD 卡规格为 32 毫米 x 24 毫米 x 2.1 毫米。您还可以使用更薄的卡,例如多媒体卡(MultiMediaCard,MMC)。请勿使…