二代证系统终端API 使用说明最新11/6/28
上海普天邮通商用机器有限公司
2011年6月
二代证系统终端API
使用说明
版本
2.1
出版日期
2011年6月
著作权注意事项
本书版权为上海普天邮通商用机器有限公司所有。
未经上海普天邮通商用机器有限公司书面同意,任何公司、单位或个人,不得用任何手段复制本手册的部分或全部内容。
对印刷错误的更正,所述信息谬误的勘误,以及产品的改进,均由上海普天邮通商用机器有限公司随时作出解释,恕不预先通知,修正内容将编入再版说明书中。
一、前言
本应用程序接口(API)用于二代证验证系统的验证终端应用系统的开发。
二、系统要求
使用本API的PC机,必须满足下列条件:
●Windows 2000, Windows XP或更高
●至少64兆内存(64M RAM or Larger)
●至少10兆空闲硬盘空间(10M Free Hard Disk Space or Larger)
●至少一个空闲普通串口或USB口(视用户需求而定)。
三、文件列表
四个文件放在一起。
四、API详细说明
2.证件信息结构
typedef struct _personinfow
{
wchar_t name[16];
wchar_t sex[2];
wchar_t nation[10];
wchar_t birthday[10];
wchar_t address[36];
wchar_t cardId[20];
wchar_t police[16];
wchar_t validStart[10];
wchar_t validEnd[10];
wchar_t sexCode[2];
wchar_t nationCode[4];
wchar_t appendMsg[36];
}PERSONINFOW,*PPERSONINFOW;
typedef struct _personinfoa
{
char name[32];
char sex[4];
char nation[20];
char birthday[12];
char address[72];
char cardId[20];
char police[32];
char validStart[12];
char validEnd[12];
char sexCode[4];
char nationCode[4];
char appendMsg[72];
}PERSONINFOA,*PPERSONINFOA;
PERSONINFOW中的字符串使用UTF-16编码,PERSONINFOA中的字符串使用GBK编码。
20080808。
有效截止日期可以是长期。
3.long__stdcall OpenCardReader(long lPort, ULONG ulFlag, ULONG ulBaudRate)
打开并检测阅读器。
参数
lPort:端口号,1~16表示串口号,1001表示USB口,0表示自动选择。
厂时的波特率一般为115200。
使用USB阅读器时忽略该参数。
返回值:错误代码。
4.long__stdcall GetPersonMsgW(PPERSONINFOW pInfo, const wchar_t* pszImageFile)
读取二代证,所有参数中的字符串使用UTF-16编码。
参数
pInfo:指向证件信息结构的指针。
pszImageFile:照片路径和文件名。
照片的格式是bmp。
例如C:\Documents and Settings\test\Local Settings\Temp\image.bmp(如果当前用户是test的话)
返回值:错误代码。
5.long__stdcall GetPersonMsgA(PPERSONINFOA pInfo, const char* pszImageFile)
读取二代证,所有参数中的字符串使用GBK编码。
参数
pInfo:指向证件信息结构的指针。
pszImageFile:照片路径和文件名。
照片的格式是bmp。
例如C:\Documents and Settings\test\Local Settings\Temp\image.bmp(如果当前用户是test的话)
返回值:错误代码。
6.long__stdcall ResetCardReader()
重置阅读器。
重置成功后自动等待2秒钟。
一般情况下不使用该函数。
返回值:错误代码。
7.long__stdcall CloseCardReader()
关闭阅读器。
返回值:错误代码。
8.long__stdcall GetCardReaderStatus(long lPort, ULONG ulBaudRate)
获取阅读器的状态。
应用程序调用此函数时不需要另外调用OpenCardReader和CloseCardReader函数。
参数
lPort:端口号,1~16表示串口号,1001表示USB口,0表示自动选择。
ulBaudRate:波特率。
使用串口阅读器时请正确设置波特率。
串口阅读器出厂时的波特率一般为115200。
使用USB阅读器时忽略该参数。
返回值:错误代码。
9.void__stdcall GetErrorTextW(wchar_t* pszBuffer, DWORD dwBufLen)
获取错误信息的文字描述。
参数
pszBuffer:保存错误信息的缓冲区,编码为UTF-16。
dwBufLen:缓冲区的字符数。
返回值:无。
10.void__stdcall GetErrorTextA(char* pszBuffer, DWORD dwBufLen)
获取错误信息的文字描述。
参数
pszBuffer:保存错误信息的缓冲区,编码为GBK。
dwBufLen:缓冲区的字符数。
返回值:无。
五、调用流程
六、调用示例说明
本API自带多种调用示例。
目前有基于以下编程语言的示例:VC、C#、、Delphi、BCB、Java、PB。
所有示例都使用“打开设备”->“读卡”->“关闭设备”的调用顺序。
使用调用示例时请将cardapi3.dll、sdtapi.dll、WltRS.dll、license.dat四个文件放在被调用的路径中。
使用C#、示例时请先根据需要修改输出文件的路径。
C#:“项目”->“(项目名称)属性”->“生成”->“输出路径”。
:“项目”->“(项目名称)属性”->“编译”->“生成文件输出路径”。
使用网页(B/S应用)、VB6开发的用户请使用ActiveX控件。