摘要:主要研究基于校園業(yè)務(wù)的手機(jī)小額支付系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn),選擇J2ME作為手機(jī)客戶端應(yīng)用開發(fā)環(huán)境,遵循HTTP協(xié)議實(shí)現(xiàn)服務(wù)器與手機(jī)客戶端的交互。系統(tǒng)包含客戶和管理兩個(gè)子系統(tǒng),主要提供了在線注冊(cè)、充值、支付、查詢、統(tǒng)計(jì)等功能。移動(dòng)手機(jī)用戶和PC瀏覽器用戶能夠并行使用本系統(tǒng)。文章首先分析了系統(tǒng)需求,主要業(yè)務(wù)流程,然后進(jìn)行了用例和類圖的設(shè)計(jì),最后詳細(xì)介紹了系統(tǒng)所采用的關(guān)鍵技術(shù)。
關(guān)鍵詞:移動(dòng)支付;J2ME;MVC;安全
引言
移動(dòng)終端和無線通訊技術(shù)在高校校園的普及,為校園無線移動(dòng)應(yīng)用提供了大量的用戶群。同時(shí)由于校園中存在著很多小額支付的情況,例如支付圖書館借書的超期費(fèi)用、補(bǔ)選課程的差額費(fèi)用、班費(fèi)、印刷學(xué)習(xí)資料費(fèi)等。這些煩瑣的小額支付既增加了管理人員的開銷也給學(xué)生帶來了不便。因此本文考慮使用無線移動(dòng)技術(shù)來解決高校的小額支付問題,以提高辦事效率。
目前,在我國(guó)移動(dòng)在線的手機(jī)支付業(yè)務(wù)比較多的是基于智能手機(jī)終端。在這些移動(dòng)終端技術(shù)中,能處理移動(dòng)支付的有J2ME、WAP、SMS或SAT技術(shù)。J2ME技術(shù)具有可移植性、網(wǎng)絡(luò)資源消耗與服務(wù)器負(fù)載低、事務(wù)保護(hù)、安全性、容易安裝等特點(diǎn),在手機(jī)支付領(lǐng)域中占了比較大的優(yōu)勢(shì)。因此我們擬采用J2ME技術(shù)實(shí)現(xiàn)高校移動(dòng)小額支付系統(tǒng)。
1、系統(tǒng)需求分析和用例設(shè)計(jì)
1.1手機(jī)小額支付相關(guān)概念和問題
手機(jī)支付也稱為“移動(dòng)支付”,它是在移動(dòng)運(yùn)營(yíng)商和商業(yè)銀行之間加入第三方構(gòu)筑的轉(zhuǎn)接平臺(tái),實(shí)現(xiàn)“一點(diǎn)接入、多家服務(wù)”的業(yè)務(wù)模式。通常基于手機(jī)的業(yè)務(wù)項(xiàng)目可以分為四大類:查詢、繳費(fèi)、消費(fèi)、轉(zhuǎn)賬。例如,現(xiàn)在信息查詢可以包括:股票行隋、商品防偽編碼、考分查詢、交通信息、天氣預(yù)報(bào)等。第三方的介入,使銀行和移動(dòng)運(yùn)營(yíng)商之間在技術(shù)、業(yè)務(wù)等合作領(lǐng)域有了更為廣闊的發(fā)展空間,它對(duì)移動(dòng)電子商務(wù)的市場(chǎng)開拓起到了催化劑的作用。
在手機(jī)支付中一個(gè)極其重要的問題是安全問題。為此,一方面需要銀行對(duì)用戶的交易密碼和一些敏感數(shù)據(jù)做加密處理,同時(shí)又要讓業(yè)務(wù)系統(tǒng)獨(dú)立處理業(yè)務(wù)往來,對(duì)于系統(tǒng)業(yè)務(wù)的訪問要有安全日志等監(jiān)測(cè)措施。校園小額支付系統(tǒng)可以作為第三方移動(dòng)業(yè)務(wù)服務(wù)提供商來促進(jìn)移動(dòng)電子商務(wù)在高校的發(fā)展,并且在財(cái)務(wù)的結(jié)算上可以與原有校園網(wǎng)中的財(cái)務(wù)管理系統(tǒng)相結(jié)合,獨(dú)立于銀行的業(yè)務(wù)往來。因此它將更具有高校內(nèi)部網(wǎng)特性,更能滿足安全性的要求。
1.2系統(tǒng)需求分析和用例設(shè)計(jì)
本系統(tǒng)向普通用戶(包括手機(jī)終端用戶和PC瀏覽器終端用戶)和管理員提供小額支付業(yè)務(wù)服務(wù)。整個(gè)系統(tǒng)分為普通用戶子系統(tǒng)和管理員子系統(tǒng)。其中向普通用戶提供在線注冊(cè)、個(gè)人信息管理、在線充值、查詢公告、在線支付、賬單查詢功能;向系統(tǒng)管理員提供包括個(gè)人信息管理、在線查詢、在線生成充值卡等功能。
1.2.1服務(wù)器端主要用例
服務(wù)器端面向系統(tǒng)管理員,主要有以下用例:
公告管理向系統(tǒng)管理員提供公告的添加、查詢、修改和刪除功能。
交易信息管理提供交易信息的統(tǒng)計(jì)和查詢。
免值管理提供生成充值卡功能。系統(tǒng)生成一定數(shù)量的充值卡,并將充值卡信息寫入數(shù)據(jù)庫??梢杂贸渲悼▽?shí)現(xiàn)學(xué)生賬號(hào)的充值。并能進(jìn)行充值卡和學(xué)生賬戶資金一致性檢查和查詢。管理員可以查詢系統(tǒng)記錄的所有充值記錄,以便日后核對(duì)業(yè)務(wù)總量。
賬號(hào)管理提供學(xué)生賬號(hào)的管理、查詢、掛起和注銷功能。一些高校已經(jīng)建立了學(xué)生的財(cái)務(wù)賬號(hào),例如:很多高校已經(jīng)給學(xué)生開設(shè)了校園卡,學(xué)生有惟一的賬號(hào),校園卡可以由學(xué)生充值。否則,需要給每個(gè)學(xué)生設(shè)立一個(gè)惟一識(shí)別的財(cái)務(wù)賬號(hào),賬號(hào)可以和學(xué)生證號(hào)相關(guān)聯(lián)。
交易信息的合法性檢查提供對(duì)交易信息的合法性管理,防止出現(xiàn)非法的交易事件,可以采用手工的或自動(dòng)的檢測(cè)和過濾機(jī)制。在本系統(tǒng)中目前還是采用了手工的方式。
1.2.2客戶端主要用例
在客戶端面向手機(jī)用戶或PC瀏覽器用戶,以下針對(duì)手機(jī)用戶給出客戶端的主要用例:
用戶管理提供用戶數(shù)據(jù)的存儲(chǔ)和管理功能。用戶通過注冊(cè),登錄后可以使用各個(gè)模塊的功能。同時(shí)用戶也有權(quán)利將開通的賬號(hào)注銷掉。
在線繳費(fèi)提供在線支付和轉(zhuǎn)賬功能。主要是實(shí)現(xiàn)校園各服務(wù)機(jī)構(gòu)的在線小額費(fèi)用收取。在線支付費(fèi)用,包括支付借書超期費(fèi)用、支付圖書賠償費(fèi)用、支付重修費(fèi)用、支付等級(jí)考試費(fèi)用、支付圖像采集費(fèi)用、支付水費(fèi)、支付電費(fèi)等。金額的輸入可通過購買和輸入充值卡兩種方式進(jìn)行。轉(zhuǎn)賬是指賬面金額在兩個(gè)手機(jī)賬號(hào)之間的轉(zhuǎn)移。
在線查詢提供各種賬目的明細(xì)查詢。在系統(tǒng)上使用支付和買賣功能或者轉(zhuǎn)賬功能后會(huì)產(chǎn)生相應(yīng)的賬單,用戶可以查詢一定時(shí)間內(nèi)的賬單。
在線服務(wù)向注冊(cè)用戶提供天氣的查詢,新聞通告以及投訴建議的發(fā)布和相關(guān)信息查看功能。
在線交易提供類似于有線網(wǎng)絡(luò)的信息發(fā)布平臺(tái),系統(tǒng)采用手機(jī)客戶端發(fā)布交易信息并同時(shí)提供買賣商品的功能。
系統(tǒng)存儲(chǔ)及安全管理提供本地?cái)?shù)據(jù)的存儲(chǔ)管理和安全管理。
1.3主要的業(yè)務(wù)流程
在圖1中,我們給出了系統(tǒng)的主要業(yè)務(wù)流程分析。
2、系統(tǒng)主要類圖設(shè)計(jì)
2.1服務(wù)器端系統(tǒng)設(shè)計(jì)和主要類圖
為實(shí)現(xiàn)上述的用例分析和業(yè)務(wù)流程,在服務(wù)器端主要設(shè)計(jì)了普通用戶類、管理員類、支付賬單類、充值卡類、充值記錄類、公告類、部門類、轉(zhuǎn)賬賬單類。類之間的關(guān)系如圖2所示。
2.2基于J2ME技術(shù)的客戶端支付界面的主要類圖
客戶端除了用戶、賬號(hào)、天氣、商品、部門、賬單、轉(zhuǎn)賬、在線服務(wù)、充值卡以及對(duì)應(yīng)于本地存儲(chǔ)的對(duì)象賬單存儲(chǔ),卡號(hào)存儲(chǔ)類外,基于J2ME的技術(shù)的手機(jī)端支付界面的主要類圖如圖3所示。
客戶端界面包含了Form、List、TextBox、Alert類等,這些類繼承Screen父類,而Screen類又實(shí)現(xiàn)Displayable接口。Form類中命令主要實(shí)現(xiàn)CommandListener接口,提供相應(yīng)按鈕事件。Canvas類,通過指針繪制接受用戶的輸入,觸發(fā)keyPressed()事件相應(yīng)用戶請(qǐng)求,通過paint方法繪制需要繪制的對(duì)象。
3、關(guān)鍵技術(shù)
3.1基于MVC模式設(shè)計(jì)方法
本系統(tǒng)在設(shè)計(jì)時(shí)采用了MVC模式,如圖3所示。在模型層封裝了模型的狀態(tài)、負(fù)責(zé)響應(yīng)模型狀態(tài)的查詢、應(yīng)用程序的功能,如卡號(hào)、賬單等信息,或者保存對(duì)象的狀態(tài)。當(dāng)狀態(tài)改變的時(shí)候通知視圖改變模型狀態(tài)。
控制層用來處理用戶請(qǐng)求,負(fù)責(zé)選擇響應(yīng)的視圖,定義事件行為,以及通知模型狀態(tài)的改變或者讀取模型狀態(tài)。
終端支付的實(shí)現(xiàn)過程主要抽象為以下的一些視圖,這些視圖是組成視圖層的核心界面類。其中主菜單界面類用以控制生成主菜單界面。進(jìn)度條界面類是在程序需要到后臺(tái)線程運(yùn)行的時(shí)候,為用戶提供的線程處理信息的界面類。在運(yùn)行的時(shí)候可分為可終止任務(wù)和不可終止任務(wù)型兩種級(jí)別的界面類。用戶交互界面類包括支付界面類、購買界面類、查詢界面類。在每個(gè)界面提供控制器響應(yīng)行為時(shí)候,需要用戶輸入數(shù)據(jù)。因此,上述界面類都提供了用戶輸入數(shù)據(jù)的界面。
3.2服務(wù)器和客戶端的連接以及數(shù)據(jù)的傳輸
由于無線設(shè)備所能支持的網(wǎng)絡(luò)協(xié)議非常有限,僅限于HTTP、Socket和UDP等幾種協(xié)議,為了能在不同類型的手機(jī)上移植,我們盡量采用HTTP作為網(wǎng)絡(luò)連接的首選協(xié)議。由于HTTP是一個(gè)基于文本的效率較低的協(xié)議,因此,必須仔細(xì)考慮手機(jī)和服務(wù)器端的通信內(nèi)容,盡可能地提高效率。服務(wù)器通過消息常量選擇處理事件請(qǐng)求的Servlet調(diào)用的方法。
在J2ME下API不支持對(duì)象的序列化,標(biāo)準(zhǔn)的API沒有實(shí)現(xiàn)Serialable接口,需要設(shè)計(jì)實(shí)現(xiàn)對(duì)象的序列化和反序列化。對(duì)象的序列化可以把對(duì)象的狀態(tài)保存在本地存儲(chǔ)中或者通過反序列化取得對(duì)象的狀態(tài)??刂破髟谕ㄖP透淖兡硞€(gè)對(duì)象的狀態(tài)時(shí),通過序列化和反序列化可以保持對(duì)象狀態(tài)的一致性和連續(xù)性。在本系統(tǒng)的設(shè)計(jì)中我們通過serialize實(shí)現(xiàn)序列化,通過desefialize實(shí)現(xiàn)反序列化。序列化和反序列化是一個(gè)相反的過程,在實(shí)現(xiàn)過程中,序列化和反序列化數(shù)據(jù)必須對(duì)應(yīng)。
3.3采用的安全技術(shù)
本系統(tǒng)的設(shè)計(jì)不涉及和銀行的數(shù)據(jù)交互,只與高校內(nèi)部需要小額支付的那部分財(cái)務(wù)管理關(guān)聯(lián)。因此這里主要考慮校園內(nèi)部和本系統(tǒng)自身的安全。我們將所采用的安全技術(shù)歸納為以下幾點(diǎn):
(1)用戶的身份認(rèn)證和訪問控制權(quán)限
在系統(tǒng)服務(wù)器端,本系統(tǒng)設(shè)置管理員身份的認(rèn)證,并實(shí)施了基于RBAC的訪問控制權(quán)限。本系統(tǒng)進(jìn)行了企業(yè)級(jí)CA的配置,對(duì)可以進(jìn)行充值卡生成的管理員需要經(jīng)過嚴(yán)格的基于X.509的身份認(rèn)證。利用RBAC芝術(shù)將管理員細(xì)分為公告管理,賬單管理,交易合法性管理和賬號(hào)管理與充值卡管理幾個(gè)不同角色。其中充值卡管理具有獨(dú)立的權(quán)限,并對(duì)他的操作進(jìn)行嚴(yán)格的日志記錄和審計(jì)。
(2)數(shù)據(jù)的眷名和內(nèi)容的加密傳輸
在MIDP1.0規(guī)范中并不提供對(duì)HTTPS支持,傳輸?shù)臄?shù)據(jù)的安全性通過使用第三方的一些輕量級(jí)的加密包進(jìn)行。J2ME的MIDP 2.0定義了Javax.microedition.pki包,定義了在安全連接中鑒別證書信息的一些API接口,支持x509證書的PKI;它所定義的API接口可以檢查如確定證書的版本號(hào),有效期,證書類型等信息等,使交易雙方可以通過證書進(jìn)行身份認(rèn)證。本系統(tǒng)采用了開源的加密包Bouncy Castle Crypto API,可以進(jìn)行xml數(shù)字簽名和數(shù)據(jù)加密等。關(guān)鍵數(shù)據(jù)例如充值卡密碼,登錄用密碼均以加密的方式進(jìn)行網(wǎng)絡(luò)傳輸。充值卡設(shè)置為小額面值,密碼是一個(gè)隨機(jī)數(shù)。
(3)數(shù)據(jù)存儲(chǔ)的加密和對(duì)操作曲日志審計(jì)
本系統(tǒng)將重要數(shù)據(jù)信息轉(zhuǎn)化為MD5加密形式后在數(shù)據(jù)庫中保存,防止出現(xiàn)數(shù)據(jù)泄露后的明文顯示。譬如充值卡的密碼信息都以加密的方式存儲(chǔ)。對(duì)重要的操作,譬如管理員的操作,都記錄在日志文件中,以備必要的審計(jì)和事件的跟蹤。手機(jī)端的登錄密碼不進(jìn)行緩存,并定期通過短信方式提醒更新。
4、結(jié)束語
本文設(shè)計(jì)和實(shí)現(xiàn)了基于J2ME技術(shù)的高校小額支付系統(tǒng)。該系統(tǒng)能夠?qū)Ω咝W(xué)生的手機(jī)用戶提供基于移動(dòng)終端的查詢、支付、轉(zhuǎn)賬、商品交易等功能。這些功能也向PC瀏覽器用戶提供。該系統(tǒng)能保證在具有校園網(wǎng)的高校廣泛使用小額支付業(yè)務(wù)。文章詳細(xì)分析了該系統(tǒng)的需求和業(yè)務(wù)流程,并給出了系統(tǒng)的主要類圖和關(guān)鍵技術(shù)的實(shí)現(xiàn)。該系統(tǒng)能提高校園中的小額支付的便捷性和靈活性,因此具有一定的實(shí)用價(jià)值,是一次移動(dòng)業(yè)務(wù)在高校校園中的推廣和實(shí)踐。在今后的工程實(shí)踐中,我們將進(jìn)一步改進(jìn)支付業(yè)務(wù)、加強(qiáng)系統(tǒng)的安全性。