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