各行业客户可将身份证读卡器开发对接到自己的任何业务系统或者软件,实现身份证的信息自动录入和身份证的真假验证,并和自己的业务系统无缝对接。
一、身份证阅读器SDK开发手册V2.08(特别适合CS构架的软件开发)
概述
本手册是操作身份证阅读器动态库应用函数的定义格式、调用方法和返回值的说明。在使用前,请确认授权文件termb.lic是否在你的PC机C:\根目录下。
1. 定义
应用函数开发包含下列文件:
termb.dll API函数的动态联接库
sdtapi.dll 内部动态库
cvrapi.dll 内部动态库
wltrs.dll 内部动态库
termb.lic 身份证相片解压授权文件,放于C:\目录下
适用操作系统:
Windows NT: 需要NT 3.1版或以后版本
Windows: 需要 Windows 98、Windows 2000或以后版本
适用开发语言:
Visual C++ 5.0 及以后版本
Visual Basic 5.0 及以后版本
Delphi 3.0 及以后版本
PowerBuilder 6.0 及以后版本
2. 函数列表
//以下为主要API函数
int CVR_InitComm(int Port) 初始化连接;
int CVR_Authenticate() 卡认证;
int CVR_Read_Content(int Active) 读卡操作。
int CVR_CloseComm() 关闭连接;
//以下为可选API函数,方便二次开发
int CVR_Ant(int mode) 射频操作
int CVR_ReadBaseMsg (
unsigned char *pucCHMsg, unsigned int *puiCHMsgLen, unsigned char *pucPHMsg, unsigned int *puiPHMsgLen,
int nMode) 读卡操作(读入内存)
int GetPeopleName(char *strTmp, int *strLen) 得到姓名信息
int GetPeopleSex(char *strTmp, int *strLen) 得到性别信息
int GetPeopleNation(char *strTmp, int *strLen) 得到民族信息
int GetPeopleBirthday(char *strTmp, int *strLen) 得到出生日期
int GetPeopleAddress(char *strTmp, int *strLen) 得到地址信息
int GetPeopleIDCode(char *strTmp, int *strLen) 得到身份证号信息
int GetDepartment(char *strTmp, int *strLen) 得到发证机关信息
int GetStartDate(char *strTmp, int *strLen) 得到有效开始日期
int GetEndDate(char *strTmp, int *strLen) 得到有效截止日期
3. 函数调用流程

