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