.net core 3.1精伦身份证读卡器IDR210-2(部标版)二次开发

news/2024/11/23 2:11:02/

业务需求

在学员录入的时候添加一个读取身份证填充对应信息的功能,但遇到如下问题:

  1. 官方提供的demo读取身份证使用了com组件和activeX控件的技术,并且只支持IE,我们的前端项目没有兼容IE
  2. 技术选型选择了使用.net core 3.1,但网上的二次开发demo都是winform程序开发

解决方案

开发对应的webapi注册win服务在用户的本地运行作为读取身份证信息的中转程序,前端调用对应的接口获取读取的信息。

开发demo 编写调用二次开发dll

编写调用二次开发dll接口工具类ReadIdCardHelper(直接调用使用)

public class ReadIdCardHelper{#region DllImport[DllImport("idCardDll/sdtapi.dll")]private static extern int InitComm(int iPort);//初始化[DllImport("idCardDll/sdtapi.dll")]private static extern int CloseComm();//关闭端口[DllImport("idCardDll/sdtapi.dll")]private static extern int Authenticate();//卡认证[DllImport("idCardDll/sdtapi.dll")]//读取数据,推荐使用private static extern int ReadBaseInfos(StringBuilder Name,StringBuilder Gender,StringBuilder Folk,StringBuilder BirthDay,StringBuilder Code,StringBuilder Address,StringBuilder Agency,StringBuilder ExpireStart,StringBuilder ExpireEnd);[DllImport("idCardDll/sdtapi.dll")]//读取数据,推荐使用private static extern int Routon_BeepLED(bool BeepON, bool LEDON, int duration);#endregionstatic public void readCard(ref IdCardMessageDto idCardMessage){StringBuilder Name = new StringBuilder(31); // 姓名StringBuilder Gender = new StringBuilder(3); // 性别StringBuilder Folk = new StringBuilder(10); // 民族StringBuilder BirthDay = new StringBuilder(9); // 生日StringBuilder Code = new StringBuilder(19); // 证件号StringBuilder Address = new StringBuilder(71); // 家庭地址StringBuilder Agency = new StringBuilder(31); // 签发机关StringBuilder ExpireStart = new StringBuilder(9); // 有效期起始日期StringBuilder ExpireEnd = new StringBuilder(9); // 有效期截止日期//打开端口int intOpenRet = InitComm(1001);if (intOpenRet != 1){Console.WriteLine("阅读机具未连接");Routon_BeepLED(false,false,2000);return;}//卡认证int intReadRet = Authenticate();if (intReadRet != 1){Console.WriteLine("卡认证失败");Routon_BeepLED(false, false, 2000);CloseComm();return;}//读卡int intReadBaseInfosRet = ReadBaseInfos(Name, Gender, Folk, BirthDay, Code, Address, Agency, ExpireStart, ExpireEnd);if (intReadBaseInfosRet != 1){Console.WriteLine("读卡失败");Routon_BeepLED(false, false, 2000);CloseComm();return;}idCardMessage = new IdCardMessageDto();idCardMessage.Code = Code.ToString().Trim();idCardMessage.Name = Name.ToString().Trim();idCardMessage.Gender = Gender.ToString().Trim();idCardMessage.Folk = Folk.ToString().Trim();idCardMessage.BirthDay = BirthDay.ToString().Trim();idCardMessage.Address = Address.ToString().Trim();idCardMessage.Agency = Agency.ToString().Trim();idCardMessage.ExpireStart = ExpireStart.ToString().Trim();idCardMessage.ExpireEnd = ExpireEnd.ToString().Trim();idCardMessage.photo = System.IO.Directory.GetCurrentDirectory() + "\\photo.bmp";Routon_BeepLED(true, true, 2000);CloseComm();}

DLL文件必须位于程序当前目录或系统定义的查询路径中(即:系统环境变量中Path所设置的路径)
DLLImport会按照顺序去查找DLL文件(程序当前目录>System32目录>环境变量Path所设置路径)。

可能遇到的坑

程序生成的位数不对【试图加载格式不正确的程序。 (异常来自 HRESULT:0x8007000B)】
二次开发包是在32位系统下面开发的,在64位系统上面开发编译的时候需要将生成的目标平台设为X86
在这里插入图片描述

demo下载

链接: .net core 3.1精伦身份证读卡器IDR210-2(部标版)二次开发


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

相关文章

身份证读卡器 护照阅读器,如何能做到读取多证件呢?

关联词:护照阅读器 护照识别仪 护照扫描仪 护照扫描机 电子护照阅读器 电子护照阅器一体机 护照批量录入 护照录入 护照识别 护照管理、证件识读仪、护照阅读机、护照读取机、护照识别一体机 护照阅读机原理护照阅读机品牌哪个好——电子护照,全称是携带…

新中新二代身份证读卡器DKQ-A16D C# Demo 无法运行问题

116D-A16D阅读器发行盘中的C# Demo 无法直接运行,但是其他Demo可正常运行。怀疑代码有问题,有幸看到了https://blog.csdn.net/yaogh/article/details/53419392 这位仁兄的帖子,根据其分析,发现确实就是权限的问题,所以…

德卡T10读卡器 读取身份证号码和身份证UID

这个简单的测试项目,界面上有个timer控件,设计的是3秒执行一下读取身份证的动作,目前想到的是这种循环方式,德卡T10这个机子,身份证放上去,不会自动去执行读取的操作。 1.界面 2.界面的代码 Form1.cs 如下 1 using System;2

新中新二代身份证读卡Syn_ReadBaseMsg方法

新中新二代身份证读卡器dkq-a16d,在C#中读卡开发时,参考随机附带的C#参考代码,能够读取成功,但读几次程序就莫名其妙的关掉了,有时连错误都捕捉不到,搞了很长时间也没搞定,后来以为会不会是win7…

解决no main manifest attribute, in XXX.jar

解决no main manifest attribute, in XXX.jar 1. 问题描述1.1 前言1.2 问题描述 2. 问题原因3. 解决问题3.1 修改pom文件3.2 重新启动3.3 再次查看META-INF/MANIFEST.MF3.4 小结 1. 问题描述 1.1 前言 创建一个简单的maven项目,pom配置如下: 1.2 问题…

【算法题】动态规划中级阶段之不同路径、最小路径和

动态规划中级阶段 前言一、不同路径1.1、思路1.2、代码实现 二、不同路径 II2.1、思路2.2、代码实现 三、最小路径和3.1、思路3.3、代码实现 总结 前言 动态规划(Dynamic Programming,简称 DP)是一种解决多阶段决策过程最优化问题的方法。它…

脑洞大的日本人,做了一个AI智能观音讲佛经!

据报道,日前,日本高台寺展示了智能机器人观音 Minder,旨在向现代人简单易懂的阐明佛教的教义。 据了解,Minder 由大阪大学教授石黑浩等人协助研发,研发费用为 1 亿日元(约 600 万人民币)。外形…

永恒之黑漏洞复现

一,实验环境 攻击机:kail 192.168.227.132 靶机:win10 1903(关闭防火墙)192.168.227.137 二,复现过程 1,在kali终端下载 POC和Getshell git clone https://github.com/eerykitty/CVE-2020-0796-PoC git cl…