孟德欣 謝二蓮
摘 要:針對當前手工錄入個人基本信息效率低的問題,提出一種基于二代身份證的房屋產權交易代理系統。首先該系統采用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