4. 函数说明
初始化连接
原 型:int CVR_InitComm (int Port)
说 明:本函数用于PC与华视电子第二代居民身份证阅读器的连接。
参 数:Port:连接串口(COM1~COM16)或USB口(1001~1016)
值 意义
1 串口1
2 串口2
3 串口3
4 串口4
1001 USB口1
1002 USB口2
1003 USB口3
1004 USB口4
返 回 值:
值 意义
1 正确
0 错误
关闭串口
原 型:
int CVR_CloseComm(void)
说 明:本函数用于关闭PC到阅读器的连接。
参 数:无
返 回 值:
值 意义
1 正确
0 错误
卡认证
原 型:int CVR_Authenticate (void)
说 明:本函数用于读卡器和卡片之间的合法身份确认。卡认证循环间隔大于300ms。
参 数:
返 回 值:
值 意义 说明
1 正确 卡片正确放置时
0 错误 未放卡或卡片放置不正确时
注意:若卡片放置后发生认证错误时,应移走卡片重新放置。
读卡操作
原 型:int CVR_Read_Content(int Active);
说 明:本函数用于通过阅读器从第二代居民身份证中读取相应信息。卡认证成功以后才可做读卡操作,读卡完毕若继续读卡应移走二代证卡片重新放置做卡认证。
参 数:Active 读取信息类型
Active 意义 说明
1 读基本信息 生成文字WZ.TXT、相片数据XP.WLT和相片ZP.BMP(解码)
2 读基本信息 生成文字WZ.TXT和相片数据XP.WLT
3 读最新住址信息 生成最新住址NEWADD.TXT(卡无最新地址则生成空文件)
4 读基本信息 生成WZ.TXT(解码),相片ZP.BMP(解码)
5 读芯片管理号 芯片管理号IINSNDN.bin
6 读基本信息 以设备唯一标志号,生成文字WZ.TXT(解码),相片XP.BMP(解码)
(用于终端网络环境)
返 回 值:
返回值 意义
1 正确
0 错误
射频操作
原 型:int CVR_Ant(int mode);
说 明:本函数用于打开/关闭射频。阅读器在不读卡时,如果射频对其它的电子产品有干扰的话,可以选择关闭射频,当需要读卡时,再打开射频。该函数只在当连接到串行接口的阅读器时,调用有效。如不调用此函数时,射频一直处于打开状态。
注:当 CVR_InitComm函数调用成功后,该函数有效。
参 数:mode
MODE 意义
0 关闭射频
1 打开射频
返 回 值:
返回值 意义
1 正确
0 错误
读文字、照片信息到自定义内存缓冲
原 型:int CVR_ReadBaseMsg (unsigned char *pucCHMsg, unsigned int *puiCHMsgLen, unsigned char *pucPHMsg, unsigned int *puiPHMsgLen,
int nMode)
说 明:此函数代替CVR_Read_Content函数,将身份信息读到自定义内存缓冲中。卡 认证CVR_Authenticate成功以后调用本函数。
参 数:
参 数 说 明 备 注
pucCHMsg 身份文字信息内存缓冲指针 方向:Out
puiCHMsgLen 身份文字信息长度 默认 256 Byte
pucPHMsg 身份照片信息内存缓冲指针 方向:Out
puiPHMsgLen 身份照片信息长度 默认 1024 Byte
nMode 传入参数 1 文字编码为默认UCS-2格式,
照片未解压成bmp文件
传入参数 2 文字编码已转换成GBK国标码格式,
照片未解压成bmp文件
传入参数 3 文字编码为默认UCS-2格式,
照片已解压成zp.bmp文件
传入参数 4 文字编码已转换成GBK国标码格式,
照片已解压成zp.bmp文件
返 回 值:
返回值 意义
1 正确
0 错误
读各项文字信息到自定义内存缓冲
原 型:
int _stdcall GetPeopleName(char *strTmp, int *strLen) //得到姓名信息
int _stdcall GetPeopleSex(char *strTmp, int *strLen) //得到性别信息
int _stdcall GetPeopleNation(char *strTmp, int *strLen) //得到民族信息
int _stdcall GetPeopleBirthday(char *strTmp, int *strLen) //得到出生日期
int _stdcall GetPeopleAddress(char *strTmp, int *strLen) //得到地址信息
int _stdcall GetPeopleIDCode(char *strTmp, int *strLen) //得到卡号信息
int _stdcall GetDepartment(char *strTmp, int *strLen) //得到发证机关信息
int _stdcall GetStartDate(char *strTmp, int *strLen) //得到有效开始日期
int _stdcall GetEndDate(char *strTmp, int *strLen) //得到有效截止日期
说 明:以上函数调用流程为:调用 CVR_Read_Content 或者 CVR_ReadBaseMsg 函数 成功后再分别调用以上函数。CVR_Read_Content 或者 CVR_ReadBaseMsg 函数 自动 在应用程序当前目录产生BMP照片文件。
参数:
*strTmp 返回的信息缓存指针。
*strLen 返回的信息长度指针。
返 回 值:
返回值 意义
1 正确
0 错误
注意:若采用查询方式自动判断卡片是否放置,则间隔时间建议大于300ms。
注意:
1、 读完基本信息后,若需要立即读取最新住址信息或芯片管理号,在未移走卡片的情况下可以不用卡认证;
2、 单独读取最新住址信息或芯片管理号时,需要先进行卡认证;
3、若卡片放置后发生读卡错误时,应移走卡片重新放置。
文字信息采用GB 13000的UCS-2进行存储,各项目分配如下:
项目 长度(字节) 说明
姓名 30 汉字
性别 2 代码
民族 4 代码
出生 16 年月日:YYYYMMDD
住址 70 汉字和数字
公民身份号码 36 数字
签发机关 30 汉字
有效期起始日期 16 年月日:YYYYMMDD
有效期截止日期 16 年月日:YYYYMMDD
有效期为长期时存储“长期”
最新住址 70 汉字和数字
芯片管理号分配如下:
项目 长度(字节) 说明
IIN 4
SN 8
DN 16
二、身份证阅读器开发手册(特别适合BS构架的软件开发)
身份证阅读器二次开发 身份证阅读器开发说明 身份证读卡器二次开发文档 身份证读卡器OCX控件调用 二代证读卡器ActiveX
针对普通的Web浏览器网页软件界面,华视推出“身份证阅读Web浏览器ActiveX控件” ,或者叫Web“插件” 。
ActiveX 浏览器控件是Microsoft提出的一组使用COM(Component Object Model,部件对象模型)使得软件部件在
网络环境中进行交互的技术集。它与具体的编程语言无关。作为针对Internet应用开发的技术,ActiveX被广泛应用于WEB服务器以及客户端的各个方面。
同时,ActiveX技术也被用于方便地创建普通的桌面应用程序。
B/S ActiveX控件名称:
PCVR_IDCard.ocx 文件
classid="10946843-7507-44FE-ACE8-2B3483D179B7"
版本:V3.0.3.3
支持阅读器通讯接口:
支持阅读器RS232串口。
USB通讯接口。
控件测试环境:
操作系统:XP Professional 版本2002、SP2
浏览器:IE6.0.2900.2180 、sp2
IE安全设置级别: 默认(中)
下载已签名ActiveX :提示
B/S例程文档包括:
CVR_IDCard.htm // 例程Demo网页阅读源代码
SaveIDCard.asp // 例程Demo网页保存阅读结果ASP活动脚本源代码
SaveIDCard.jsp // 例程Demo网页保存阅读结果JSP活动脚本源代码
CVR100.cab // OCX控件压缩发布文件
CVR100.cer // 深圳华视电子自签名数字证书
二代身份证系统B/S读卡控件实现了以下属性和接口:
(1) 检测设备连接是否正确:GetState()
返回值:数字
’0’-表示设备正常;’<0’ -表示设备错误,对应错误码表;
说明:检测设备连接是否正确,不正确则返回不正确原因。
(2) 读取二代证信息方法:ReadCard()
返回值:数字
’0’-表示读卡成功;’<0’ -表示读卡失败,对应错误码表;
说明:通过网页按钮等事件触发读卡方式。
读卡返回值解释:
0: '读卡成功'
-1: '未连接机具'
-2: '放卡超时'
-3: '用户已取消读卡'
-4: '读基本信息出错'
-5: '照片创建失败'
(3) 属性Name/NameL
返回值:字符串(BStr)。
Name – 卡片中储存的姓名。
NameL – 处理过的姓名。
说明: 区别在于Name中两个字名称中间有空格,NameL则去除了空格。
如:Name = 张 三 NameL = 张三
(4) 属性Sex/SexL
返回值:字符串(BStr)。
Sex – 卡片中储存的性别代码。
SexL – 处理过的性别。
说明: 区别在于Sex返回国家标准的性别代码,SexL则根据2005年国家标准翻译出性别。如:Sex = 1 SexL = 男
(5) 属性Nation/NationL
返回值:字符串(BStr)。
Nation – 卡片中储存的民族代码。
NationL – 处理过的民族。
说明: 区别在于Nation返回国家标准的民族代码,NationL则根据2005年国家标准翻译出民族。如:Nation = 01 NationL = 汉族
(6) 属性Born/BornL
返回值:字符串(BStr)。
Born – 卡片中储存的出生日期。
BornL – 处理过的出生日期。
说明: 区别在于Born返回简化的出生日期,BornL则将出生日期格式化(YYYYMMDD)。如:Born = 19670312 BornL = 1967-03-12
(7) 属性Address
返回值:字符串(BStr)。
说明: 身份证中储存的住址。
(8) 属性CardNo
返回值:字符串(BStr)。
说明:身份证中储存的身份号码。
(9) 属性Police
返回值:字符串(BStr)。
说明:身份证中储存的签发机关。
(10) 属性Activity
返回值:字符串(BStr)。
Activity – 卡片中储存的有效期限。
说明: 返回简化的有效期限。如:Activity = 1967120119771201
(11) 属性ActivityLFrom
返回值:字符串(BStr)。
说明: 返回有效期起始时间。如:ActivityLFrom = 20071201
(12) 属性ActivityLTo
返回值:字符串(BStr)。
说明: 返回有效期失效时间。如:ActivityLTo = 20171201
(13) 属性PhotoPath
设置照片存放路径:字符串(BStr)
说明:缺省不设置PhotoPath,PhotoPath在缺省或设置为空的情况下,表示照片不用保存在客户端设备上。
(14) 接口GetPhotoBuffer()
返回值:字符串(BStr)
说明:返回照片数据流,具体为JPG文件数据流进行BASE64编码得到的字符串。
(15) 属性TimeOut
设置放卡超时时间,单位:秒,超时后退出读卡循环过程。TimeOut=0 表示没有超时。
合作联系:
地址:广州市天河区官育路8号
电话:020-62824813
联系人:何俊贤 手机:18680266076
传真:020-62824813
邮编:510665
电子邮件:hejx@wonteco.com
QQ :2622477828
网址:http://www.wonteco.com