孟德欣 謝二蓮
摘 要:針對當(dāng)前手工錄入個人基本信息效率低的問題,提出一種基于二代身份證的房屋產(chǎn)權(quán)交易代理系統(tǒng)。首先該系統(tǒng)采用USB接口連接二代身份證讀卡器,然后在VB6開發(fā)平臺中利用動態(tài)鏈接庫技術(shù),采取機讀方法來讀取二代身份證的個人基本信息,并快速有效的識別身份證真?zhèn)?,最后實時存儲在數(shù)據(jù)庫中。實驗結(jié)果表明,基于二代身份證的機讀方法有效解決了個人基本信息錄入的效率問題,能夠滿足系統(tǒng)對客戶基本信息的錄入驗證要求,具有較好的市場應(yīng)用前景。
關(guān)鍵詞:動態(tài)鏈接庫;二代身份證;客戶端/服務(wù)器;產(chǎn)權(quán)交易
中圖分類號:TP311.52 文獻(xiàn)標(biāo)識碼:A
1 引言(Introduction)
GTICR100是國騰電子推出的一款支持第二代身份證技術(shù)規(guī)范的讀卡器,具有穩(wěn)定性好、可靠性高、讀卡時間快等優(yōu)點,并且提供開放的應(yīng)用程序接口(API),可供用戶進(jìn)行二次開發(fā)應(yīng)用程序,該API接口支持多款主流軟件開發(fā)平臺[1]。目前已廣泛應(yīng)用于公安、銀行、酒店、電信和民政等各行業(yè)[2]。
二代身份證采用內(nèi)置的射頻芯片存儲個人基本信息,包括如身份證號、姓名、性別、出生年月和照片等。二代身份證采用數(shù)字防偽和印刷防偽技術(shù)來保證數(shù)據(jù)安全,卡內(nèi)信息的讀取支持機讀和視讀兩種方式。數(shù)字防偽將個人信息數(shù)字化后采用密碼技術(shù)加密存入芯片,防止偽造或篡改卡內(nèi)的信息,用于機讀信息的防偽。印刷防偽通過證件表面的防偽標(biāo)識實現(xiàn)視讀防偽。二代身份證的讀卡器使用串口或USB接口與計算機連接,在將身份證接近讀卡器的感應(yīng)區(qū),即可以采取機讀方式讀取二代身份證的信息,機讀方式非常便于外部程序的系統(tǒng)集成[3]。
房屋產(chǎn)權(quán)交易代理系統(tǒng)的數(shù)據(jù)量較大,該系統(tǒng)要求準(zhǔn)確快速的錄入并驗證客戶信息的真?zhèn)?。傳統(tǒng)的做法是手工輸入客戶信息,耗時且比較容易出錯,操作效率低。本文介紹系統(tǒng)通過調(diào)用動態(tài)鏈接庫文件中的函數(shù),通過解密模塊將存儲在二代身份證的個人信息解密為ANSI編碼方式,直接顯示或者存儲在數(shù)據(jù)庫中[4]。同時,系統(tǒng)還利用二代身份證讀卡器識別身份證的真?zhèn)?,有效避免了非法客戶信息的輸入,保障系統(tǒng)的安全[5]。
2 系統(tǒng)架構(gòu)設(shè)計(System framework design)
基于二代身份證的房屋產(chǎn)權(quán)交易代理系統(tǒng)采用客戶端/服務(wù)器(C/S)和瀏覽器/服務(wù)器(B/S)模式混合結(jié)構(gòu)設(shè)計。其中,C/S模式用于業(yè)務(wù)數(shù)據(jù)輸入及流程處理,其中的二代身份證讀取模塊連接客戶與客戶端軟件的橋梁,是系統(tǒng)的核心模塊。B/S模式用于向客戶提供查詢功能,以便客戶及時了解業(yè)務(wù)辦理流程信息[6]。
房屋產(chǎn)權(quán)交易代理系統(tǒng)由數(shù)據(jù)庫服務(wù)器、WEB服務(wù)器、應(yīng)用客戶端、WEB查詢終端、身份證讀取模塊、客戶等組成。
系統(tǒng)總體架構(gòu)如圖1所示。
圖1 系統(tǒng)框圖
Fig.1 System framework diagram
3 系統(tǒng)功能設(shè)計(System function design)
房屋產(chǎn)權(quán)交易代理系統(tǒng)是以國家相關(guān)法律及房屋產(chǎn)權(quán)代辦有關(guān)規(guī)定而開發(fā),為房屋的產(chǎn)權(quán)代辦登記、稅費繳納等核心業(yè)務(wù)工作提供的一個有效而科學(xué)的信息化操作平臺,使房屋產(chǎn)權(quán)辦理工作規(guī)范、透明和高效[7]。
系統(tǒng)實現(xiàn)了樓盤管理、客戶管理、代辦登記、稅費繳納、查詢統(tǒng)計等主要功能。
樓盤管理實現(xiàn)樓盤基本信息管理,樓盤基本信息包括樓盤名稱、開發(fā)商信息、交付時間、房屋類型和聯(lián)系方式等,系統(tǒng)可對之進(jìn)行導(dǎo)入、修改和刪除等操作。
客戶管理可對客戶基本信息進(jìn)行維護(hù),系統(tǒng)通過二代身份證打開設(shè)備讀出客戶基本信息,核對無誤后錄入數(shù)據(jù)庫。
代辦登記根據(jù)客戶申請選擇相應(yīng)的登記類別進(jìn)行登記,核對客戶提供的資料無誤后保存并打印收件清單。收件資料保存完成后,系統(tǒng)根據(jù)客戶的房屋信息自動計算稅費,待客戶確認(rèn)并預(yù)交稅費款項,打印客戶回執(zhí)單,完成代辦登記流程。
稅費繳納由受理人登記客戶的稅費實際支出信息,系統(tǒng)支持對每一個客戶稅費自動進(jìn)行結(jié)算計算,匯總結(jié)算信息。
查詢統(tǒng)計支持在系統(tǒng)查詢收件收款的情況,統(tǒng)計制定時間段內(nèi)的業(yè)務(wù)辦理情況,可以通過設(shè)置不同的查詢條件。客戶可以通過WEB瀏覽器自主查詢辦理流程以及繳費項目等。
此外,系統(tǒng)還支持?jǐn)?shù)據(jù)備份、權(quán)限管理、用戶管理和系統(tǒng)管理等功能。系統(tǒng)功能模塊如圖2所示。
圖2 系統(tǒng)功能模塊
Fig.2 System function module
4 系統(tǒng)實現(xiàn)(System implementation)
4.1 二代身份證的讀卡函數(shù)
二代身份證讀卡器GTICR100在本系統(tǒng)中采用USB接口連接計算機,在外部程序中通過調(diào)用GTICR100提供的動態(tài)連接庫termb.dll、WltRS.dll文件來讀取二代身份證信息。其中termb.dll是主文件,termb.dll調(diào)用WltRS.dll文件,發(fā)布程序時需將這兩個動態(tài)鏈接庫文件放在應(yīng)用程序所在的同一個目錄下。
termb.dll文件提供了一系列操作身份證的函數(shù),詳見表1。
表1 termb.dll提供的函數(shù)列表
Tab.1 List function provided by termb.dll
函數(shù)定義 說明
InitComm(int Port) 初始化連接
CloseComm() 關(guān)閉連接
Authenticate() 卡認(rèn)證
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) 讀取發(fā)證機關(guān)信息
GetStartDate(char *strTmp, int strLen) 讀取有效啟始日期
GetEndDate(char *strTmp, int strLen) 讀取有效截止日期
GetReserve(char *strTmp, int strLen) 讀取保留信息
SetBaseData(char *TxtFileName) 設(shè)置基本信息
SetPhotoData(char *WltFileName) 設(shè)置照片WLT信息
其中,InitComm初始化連接函數(shù)支持的串口值從1到16,USB接口值從1001到1016。二代身份證的文字信息采用GB 13000的UCS-2編碼方式進(jìn)行存儲;讀卡函數(shù)Read_Content可以讀取文字和照片信息,將Active參數(shù)設(shè)置為不同參數(shù)值可持讀取不同類型信息,詳見表2。
表2 Active參數(shù)設(shè)置
Tab.2 Active parameter value
設(shè)置值 作用 說明
1 讀基本信息 文字信息文件WZ.TXT、照片文件XP.WLT和ZP.BMP
2 只讀文字信息 文字信息文件WZ.TXT、照片文件XP.WLT
3 讀最新住址信息 住址文件NEWADD.TXT
5 讀芯片管理號 二進(jìn)制文件IINSNDN.bin
GetPeopleName、GetPeopleSex等函數(shù)讀用戶信息函數(shù)組用于讀取當(dāng)前系統(tǒng)緩沖中的二代身份證卡內(nèi)信息,函數(shù)將讀取的字符信息全部轉(zhuǎn)為ANSI編碼方式并直接顯示,且對一些字段并按相關(guān)標(biāo)準(zhǔn)作了相應(yīng)轉(zhuǎn)換,如將性別編碼(如1)轉(zhuǎn)換成相應(yīng)的文字信息“男”,將民族編碼(如01)轉(zhuǎn)換成了相應(yīng)的文字信息“漢”。
SetBaseData、SetPhoteData函數(shù)用于在無卡狀態(tài)下解析保存在文件中的二代證信息。其中SetBaseData用于解析文字信息文件WZ.TXT,在傳入Termb.dll中后將解析人員的文字基本信息,再通過調(diào)用GetPeopleName等讀用戶信息函數(shù)獲取信息。SetPhoteData函數(shù)用于解析XP.WLT照片文件,同樣由termb.dll將WLT文件解壓成BMP文件,再通過調(diào)用GetPhotoBMP函數(shù)獲得BMP格式的照片文件。
4.2 讀取二代身份證的信息
動態(tài)鏈接庫termb.dll文件支持VC、VB、DELPHI和PB等多種開發(fā)工具來調(diào)用,在安裝支持相應(yīng)操作系統(tǒng)的USB驅(qū)動程序后,在VB6中調(diào)用動態(tài)聯(lián)接庫termb.dll文件來讀取二代身份證信息,需在工程中的模塊中聲明函數(shù)列表,如Read_Content函數(shù)的聲明代碼如下:
Public Declare Function Read_Content Lib "termb.dll" (ByVal Active As Integer) As Integer
其他的二代證身份證的函數(shù)聲明類似,接著在讀取二代身份證的事件代碼中,調(diào)用初始化連接函數(shù)InitComm,本系統(tǒng)使用默認(rèn)的USB接口號1001,調(diào)用認(rèn)證函數(shù)Authenticate對所讀卡的真?zhèn)芜M(jìn)行認(rèn)證,再使用讀卡函數(shù)Read_Content讀取卡中數(shù)據(jù),就可以將讀取個人信息并顯示或保存到數(shù)據(jù)庫中,下面的代碼將個人身份信息在程序界面中的標(biāo)簽上直接顯示。
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 將二代身份證信息存入數(shù)據(jù)庫
為了方便使用,可以定義一個結(jié)構(gòu)體保存從二代身份證中讀取的數(shù)據(jù)。如下面的結(jié)構(gòu)體:
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
在將二代身份證的個人基本信息讀取出來以后,就可以調(diào)用數(shù)據(jù)庫存儲模塊將這些數(shù)據(jù)保存到數(shù)據(jù)庫中,供后續(xù)流程來操作。如下面的代碼:
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
這樣,客戶信息將被存入數(shù)據(jù)庫。
5 結(jié)論(Conclusion)
本文設(shè)計并實現(xiàn)了基于二代身份證的房屋產(chǎn)權(quán)交易代理系統(tǒng),該系統(tǒng)利用USB接口讀卡器連接,調(diào)用動態(tài)鏈接庫文件的讀卡函數(shù),快速有效的讀取和驗證客戶身份信息,并實時存入數(shù)據(jù)庫中。實踐證明該系統(tǒng)運行穩(wěn)定,有效的減少了工作人員的繁瑣錄入,方便有效,具有一定的應(yīng)用推廣價值。
參考文獻(xiàn)(References)
[1] 程玉娟,姚健東,王宜懷.基于二代身份證的RFID門禁考勤系
統(tǒng)[J].計算機應(yīng)用與軟件,2011,28(3):44-46.
[2] 國騰電子公司.二代居民身份證閱讀器GTICR-100函數(shù)包
使用手冊[Z].2013.
[3] 杜垚.第二代身份證閱讀器在招生報名系統(tǒng)中的集成和應(yīng)用
[J].成都航空職業(yè)技術(shù)學(xué)院學(xué)報,2013,29(1):52-54.
[4] 楊令省,等.派出所綜合信息管理系統(tǒng)應(yīng)用模型研究[J].計算
機應(yīng)用與軟件,2012,29(8):234-236.
[5] 鄭智華.基于GIS技術(shù)的房屋產(chǎn)權(quán)登記管理信息系統(tǒng)的研究
和實踐[D].浙江:浙江工業(yè)大學(xué),2008.
[6] 仝虎.高校身份證信息采集系統(tǒng)設(shè)計與實現(xiàn)[J].軟件導(dǎo)刊,
2010,9(6):85-87.
[7] 孟德欣.VB程序設(shè)計[M].北京:清華大學(xué)出版社,2009:113-123.
作者簡介:
孟德欣(1976-),男,碩士,副教授.研究領(lǐng)域:軟件技術(shù),圖
像處理和數(shù)據(jù)挖掘.
謝二蓮(1970-),女,本科,講師.研究領(lǐng)域:信息化技術(shù).endprint
Id As String * 18
Department As String * 30
StartTime As Date
Endtime As Date
Reserve As String * 36
PhotoPathAs String * 255
End Type
在將二代身份證的個人基本信息讀取出來以后,就可以調(diào)用數(shù)據(jù)庫存儲模塊將這些數(shù)據(jù)保存到數(shù)據(jù)庫中,供后續(xù)流程來操作。如下面的代碼:
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
這樣,客戶信息將被存入數(shù)據(jù)庫。
5 結(jié)論(Conclusion)
本文設(shè)計并實現(xiàn)了基于二代身份證的房屋產(chǎn)權(quán)交易代理系統(tǒng),該系統(tǒng)利用USB接口讀卡器連接,調(diào)用動態(tài)鏈接庫文件的讀卡函數(shù),快速有效的讀取和驗證客戶身份信息,并實時存入數(shù)據(jù)庫中。實踐證明該系統(tǒng)運行穩(wěn)定,有效的減少了工作人員的繁瑣錄入,方便有效,具有一定的應(yīng)用推廣價值。
參考文獻(xiàn)(References)
[1] 程玉娟,姚健東,王宜懷.基于二代身份證的RFID門禁考勤系
統(tǒng)[J].計算機應(yīng)用與軟件,2011,28(3):44-46.
[2] 國騰電子公司.二代居民身份證閱讀器GTICR-100函數(shù)包
使用手冊[Z].2013.
[3] 杜垚.第二代身份證閱讀器在招生報名系統(tǒng)中的集成和應(yīng)用
[J].成都航空職業(yè)技術(shù)學(xué)院學(xué)報,2013,29(1):52-54.
[4] 楊令省,等.派出所綜合信息管理系統(tǒng)應(yīng)用模型研究[J].計算
機應(yīng)用與軟件,2012,29(8):234-236.
[5] 鄭智華.基于GIS技術(shù)的房屋產(chǎn)權(quán)登記管理信息系統(tǒng)的研究
和實踐[D].浙江:浙江工業(yè)大學(xué),2008.
[6] 仝虎.高校身份證信息采集系統(tǒng)設(shè)計與實現(xiàn)[J].軟件導(dǎo)刊,
2010,9(6):85-87.
[7] 孟德欣.VB程序設(shè)計[M].北京:清華大學(xué)出版社,2009:113-123.
作者簡介:
孟德欣(1976-),男,碩士,副教授.研究領(lǐng)域:軟件技術(shù),圖
像處理和數(shù)據(jù)挖掘.
謝二蓮(1970-),女,本科,講師.研究領(lǐng)域:信息化技術(shù).endprint
Id As String * 18
Department As String * 30
StartTime As Date
Endtime As Date
Reserve As String * 36
PhotoPathAs String * 255
End Type
在將二代身份證的個人基本信息讀取出來以后,就可以調(diào)用數(shù)據(jù)庫存儲模塊將這些數(shù)據(jù)保存到數(shù)據(jù)庫中,供后續(xù)流程來操作。如下面的代碼:
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
這樣,客戶信息將被存入數(shù)據(jù)庫。
5 結(jié)論(Conclusion)
本文設(shè)計并實現(xiàn)了基于二代身份證的房屋產(chǎn)權(quán)交易代理系統(tǒng),該系統(tǒng)利用USB接口讀卡器連接,調(diào)用動態(tài)鏈接庫文件的讀卡函數(shù),快速有效的讀取和驗證客戶身份信息,并實時存入數(shù)據(jù)庫中。實踐證明該系統(tǒng)運行穩(wěn)定,有效的減少了工作人員的繁瑣錄入,方便有效,具有一定的應(yīng)用推廣價值。
參考文獻(xiàn)(References)
[1] 程玉娟,姚健東,王宜懷.基于二代身份證的RFID門禁考勤系
統(tǒng)[J].計算機應(yīng)用與軟件,2011,28(3):44-46.
[2] 國騰電子公司.二代居民身份證閱讀器GTICR-100函數(shù)包
使用手冊[Z].2013.
[3] 杜垚.第二代身份證閱讀器在招生報名系統(tǒng)中的集成和應(yīng)用
[J].成都航空職業(yè)技術(shù)學(xué)院學(xué)報,2013,29(1):52-54.
[4] 楊令省,等.派出所綜合信息管理系統(tǒng)應(yīng)用模型研究[J].計算
機應(yīng)用與軟件,2012,29(8):234-236.
[5] 鄭智華.基于GIS技術(shù)的房屋產(chǎn)權(quán)登記管理信息系統(tǒng)的研究
和實踐[D].浙江:浙江工業(yè)大學(xué),2008.
[6] 仝虎.高校身份證信息采集系統(tǒng)設(shè)計與實現(xiàn)[J].軟件導(dǎo)刊,
2010,9(6):85-87.
[7] 孟德欣.VB程序設(shè)計[M].北京:清華大學(xué)出版社,2009:113-123.
作者簡介:
孟德欣(1976-),男,碩士,副教授.研究領(lǐng)域:軟件技術(shù),圖
像處理和數(shù)據(jù)挖掘.
謝二蓮(1970-),女,本科,講師.研究領(lǐng)域:信息化技術(shù).endprint