当前位置: 代码迷 >> PB >> 关于PB中使用二代证读卡器,该怎么处理
  详细解决方案

关于PB中使用二代证读卡器,该怎么处理

热度:95   发布时间:2016-04-29 05:55:25.0
关于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);

  相关解决方案