一卡通小錢包在對接技術中的應用與實現
文章出處:http://www.nyfzw.net 作者:周 鵬,魏宗壽,郭榮昌 人氣: 發表時間:2011年11月12日
數字化校園的發展促使越來越多的高校引入了校園一卡通。為了繼續利用現有的卡務系統如圖書管理、水控POS系統等,須進行不同卡務系統的對接。
引言
在高校校園一卡通系統中,學校很多部門已經應用了一些較為成熟的應用管理系統,如:水控電控系統、圖書借閱系統、網上查詢系統、OA系統等,但采用的開發平臺各不相同,各種類型的數據庫系統同時并存,有Foxpro、Access等桌面型數據庫管理系統,也有SQL Server、Oracle、Sybase等大中型數據庫系統[1]。
為了實現不同卡務系統的對接,本文提出了基于校園一卡通系統對接技術的解決方案,解決了校園一卡通與水控系統的對接。
1 一卡通系統平臺介紹
1.1 一卡通系統結構
系統采用標準的三層架構:數據層、應用層、訪問層,實現數據與業務徹底分離。針對不同的業務流,采用不同的結構:針對賬務上傳、黑名單下載、POS機輪詢等業務,一般采用C/S的結構能充分發揮客戶端PC的處理能力;針對學生Web查詢余額、網上自助掛失等業務,采用B/S模式,以方便學生查詢和維護管理[2]。
1.2 一卡通系統主要構成部分
⑴ 中心核心服務器:提供基礎數據庫,負責賬務信息處理、圈存業務、掛失業務、查詢業務、系統管理、設備管理等。這些功能構成了一卡通系統的核心功能。
⑵ 備份服務器:負責同步備份中心核心數據庫,保障數據的安全。
⑶ 查詢服務器:提供各個客戶端的查詢業務。
⑷ 前臺工作站:采集前臺POS消費機的消費流水、上傳流水、同步黑名單。
⑸ 刷卡機(POS消費機):提供刷卡消費功能。
⑹ 依托網絡:在校園網上劃分出一卡通Vlan,使工作站、服務器、圈存機等互聯。
⑺ 應用系統:與校園一卡通相結合的其他系統,如圖書管理系統,水控消費系統,機房管理系統等。
1.3 流水上傳及圈存
1.3.1 一卡通系統的流水上傳工作模式:由前臺刷卡機自動扣除卡片消費金額,保留消費記錄到本機,待網絡空閑時上傳至前臺工作站,工作站將采集的流水批量上傳至中心服務器,由中心服務器負責賬務結算,按月匯總結算報表。
1.3.2 圈存采用學生自助圈存:學生到圈存機上插入校園一卡通與銀行卡,待驗證有效之后,從銀行卡上劃撥相應金額至校園一卡通,中心服務器做記賬記錄。銀行按月將劃入的一卡通轉賬金額轉入校園一卡通集體賬戶,由校財務處統一進行商戶結算。
1.4 數據存儲管理方法
采用分布式數據存儲的方法,包括前臺消費POS、前臺工作站、中心核心服務器、備份服務器,從而保證了數據的一致性與可靠性。
2 對接方案的分析
2.1 系統對接背景
某高校的在用系統包括校園一卡通系統與水控系統,這兩個系統處于不同的開發平臺且相互獨立。為了將水控系統納入校園一卡通的統一管理,提出了系統對接的解決方案。
2.2 系統對接技術的實現方案
兩個系統維持現有功能不變,只在系統間通過一個物理的水控應用小錢包實現與校園卡主電子錢包余額的共享。小錢包密鑰、校驗算法與一卡通系統共同協商開發。
為了使小錢包在使用時對持卡人及業務管理人員透明,一方面,需要轉移部分小錢包賬號管理業務功能,轉移包括小錢包開戶、賬號掛失、賬號解掛等功能并集成到一卡通系統的現有功能中去,在系統間實現交易數據的自動同步,實現賬號管理業務數據的共享;另一方面,通過小錢包實現主錢包資金在水控應用中的共享使用。
2.3 小錢包格式,扇區格式及總體框架
為水控系統設計的錢包存儲于2個扇區:
⑴ 主扇區:存儲卡片基本信息。
⑵ 備份扇區:存儲卡片消費,及校驗等設置信息。
扇區劃分為塊0與塊1,兩者的格式一樣,參照表1。
塊0:電子錢包區(公用部分、備份區)
塊1:電子錢包區(公用部分,原數據區)
3 對接方案的實現
3.1 一卡通系統業務流程圖
3.2 開戶充值功能實現
一卡通系統根據水控系統提供的寫卡方式、規則等,將金額寫入指定扇區。依據圖1的設計,詳細實現功能如下。
3.2.1 小錢包賬號開戶:由一卡通系統為水控系統開設一個小錢包賬號,該賬號在初次刷卡后自動隱含地生成。開戶后,系統會在一卡通的某一空閑扇區上開辟一個物理小錢包,同時在一卡通后臺賬戶表中開設小錢包賬號。賬號創建的同時在一卡通系統中產生一條小錢包開戶交易流水記錄,并立即自動同步到一卡通系統的“通用業務前置系統”數據庫中,水控系統即可從此中間庫同步到水控小錢包賬號開戶的交易記錄。
3.2.2 水控簽到(小錢包賬號充值):小錢包的充值操作隱含在水控簽到業務操作中,從而實現對用戶的透明化。用戶簽到時,系統首先會檢查此校園卡的合法性,然后檢查主錢包和小錢包的余額,計算出本次應向小錢包充入金額(為默認的消費額度減小錢包余額),并完成主錢包向小錢包的轉賬充值。同時,在數據庫中記錄下此卡的簽到信息。正常完成水控簽到后,小錢包內即已充入可供本次用水所需的費用,接下來可在水控系統中進行用水消費支付。
3.3 消費功能的實現
水控系統業務流程如圖2所示。
⑴ 控水終端讀取此小錢包扇區的金額。
⑵ 根據水控系統預先設置的費率扣除小錢包的余額。并產生消費流水,備份到水控系統數據庫里。
⑶ 控水終端只取小錢包里面的余額,根據小錢包里面的金額消費。
⑷ 對于小錢包的扣款不產生負數,扣款到小錢包金額為零為止,控水寫卡不存在透支。如果小錢包的金額為零,控水不能再次使用。
3.4 水控簽退(小錢包賬號退款)
水控簽退,一方面是為了給一卡通系統的結算提供基礎的消費交易流水記錄,以統計出水控系統交易的結算報表;另一方面是為了實現主錢包余額與小錢包余額的共享。
3.4.1 正常簽退情況:讀取校園卡信息,查詢簽到表以確認此次刷卡完成簽退。然后,將小錢包中的全部余額轉賬到主錢包,并根據簽到時小錢包的轉入金額與此時的轉出金額之差,生成小錢包消費交易流水記錄,存入數據庫中,同時清除簽到記錄的標志。即完成了一次完整的水控消費功能。
3.4.2 異常處理:若持卡人在水控系統使用過程中丟失了其校園卡,或者出門時忘記進行簽退時,為保證系統賬目的完整性,需要進行異常處理。有兩種方案:
⑴ 引入“手工簽退”功能來結束簽退操作。調用水控提供的賬號消費查詢API接口,查詢統計出每個未簽退小錢包賬號的實際消費金額,并按正常簽退一樣的方式在系統中產生和存儲小錢包消費交易流水記錄,并進行手工簽退。此時,其小錢包中可能還存在未消費完的余額,此余額尚未轉入主錢包。
⑵ 為解決“手工簽退”存在無法將小錢包余額轉入主錢包的問題,采用“下次簽退”,當下次刷卡時,若上次沒有正常簽退,則先進行正常簽退再進行簽到。
3.5 賬號掛失與解掛
賬號掛失、解掛時,一卡通系統中產生交易流水記錄并立即自動同步到一卡通系統的“通用業務前置系統”數據庫中,水控系統即可從此數據庫動態同步到掛失或解掛記錄。
3.6 消費結算
水控系統以動態庫的形式提供小錢包的消費數據,一卡通系統調用獲取。一卡通根據水控系統在簽退時產生的消費交易流水記錄來統計生成水控消費的結算報表。
3.7 數據同步接口
3.7.1 一卡通提供的交易數據同步接口:通過通用業務前置系統,使一卡通系統中產生的交易數據能夠及時、準確、安全地同步到水控系統中。為實現交易數據及時增量同步,系統中采用版本號進行管理。新流水記錄的版本號最大。水控系統需要定時查詢中間庫中的小錢包交易表,將最新產生的交易記錄取出存放到水控系統自身的交易記錄表中,同時修改相應賬號的數據。
3.7.2 水控系統提供的接口:為了使現有水控系統的設計不變,小錢包的格式以水控系統的格式為依據。水控系統需要提供Win32平臺的動態鏈接庫(DLL)接口給一卡通系統。為實現無卡簽退功能,需要水控提供小錢包某時段消費總額統計查詢接口,此接口可傳入一個小錢包賬號、起始時間參數,傳出從起始時間至當前時間的消費總金額,并可通過返回值確定接口調用是否成功。
4 結束語
利用一卡通提供的空閑扇區,開辟一個“小錢包”作為水控系統和一卡通系統的信息共享區,從而實現了校園一卡通系統與水控管理系統的成功對接。這是一個成功對接的案例。本方案也適用于機房管理系統與圖書借閱系統等。目前我校的機房管理與圖書借閱系統均已成功納入一卡通系統的統一管理且運行良好。本方案可操作性強,對原系統沒有任何影響,具有通用性。本文的成功案例為學校信息化的全面發展和應用系統的整合提供了解決方案。