读书人

关于PB中运用二代证读卡器

发布时间: 2013-01-04 10:04:16 作者: rapoo

关于PB中使用二代证读卡器
有谁用PB做刷过二代证读取身份资料的例子啊,市面上的二代证读卡器都通用的么?都有没有PB的软件接口啊?
[解决办法]
市面上的二代证读卡器就那么几种,一般都有PB接口.
[解决办法]
1. 读卡器不通用,都有自己的开发SDK与驱动

2. 没有专为PB开发的接口,但是PB是可以调用的,一般厂家都会提供PB开会例子
[解决办法]
都会提供DLL动态库调用的

这是我们项目中用到的一个。




二代证系统终端API
使用说明最新07/1/1










上海普天邮通科技股份有限公司


2007年01月

二代证系统终端API
使用说明

版 本
1.0.0.1

出版日期

2007年01月

著作权注意事项

  本书版权为上海普天邮通科技股份有限公司所有。未经上海普天邮通科技股份有限公司书面同意,任何公司、单位或个人,不得用任何手段复制本手册的部分或全部内容。
对印刷错误的更正,所述信息谬误的勘误,以及产品的改进,均由上海邮电通信设备股份有限公司随时作出解释,恕不预先通知,修正内容将编入再版说明书中。











1.前言
本应用程序接口(API)用于二代证验证系统的验证终端应用系统的开发。

2.系统要求
使用本API的PC机,必须满足下列条件:
?Windows 98,Windows 2000 Pro,Windows 2000 Server,WinXP
?至少32兆内存(32M RAM or Larger)
?至少10兆空闲硬盘空间(10M Free Hard Disk Space or Larger)
?至少一个空闲普通串口或USB口(视用户需求而定)。
3.API列表
应用函数开发包含下列文件:
cardapi.lib API函数的VC开发包
cardapi.h API函数声明
cardapi.dll API函数的动态联接库
stdapi.dll cardapi.dll的依赖动态联接库
WltRS.dll cardapi.dll的依赖动态联接库

序号函数名功能描述
1.checkCardReaderValid检查读卡器是否可以正常工作
2.getImagePath获取保存照片文件的路径
3.getPersonMsg获取身份证的基本信息
4.getNewAddress获取更新地址信息
5.resetCardReader复位读卡器

4.API详细说明
4.1 checkCardReaderValid

检查读卡器是否可以正常工作。
char* checkCardReaderValid (int iPort);

参数说明:
int iPort
0为自动检测
1-16为串口1-16口
1001-1016为USB1-16口

返回值:字符串
第一个字符为’1’,表示读卡器可以正常工作;
第一个字符为’0’,表示检测失败;
第一个字符后紧接检测成功或失败的中文描述。

4.2 getImagePath

从card.ini中获取获取保存照片文件的路径。
char* getImagePath ();

参数说明:无

返回值:字符串
保存照片文件目录的路径。

4.3 getPersonMsg

读取身份证的基本信息。
char* getPersonMsg (int iPort);

参数说明:
int iPort
0为自动检测
1-16为串口1-16口
1001-1016为USB1-16口


返回值:字符串
第一个字符为’1’,表示成功获取到身份证信息,其后紧接身份证信息;
第一个字符为’0’,表示获取身份证信息失败,其后紧接失败原因的中文描述;
身份证信息包括:姓名
[解决办法]
性别
[解决办法]
民族
[解决办法]
出生年月(格式为YYYY-MM-DD)
[解决办法]
身份证号码
[解决办法]
地址
[解决办法]
签发机构
[解决办法]
有效起始时间(YYYY-MM-DD)
[解决办法]
有效终止时间(YYYY-MM-DD或长期),信息项以字符’
[解决办法]
’分隔。
4.4 getNewAddress

读取更新地址信息。
char* getNewAddress (int iPort);



参数说明:
int iPort
0为自动检测
1-16为串口1-16口
1001-1016为USB1-16口

返回值:字符串
第一个字符为’1’,表示成功获取到更新地址信息,其后紧接地址信息;
第一个字符为’0’,表示获取更新地址信息失败,其后紧接失败原因的中文描述;
4.5 resetCardReader

复位读卡器。当身份证停留在身份证读卡器的有效阅读范围,此时而需要连续读取身份证信息或更新地址信息,则需要在两次读取操作之间插入复位操作。
Void resetCardReader (int iPort);

参数说明:
int iPort
0为自动检测
1-16为串口1-16口
1001-1016为USB1-16口返回值:无

4.6 getID
读机器编号。
int __stdcall getID(char* pszBuf, int iType)
参数说明:
char* pszBuf 缓冲区,保存返回的机器编号,长度至少为11字节
int iType 端口
0为自动检测
1-16为串口1-16口
1001-1016为USB1-16口

返回值:int
0表示正确,1表示出错。
5.API调用说明
5.1 API调用顺序
请首先调用检测读卡器接口checkCardReaderValid (),读卡器接口会自动检测当前设备所指定的端口。成功后再调用读取身份证信息接口getPersonMsg()。
5.2 照片说明
照片文件命名规则是:P+身份证号码.bmp。
默认的照片保存路径为当前运行路径下的bmp子目录。
也可通过配置文件CARDII.INI指定保存路径,CARDII.INI放置在当前运行目录下,内容如下,即照片的保存路径为d:\CardII\BMP目录。
[Save]
SavePath=d:\CardII\BMP\
5.3 示例代码

VC示例代码:

变量定义:
static HINSTANCE DLLInst = NULL;
函数指针定义:
char* (__stdcall *checkCardReaderValid)(int iPort);
动态载入:
DLLInst = LoadLibrary(“cardapi.dll”);
checkCardReaderValid=(char* (__stdcall *)(int ))GetProcAddress((HMODULE)DLLInst, " checkCardReaderValid ");
使用函数:
ret = checkCardReaderValid(0);
使用后释放:
if( DLLInst != NULL )
FreeLibrary(DLLInst);

读书人网 >PB

热点推荐