孟德欣 谢二莲
摘 要:针对当前手工录入个人基本信息效率低的问题,提出一种基于二代身份证的房屋产权交易代理系统。首先该系统采用USB接口连接二代身份证读卡器,然后在VB6开发平台中利用动态链接库技术,采取机读方法来读取二代身份证的个人基本信息,并快速有效的识别身份证真伪,最后实时存储在数据库中。实验结果表明,基于二代身份证的机读方法有效解决了个人基本信息录入的效率问题,能够满足系统对客户基本信息的录入验证要求,具有较好的市场应用前景。
关键词:动态链接库;二代身份证;客户端/服务器;产权交易
中图分类号:TP311.52 文献标识码:A
1 引言(Introduction)
GTICR100是国腾电子推出的一款支持第二代身份证技术规范的读卡器,具有稳定性好、可靠性高、读卡时间快等优点,并且提供开放的应用程序接口(API),可供用户进行二次开发应用程序,该API接口支持多款主流软件开发平台[1]。目前已广泛应用于公安、银行、酒店、电信和民政等各行业[2]。
二代身份证采用内置的射频芯片存储个人基本信息,包括如身份证号、姓名、性别、出生年月和照片等。二代身份证采用数字防伪和印刷防伪技术来保证数据安全,卡内信息的读取支持机读和视读两种方式。数字防伪将个人信息数字化后采用密码技术加密存入芯片,防止伪造或篡改卡内的信息,用于机读信息的防伪。印刷防伪通过证件表面的防伪标识实现视读防伪。二代身份证的读卡器使用串口或USB接口与计算机连接,在将身份证接近读卡器的感应区,即可以采取机读方式读取二代身份证的信息,机读方式非常便于外部程序的系统集成[3]。
房屋产权交易代理系统的数据量较大,该系统要求准确快速的录入并验证客户信息的真伪。传统的做法是手工输入客户信息,耗时且比较容易出错,操作效率低。本文介绍系统通过调用动态链接库文件中的函数,通过解密模块将存储在二代身份证的个人信息解密为ANSI编码方式,直接显示或者存储在数据库中[4]。同时,系统还利用二代身份证读卡器识别身份证的真伪,有效避免了非法客户信息的输入,保障系统的安全[5]。
2 系统架构设计(System framework design)
基于二代身份证的房屋产权交易代理系统采用客户端/服务器(C/S)和浏览器/服务器(B/S)模式混合结构设计。其中,C/S模式用于业务数据输入及流程处理,其中的二代身份证读取模块连接客户与客户端软件的桥梁,是系统的核心模块。B/S模式用于向客户提供查询功能,以便客户及时了解业务办理流程信息[6]。
房屋产权交易代理系统由数据库服务器、WEB服务器、应用客户端、WEB查询终端、身份证读取模块、客户等组成。
系统总体架构如图1所示。
图1 系统框图
Fig.1 System framework diagram
3 系统功能设计(System function design)
房屋产权交易代理系统是以国家相关法律及房屋产权代办有关规定而开发,为房屋的产权代办登记、税费缴纳等核心业务工作提供的一个有效而科学的信息化操作平台,使房屋产权办理工作规范、透明和高效[7]。
系统实现了楼盘管理、客户管理、代办登记、税费缴纳、查询统计等主要功能。
楼盘管理实现楼盘基本信息管理,楼盘基本信息包括楼盘名称、开发商信息、交付时间、房屋类型和联系方式等,系统可对之进行导入、修改和删除等操作。
客户管理可对客户基本信息进行维护,系统通过二代身份证打开设备读出客户基本信息,核对无误后录入数据库。
代办登记根据客户申请选择相应的登记类别进行登记,核对客户提供的资料无误后保存并打印收件清单。收件资料保存完成后,系统根据客户的房屋信息自动计算税费,待客户确认并预交税费款项,打印客户回执单,完成代办登记流程。
税费缴纳由受理人登记客户的税费实际支出信息,系统支持对每一个客户税费自动进行结算计算,汇总结算信息。
查询统计支持在系统查询收件收款的情况,统计制定时间段内的业务办理情况,可以通过设置不同的查询条件。客户可以通过WEB浏览器自主查询办理流程以及缴费项目等。
此外,系统还支持数据备份、权限管理、用户管理和系统管理等功能。系统功能模块如图2所示。
图2 系统功能模块
Fig.2 System function module
4 系统实现(System implementation)
4.1 二代身份证的读卡函数
二代身份证读卡器GTICR100在本系统中采用USB接口连接计算机,在外部程序中通过调用GTICR100提供的动态连接库termb.dll、WltRS.dll文件来读取二代身份证信息。其中termb.dll是主文件,termb.dll调用WltRS.dll文件,发布程序时需将这两个动态链接库文件放在应用程序所在的同一个目录下。
termb.dll文件提供了一系列操作身份证的函数,详见表1。
表1 termb.dll提供的函数列表
Tab.1 List function provided by termb.dll
函数定义 说明
InitComm(int Port) 初始化连接
CloseComm() 关闭连接
Authenticate() 卡认证
Read_Content(int Active) 读卡操作
GetPeopleName(char *strTmp, int strLen) 读取姓名信息
GetPeopleSex(char *strTmp, int strLen) 读取性别信息endprint
GetPeopleNation(char *strTmp, int strLen) 读取民族信息
GetPeopleBirthday(char *strTmp, int strLen) 读取出生日期
GetPeopleAddress(char *strTmp, int strLen) 读取地址信息
GetPeopleIDCode(char *strTmp, int strLen) 读取卡号信息
GetDepartment(char *strTmp, int strLen) 读取发证机关信息
GetStartDate(char *strTmp, int strLen) 读取有效启始日期
GetEndDate(char *strTmp, int strLen) 读取有效截止日期
GetReserve(char *strTmp, int strLen) 读取保留信息
SetBaseData(char *TxtFileName) 设置基本信息
SetPhotoData(char *WltFileName) 设置照片WLT信息
其中,InitComm初始化连接函数支持的串口值从1到16,USB接口值从1001到1016。二代身份证的文字信息采用GB 13000的UCS-2编码方式进行存储;读卡函数Read_Content可以读取文字和照片信息,将Active参数设置为不同参数值可持读取不同类型信息,详见表2。
表2 Active参数设置
Tab.2 Active parameter value
设置值 作用 说明
1 读基本信息 文字信息文件WZ.TXT、照片文件XP.WLT和ZP.BMP
2 只读文字信息 文字信息文件WZ.TXT、照片文件XP.WLT
3 读最新住址信息 住址文件NEWADD.TXT
5 读芯片管理号 二进制文件IINSNDN.bin
GetPeopleName、GetPeopleSex等函数读用户信息函数组用于读取当前系统缓冲中的二代身份证卡内信息,函数将读取的字符信息全部转为ANSI编码方式并直接显示,且对一些字段并按相关标准作了相应转换,如将性别编码(如1)转换成相应的文字信息“男”,将民族编码(如01)转换成了相应的文字信息“汉”。
SetBaseData、SetPhoteData函数用于在无卡状态下解析保存在文件中的二代证信息。其中SetBaseData用于解析文字信息文件WZ.TXT,在传入Termb.dll中后将解析人员的文字基本信息,再通过调用GetPeopleName等读用户信息函数获取信息。SetPhoteData函数用于解析XP.WLT照片文件,同样由termb.dll将WLT文件解压成BMP文件,再通过调用GetPhotoBMP函数获得BMP格式的照片文件。
4.2 读取二代身份证的信息
动态链接库termb.dll文件支持VC、VB、DELPHI和PB等多种开发工具来调用,在安装支持相应操作系统的USB驱动程序后,在VB6中调用动态联接库termb.dll文件来读取二代身份证信息,需在工程中的模块中声明函数列表,如Read_Content函数的声明代码如下:
Public Declare Function Read_Content Lib "termb.dll" (ByVal Active As Integer) As Integer
其他的二代证身份证的函数声明类似,接着在读取二代身份证的事件代码中,调用初始化连接函数InitComm,本系统使用默认的USB接口号1001,调用认证函数Authenticate对所读卡的真伪进行认证,再使用读卡函数Read_Content读取卡中数据,就可以将读取个人信息并显示或保存到数据库中,下面的代码将个人身份信息在程序界面中的标签上直接显示。
Dim str As String
iRet = InitComm(1001)
iRet = Authenticate()
iRet = Read_Content(1)
str = Space$(256)
iRet = GetPeopleIDCode(str, 256)
LblID.Caption = Trim(str)
str = Space$(256)
iRet = GetPeopleAddress(str, 256)
LblAdd.Caption = Trim(str)
str = Space$(256)
iRet = GetPeopleName(str, 256)
LblName.Caption = Trim(str)
二代身份证信息读取流程如图3所示。
图3 读取流程
Fig.3 Reading process
4.3 将二代身份证信息存入数据库
为了方便使用,可以定义一个结构体保存从二代身份证中读取的数据。如下面的结构体:
Public Type IDCard
Name As String * 30
Sex As String * 5
Nation As String * 10
Birthday As Date
Addr As String * 70endprint
Id As String * 18
Department As String * 30
StartTime As Date
Endtime As Date
Reserve As String * 36
PhotoPathAs String * 255
End Type
在将二代身份证的个人基本信息读取出来以后,就可以调用数据库存储模块将这些数据保存到数据库中,供后续流程来操作。如下面的代码:
Dim KH AsIDCard
Dim str As String
str = "insert into kh values('" + KH.Name + "','" + KH.Sex + "','" + KH.Nation + "','"
str = str + KH.Birthday + "," + KH.Address + "," + KH.Id + "','" + KH.Department + "','"
str = str + KH.StartTime + "','" + KH.Endtime + "','" + KH.Reserve + "','" + KH.PhotoPath + "')"
rst.CursorLocation = adUseClient
rst.Opensql, cnn, 3, 1
这样,客户信息将被存入数据库。
5 结论(Conclusion)
本文设计并实现了基于二代身份证的房屋产权交易代理系统,该系统利用USB接口读卡器连接,调用动态链接库文件的读卡函数,快速有效的读取和验证客户身份信息,并实时存入数据库中。实践证明该系统运行稳定,有效的减少了工作人员的繁琐录入,方便有效,具有一定的应用推广价值。
参考文献(References)
[1] 程玉娟,姚健东,王宜怀.基于二代身份证的RFID门禁考勤系
统[J].计算机应用与软件,2011,28(3):44-46.
[2] 国腾电子公司.二代居民身份证阅读器GTICR-100函数包
使用手册[Z].2013.
[3] 杜垚.第二代身份证阅读器在招生报名系统中的集成和应用
[J].成都航空职业技术学院学报,2013,29(1):52-54.
[4] 杨令省,等.派出所综合信息管理系统应用模型研究[J].计算
机应用与软件,2012,29(8):234-236.
[5] 郑智华.基于GIS技术的房屋产权登记管理信息系统的研究
和实践[D].浙江:浙江工业大学,2008.
[6] 仝虎.高校身份证信息采集系统设计与实现[J].软件导刊,
2010,9(6):85-87.
[7] 孟德欣.VB程序设计[M].北京:清华大学出版社,2009:113-123.
作者简介:
孟德欣(1976-),男,硕士,副教授.研究领域:软件技术,图
像处理和数据挖掘.
谢二莲(1970-),女,本科,讲师.研究领域:信息化技术.endprint
Id As String * 18
Department As String * 30
StartTime As Date
Endtime As Date
Reserve As String * 36
PhotoPathAs String * 255
End Type
在将二代身份证的个人基本信息读取出来以后,就可以调用数据库存储模块将这些数据保存到数据库中,供后续流程来操作。如下面的代码:
Dim KH AsIDCard
Dim str As String
str = "insert into kh values('" + KH.Name + "','" + KH.Sex + "','" + KH.Nation + "','"
str = str + KH.Birthday + "," + KH.Address + "," + KH.Id + "','" + KH.Department + "','"
str = str + KH.StartTime + "','" + KH.Endtime + "','" + KH.Reserve + "','" + KH.PhotoPath + "')"
rst.CursorLocation = adUseClient
rst.Opensql, cnn, 3, 1
这样,客户信息将被存入数据库。
5 结论(Conclusion)
本文设计并实现了基于二代身份证的房屋产权交易代理系统,该系统利用USB接口读卡器连接,调用动态链接库文件的读卡函数,快速有效的读取和验证客户身份信息,并实时存入数据库中。实践证明该系统运行稳定,有效的减少了工作人员的繁琐录入,方便有效,具有一定的应用推广价值。
参考文献(References)
[1] 程玉娟,姚健东,王宜怀.基于二代身份证的RFID门禁考勤系
统[J].计算机应用与软件,2011,28(3):44-46.
[2] 国腾电子公司.二代居民身份证阅读器GTICR-100函数包
使用手册[Z].2013.
[3] 杜垚.第二代身份证阅读器在招生报名系统中的集成和应用
[J].成都航空职业技术学院学报,2013,29(1):52-54.
[4] 杨令省,等.派出所综合信息管理系统应用模型研究[J].计算
机应用与软件,2012,29(8):234-236.
[5] 郑智华.基于GIS技术的房屋产权登记管理信息系统的研究
和实践[D].浙江:浙江工业大学,2008.
[6] 仝虎.高校身份证信息采集系统设计与实现[J].软件导刊,
2010,9(6):85-87.
[7] 孟德欣.VB程序设计[M].北京:清华大学出版社,2009:113-123.
作者简介:
孟德欣(1976-),男,硕士,副教授.研究领域:软件技术,图
像处理和数据挖掘.
谢二莲(1970-),女,本科,讲师.研究领域:信息化技术.endprint
Id As String * 18
Department As String * 30
StartTime As Date
Endtime As Date
Reserve As String * 36
PhotoPathAs String * 255
End Type
在将二代身份证的个人基本信息读取出来以后,就可以调用数据库存储模块将这些数据保存到数据库中,供后续流程来操作。如下面的代码:
Dim KH AsIDCard
Dim str As String
str = "insert into kh values('" + KH.Name + "','" + KH.Sex + "','" + KH.Nation + "','"
str = str + KH.Birthday + "," + KH.Address + "," + KH.Id + "','" + KH.Department + "','"
str = str + KH.StartTime + "','" + KH.Endtime + "','" + KH.Reserve + "','" + KH.PhotoPath + "')"
rst.CursorLocation = adUseClient
rst.Opensql, cnn, 3, 1
这样,客户信息将被存入数据库。
5 结论(Conclusion)
本文设计并实现了基于二代身份证的房屋产权交易代理系统,该系统利用USB接口读卡器连接,调用动态链接库文件的读卡函数,快速有效的读取和验证客户身份信息,并实时存入数据库中。实践证明该系统运行稳定,有效的减少了工作人员的繁琐录入,方便有效,具有一定的应用推广价值。
参考文献(References)
[1] 程玉娟,姚健东,王宜怀.基于二代身份证的RFID门禁考勤系
统[J].计算机应用与软件,2011,28(3):44-46.
[2] 国腾电子公司.二代居民身份证阅读器GTICR-100函数包
使用手册[Z].2013.
[3] 杜垚.第二代身份证阅读器在招生报名系统中的集成和应用
[J].成都航空职业技术学院学报,2013,29(1):52-54.
[4] 杨令省,等.派出所综合信息管理系统应用模型研究[J].计算
机应用与软件,2012,29(8):234-236.
[5] 郑智华.基于GIS技术的房屋产权登记管理信息系统的研究
和实践[D].浙江:浙江工业大学,2008.
[6] 仝虎.高校身份证信息采集系统设计与实现[J].软件导刊,
2010,9(6):85-87.
[7] 孟德欣.VB程序设计[M].北京:清华大学出版社,2009:113-123.
作者简介:
孟德欣(1976-),男,硕士,副教授.研究领域:软件技术,图
像处理和数据挖掘.
谢二莲(1970-),女,本科,讲师.研究领域:信息化技术.endprint