为了方便使用,将读卡器相关的操作,都放在了一个服务上,统一接口。代码:E:\VSTS\MedicalHealth\Card\Card.sln这个解决方案。接口定义在Core.dll,实现在Core.Library.dll
客户端代码调用,像调用普通服务一样:
ICardService service = UseCaseItem.Current.GetLocalItem
ICardInfo cardInfo = service.Read(CardPrivoderKind.IdCard, CardReadOption.WithReadPhoto);
测试。现在可以测试的有
1、身份证读卡器.精伦电子.型号iDR210
2、身份证读卡器.新中新.型号A16系列
3、市民卡读卡器.广州市市民卡.V20统一接口
4、身份证读卡器.神思.型号SS628(100)
5、身份证读卡器.华视. 型号CVR_100U
6、中控智慧读卡器. ID100
7、德卡.T10
8、医疗保障卡.广东省江门市跨省异步医保统一接口. 医保和社保是同一张卡,不同的厂商,SSCardDriver.dll不同,要进行注册。
9、身份证读卡器.德生.型号TSW_F4_MDS
10、身份证.华大.型号HD100
11、身份证读卡器.首云.型号SW100
1、安装相关设备驱动,身份证要安装”二代证读验机具USB驱动”,市民卡可以不用安装驱动,从下面路径拷
\tanjinlong-p310\项目文档\门诊升级\卡服务相关\驱动程序
2、将CardServiceTray.exe,CardServiceTray.exe.config放到运行路径下, CardDll文件放到运行路径下,所有设备用到的dll都放在了该目录下。
由于不同的设备提供商,有相同的dll文件名,所以将不同设备提供商的dll放到了不同的目录下,运行时动态加载。
目录层次类似于 卡类型\厂商名\型号
精伦电子型号为iDR210的身份证读卡器,用到的dll放在下面的路径下
例 如:CardDll\IDCard\Routon\IDR210
相关组件,先从这里拷
\tanjinlong-p310\VSTS\MedicalHealth\bin\Debug
3、设置客户端参数,有些驱动支持32位和64位,客户端可以选一种,现在找到的DLL都是32位,“是否使用64位”,这个参数不用选,默认32位,选择读卡器标识参数就行了。
4、注册表中将CardServiceIsEnable设为true,则在启动jssvc服务时,自动启动卡服务,不然就要手工启动CardServiceTray.exe托盘服务,CardServiceTray.exe(用于宿住 32位服务),CardServiceTrayX64.exe(用于宿住 64位服务),现在只有32位的,只要启动 CardServiceTray.exe
5、32位的注册表, Wow6432Node下面的JetSun\3.0\IsServer设置是否正确,客户端,设置成false,服务器设置成true
备注:
1、身份证读卡器.神思.型号SS628(100)要将授权文件放到C盘根目录下。
2、身份证读卡器.华视. 型号CVR_100U要安装”华视读卡器多浏览器插件.exe” OCX控件
3、德卡读卡器组件要拷到运行BIN下面
4、身份证读卡器.德生.型号TSW_F4_MDS,要将授权文件放到C盘根目录下。