王永建+楊建華+郭廣濤+王治東+翟曉微
【摘 要】為了改進(jìn)傳統(tǒng)的網(wǎng)絡(luò)支付系統(tǒng),結(jié)合移動(dòng)互聯(lián)網(wǎng)特性,首先設(shè)計(jì)了手機(jī)支付軟件系統(tǒng)架構(gòu),然后設(shè)計(jì)了系統(tǒng)的主要功能,定義了功能模塊。針對(duì)傳統(tǒng)Java的I/O不適合大量數(shù)據(jù)連接的局限性,引入了Java NI/O技術(shù),明顯地提高了系統(tǒng)的效率,并采用了最新一代移動(dòng)中間件:iMAG技術(shù),克服了傳統(tǒng)移動(dòng)中間件的不足,進(jìn)一步優(yōu)化了系統(tǒng)性能。
【關(guān)鍵詞】移動(dòng)互聯(lián)網(wǎng) SOA Java NI/O iMAG
Investigation on Mobile Phone Payment System
Based on the Mobile Internet
[Abstract]In order to improve traditional network payment systems, the mobile phone payment software system architecture was designed firstly based on characteristics of the mobile Internet. Then, main functions of the system were designed and functional modules were defined. According to the limitation of the traditional Java I/O unsuitable for massive data connections, Java NI/O technique was introduced. As the new generation of mobile middleware iMAG is used, the drawbacks of the traditional middleware was avoided to notably enhance the system efficiency and further opyimize the system performance.
[Key words]mobile Internet Service-Oriented Architecture Java NI/O iMAG
1 引言
隨著3G、LTE、WLAN等高速無(wú)線通信和互聯(lián)網(wǎng)技術(shù)的發(fā)展,移動(dòng)互聯(lián)網(wǎng)近些年炙手可熱,移動(dòng)互聯(lián)網(wǎng)由互聯(lián)網(wǎng)、無(wú)線網(wǎng)絡(luò)、智能終端構(gòu)成[1],而伴隨著二維碼、生物識(shí)別、NFC、Beacon、RFID、GIS、APP等技術(shù)的發(fā)展和智能終端的迅速普及[2],基于智能終端的應(yīng)用越來(lái)越豐富。
2012年11月誕生了互聯(lián)網(wǎng)發(fā)展的新理念:“互聯(lián)網(wǎng)+”?!盎ヂ?lián)網(wǎng)+”是基于信息傳播的傳統(tǒng)互聯(lián)網(wǎng)發(fā)展的新業(yè)態(tài),催生了大量新的產(chǎn)業(yè)經(jīng)濟(jì)形態(tài)與商業(yè)服務(wù)模式[3]。其中OTT業(yè)務(wù)迅速崛起,風(fēng)靡整個(gè)互聯(lián)網(wǎng),例如掌上購(gòu)物、在線訂票、網(wǎng)上約車(chē)、移動(dòng)支付、手機(jī)一卡通、位置服務(wù)等[4]。
支付寶、微信等突破了傳統(tǒng)即時(shí)通訊軟件的局限,作為開(kāi)放的平臺(tái),提供多種OTT服務(wù),移動(dòng)支付便是其中典型代表,與人們生活聯(lián)系日趨緊密。在新形勢(shì)下,傳統(tǒng)的網(wǎng)絡(luò)支付系統(tǒng)有些力不從心,亟待與時(shí)俱進(jìn),因此本文基于移動(dòng)互聯(lián)網(wǎng),結(jié)合傳統(tǒng)網(wǎng)絡(luò)支付系統(tǒng),對(duì)手機(jī)支付系統(tǒng)做了探究。
2 移動(dòng)互聯(lián)網(wǎng)參考模型
移動(dòng)互聯(lián)網(wǎng)(Mobile Internet)可分為終端層、網(wǎng)絡(luò)層和應(yīng)用層。WWRF(Wireless World Reserch Forum,無(wú)線世界研究論壇)定義的參考模型。
APP為用戶提供交互界面和多種服務(wù)。
開(kāi)放的API包含多種應(yīng)用接口,典型代表如.dll和.Java Package,接口程序?qū)⒕唧w應(yīng)用進(jìn)行封裝,若涉及到與其它系統(tǒng)對(duì)接,只需要其它應(yīng)用系統(tǒng)對(duì)程序進(jìn)行相應(yīng)調(diào)整即可[5]。
移動(dòng)中間件處于手機(jī)操作系統(tǒng)與業(yè)務(wù)系統(tǒng)之間,實(shí)現(xiàn)不同應(yīng)用的連接、交互、支撐和服務(wù),典型代表如iMAG、AppMobi、AppCan、PhoneGap等[6]。移動(dòng)中間件能促使開(kāi)源ESB和BAM平臺(tái)發(fā)揮更高效的作用[7]。
互聯(lián)網(wǎng)協(xié)議簇包括IP、TCP、IGMP、ICMP、HTTP、SMTP、POP等協(xié)議,實(shí)現(xiàn)系統(tǒng)之間通信服務(wù)與資源共享[8]。
操作系統(tǒng)指智能終端操作系統(tǒng),主要有蘋(píng)果的iOS、Google的Android、微軟的Windows Phone、RIM的Black Berry OS、阿里云Yun OS等[9]。
智能終端與通信硬件/固件指處理器、內(nèi)存、緩存、射頻模塊,以及藍(lán)牙、紅外、GPS、NFC、攝像機(jī)、振動(dòng)馬達(dá)等。
3 基于移動(dòng)互聯(lián)網(wǎng)的手機(jī)支付系統(tǒng)架構(gòu)
3.1 軟件系統(tǒng)架構(gòu)
本文中軟件系統(tǒng)從上往下依次分為客戶層/訪問(wèn)層、Web應(yīng)用層、業(yè)務(wù)邏輯層、數(shù)據(jù)訪問(wèn)層、資源層等。
(1)客戶層/訪問(wèn)層
本層是運(yùn)行于客戶機(jī)上的表示層,提供用戶側(cè)系統(tǒng)接口和人機(jī)交互界面,常見(jiàn)形式有與用戶直接交互的客戶端、Web瀏覽器[10]。
(2)Web應(yīng)用層
本層是運(yùn)行在服務(wù)器上的表示層,封裝了用來(lái)服務(wù)訪問(wèn)本系統(tǒng)的客戶端的表示層邏輯,主要負(fù)責(zé)客戶端的注冊(cè)、認(rèn)證、登錄,實(shí)現(xiàn)會(huì)話管理,控制對(duì)業(yè)務(wù)的訪問(wèn)(權(quán)限檢查),構(gòu)造客戶端的回復(fù)(Response),以及把回復(fù)傳遞給客戶端。Asp.Net駐留在該層,Web Service駐留在該層[11]。
(3)業(yè)務(wù)邏輯層
本層負(fù)責(zé)數(shù)據(jù)的組織與編排,通過(guò)服務(wù)接口、BLL接口、數(shù)據(jù)層反射等,實(shí)現(xiàn)數(shù)據(jù)的邏輯處理[12]。
(4)數(shù)據(jù)訪問(wèn)層
本層由IDAL接口,數(shù)據(jù)庫(kù)助手等構(gòu)成,實(shí)現(xiàn)對(duì)系統(tǒng)數(shù)據(jù)的訪問(wèn)。
(5)資源層
本層提供外部系統(tǒng)資源和供外部訪問(wèn)的數(shù)據(jù)資源,主要包括數(shù)據(jù)庫(kù)、文件等。
3.2 技術(shù)架構(gòu)
(1)SOA體系
SOA(Service-Oriented Architecture,面向服務(wù)的體系結(jié)構(gòu))是一個(gè)組件模型,它將應(yīng)用程序的不同功能單元(稱為服務(wù))通過(guò)這些服務(wù)之間定義良好的接口和契約聯(lián)系起來(lái)。接口是采用中立的方式進(jìn)行定義的,它應(yīng)該獨(dú)立于實(shí)現(xiàn)服務(wù)的硬件平臺(tái)、操作系統(tǒng)和編程語(yǔ)言,這使得構(gòu)建在各種這樣的系統(tǒng)中的服務(wù)可以以一種統(tǒng)一和通用的方式進(jìn)行交互。只要開(kāi)發(fā)人員選用標(biāo)準(zhǔn)接口包裝各個(gè)部門(mén)的應(yīng)用程序,把這些應(yīng)用程序構(gòu)建成服務(wù),系統(tǒng)就可以使用這些功能服務(wù)[13]。
SOA是一種粗粒度、松耦合服務(wù)架構(gòu),服務(wù)之間通過(guò)簡(jiǎn)單、精確定義接口進(jìn)行通訊,不涉及底層編程接口和通訊模型。SOA可以看作是B/S模型、XML(標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言的子集)/Web Service技術(shù)之后的自然延伸[14]。
(2)基于Java的NI/O
采用基于Java平臺(tái)的J2EE技術(shù),系統(tǒng)采用SSH三層開(kāi)源框架,構(gòu)建于B/S三層應(yīng)用體系結(jié)構(gòu)之上。利用XML作為系統(tǒng)接口的數(shù)據(jù)交換標(biāo)準(zhǔn)進(jìn)行信息資源整合,在應(yīng)用支撐平臺(tái)上采用Web Services基于XML的標(biāo)準(zhǔn)化接口定義[15]。
傳統(tǒng)Java的I/O是基于流的方式,因此I/O被認(rèn)為是單個(gè)字節(jié)移動(dòng),采用被稱為Stream的對(duì)象,每次移動(dòng)一個(gè)字節(jié)。利用傳統(tǒng)Java的I/O建立的SOCKET 服務(wù)器接收客戶端連接,適用于為每一個(gè)連接建立一個(gè)線程,但是如果連接數(shù)據(jù)量巨大時(shí),服務(wù)器的開(kāi)銷(xiāo)非常巨大[16]。
為解決這個(gè)技術(shù)難點(diǎn),本文采用Java NI/O技術(shù),這時(shí)I/O采用面向塊的思想,以塊的方式處理I/O數(shù)據(jù),每一個(gè)操作在一步中生產(chǎn)或者消耗一個(gè)數(shù)據(jù)塊,NI/O將最耗時(shí)的I/O操作(填充和提取緩沖區(qū))轉(zhuǎn)移回操作系統(tǒng)實(shí)現(xiàn),因而極大地提高了效率[16]。
(3)基于iMAG
移動(dòng)中間件發(fā)展至今已有三代,iMAG是典型代表,本文選用的iMAG具有AppMobi、AppCan、PhoneGap等基于HTML5的第二代移動(dòng)中間件無(wú)法比擬的優(yōu)勢(shì),如:原生的客戶體驗(yàn)、強(qiáng)大的手機(jī)本地調(diào)用能力、同時(shí)支持在線和離線兩種應(yīng)用模式,iMAG Manager可作為企業(yè)移動(dòng)應(yīng)用的管理和運(yùn)營(yíng)的支撐系統(tǒng)[17]。
4 系統(tǒng)功能設(shè)計(jì)
本文中手機(jī)支付系統(tǒng)主要分為充值系統(tǒng)、支付系統(tǒng)、對(duì)賬系統(tǒng)。
4.1 充值系統(tǒng)
充值方式分為現(xiàn)金充值(通過(guò)發(fā)卡器或者自助充值機(jī))、銀行圈存(這里指手機(jī)/空中圈存)。
(1)現(xiàn)金充值
持現(xiàn)金交給出納員,出納員將金額存寫(xiě)到用戶卡上,并根據(jù)報(bào)表將所收現(xiàn)金交給財(cái)務(wù)。
(2)手機(jī)/空中圈存
空中圈存指是通過(guò)手機(jī)打電話、或者短信、OTA菜單方式進(jìn)行圈存,即時(shí)將銀行卡賬戶金額劃轉(zhuǎn)到手機(jī)卡錢(qián)包的過(guò)程,本文選用OTA方式,流程如下:
(1)用戶可以通過(guò)短信、門(mén)戶發(fā)起充值請(qǐng)求;
(2)手機(jī)充值系統(tǒng)收到充值請(qǐng)求后,根據(jù)黑名單判斷用戶是否可以進(jìn)行充值;
(3)手機(jī)充值系統(tǒng)向銀行/移動(dòng)支付平臺(tái)發(fā)起充值扣款請(qǐng)求;
(4)銀行/移動(dòng)支付系統(tǒng)完成認(rèn)證和扣款[18];
(5)向手機(jī)充值系統(tǒng)返回處理結(jié)果;
(6)手機(jī)充值系統(tǒng)記錄充值結(jié)果;
(7)手機(jī)充值系統(tǒng)向OTA平臺(tái)發(fā)起充值指令;
(8)OTA發(fā)送充值指令到用戶卡(手機(jī)卡),修改手機(jī)充值系統(tǒng)賬戶余額[19]。
工作流程
4.2 支付系統(tǒng)
支付系統(tǒng)支持多種支付方式,如終端刷卡消費(fèi)、自動(dòng)扣款、自助轉(zhuǎn)賬等。
(1)刷卡支付
終端刷卡消費(fèi)是指通過(guò)POS消費(fèi)的所有應(yīng)用,也是目前最主要的支付方式,是消費(fèi)帳務(wù)最主要的組成部分。
(2)自動(dòng)扣款
自動(dòng)扣款是指通過(guò)軟件自動(dòng)扣費(fèi),常見(jiàn)的如生活交費(fèi)(水電氣費(fèi))。軟件扣費(fèi)的存在形式一般是和第三方系統(tǒng)進(jìn)行軟件對(duì)接形成的。第三方軟件在扣除卡上金額后,還要將扣款記錄保存在第三方軟件數(shù)據(jù)庫(kù)中,并且要上傳到中心數(shù)據(jù)庫(kù)。
(3)自助轉(zhuǎn)賬
自助轉(zhuǎn)帳即自助交費(fèi),如手機(jī)充值、公交卡充值等,用戶在自助設(shè)備或者手機(jī)APP(支付寶、微信等)上進(jìn)行,轉(zhuǎn)帳記錄通過(guò)接口傳給第三方系統(tǒng)。該方式與自動(dòng)扣款方式類(lèi)似,但存在形式不同。
4.3 對(duì)賬系統(tǒng)
對(duì)賬系統(tǒng)主要校驗(yàn)支付交易數(shù)據(jù)的是否有誤,從不同的角度出發(fā),對(duì)賬方式分為多種,具體名稱和實(shí)現(xiàn)功能如下。
(1)系統(tǒng)平衡帳
從整體來(lái)查看系統(tǒng)中存在的帳務(wù)問(wèn)題,如果系統(tǒng)平衡帳是平衡的,說(shuō)明系統(tǒng)中帳務(wù)是沒(méi)有問(wèn)題的,計(jì)算公式為:
卡余額=出納存款+補(bǔ)助+代發(fā)+銀行圈存+糾錯(cuò)-各種消費(fèi)-管理費(fèi)-自助繳費(fèi)
卡余額與數(shù)據(jù)庫(kù)中記錄的卡余額相比,如果兩者相等,系統(tǒng)平衡帳是平衡的,如果不相等,分項(xiàng)進(jìn)行查驗(yàn),確定問(wèn)題所在。
(2)個(gè)人平衡帳
每個(gè)持卡人在系統(tǒng)中的所有行為構(gòu)成個(gè)人平衡帳,計(jì)算公式為:
個(gè)人計(jì)算卡余額=個(gè)人存款+已領(lǐng)補(bǔ)助+個(gè)人已領(lǐng)代發(fā)+銀行圈存+糾錯(cuò)-各種消費(fèi)-管理費(fèi)-自助繳費(fèi)
個(gè)人平衡帳在用戶卡系統(tǒng)中非常重要,只有每個(gè)人帳務(wù)是平衡帳的,才能保證整個(gè)系統(tǒng)的平衡帳。個(gè)人平衡帳在進(jìn)行集中數(shù)據(jù)處理時(shí)自動(dòng)生成,不需要手工分析,系統(tǒng)對(duì)個(gè)人平衡帳不平的人員,直接放在報(bào)表中,并在界面上報(bào)警窗口報(bào)警,提醒管理員。
(3)補(bǔ)助代發(fā)平衡帳
屬于專項(xiàng)平衡帳,補(bǔ)助準(zhǔn)備應(yīng)該等于補(bǔ)助已發(fā)和未發(fā)的總和,監(jiān)控補(bǔ)助平衡帳可以確保補(bǔ)助、代發(fā)這一塊帳務(wù)是正確的。
(4)出納員平衡賬
出納員的帳務(wù)要對(duì)三對(duì)照,出納收的現(xiàn)金、出納機(jī)上顯示的存款總額、報(bào)表顯示的存款總額三者必須一致,對(duì)于不一致的,肯定有一方有問(wèn)題。針對(duì)不一致的方面進(jìn)行驗(yàn)證。
(5)銀行對(duì)帳和支付系統(tǒng)對(duì)帳
實(shí)現(xiàn)銀行圈存后,銀行系統(tǒng)和支付系統(tǒng)每天要進(jìn)行對(duì)帳,一般原則是當(dāng)天對(duì)前一天的帳。對(duì)帳的方式是通過(guò)對(duì)帳文件自動(dòng)進(jìn)行,根據(jù)對(duì)帳結(jié)果進(jìn)行帳務(wù)處理。如果發(fā)生帳務(wù)不一致,原則上以銀行為準(zhǔn)。
(6)商戶對(duì)賬
營(yíng)業(yè)POS機(jī)上記錄商戶每餐、每日的營(yíng)業(yè)額,商戶可以自行記錄。同樣商戶可以通過(guò)報(bào)表查詢每日的營(yíng)業(yè)情況。報(bào)表和營(yíng)業(yè)機(jī)上記錄的營(yíng)業(yè)額進(jìn)行對(duì)帳。在進(jìn)行商戶結(jié)算時(shí),商戶可以自打印報(bào)表與結(jié)算中心財(cái)務(wù)人員的結(jié)算金額進(jìn)行對(duì)帳。
(7)賬戶余額對(duì)賬
顯示中系統(tǒng)中的賬戶余額,財(cái)務(wù)人員可以將個(gè)人賬戶余額與支付系統(tǒng)中余額進(jìn)行對(duì)帳,來(lái)驗(yàn)看系統(tǒng)帳務(wù)是否正確。
(8)異常帳處理
灰色記錄:在持卡人刷卡消息時(shí),POS機(jī)進(jìn)行扣款寫(xiě)卡,但卡是否寫(xiě)成功(射頻卡底層函數(shù)即使提示成功,在理論也存在著誤報(bào)的可能性,所以寫(xiě)卡后需要進(jìn)行讀卡校驗(yàn)來(lái)確認(rèn)操作真實(shí)性),需要進(jìn)行校驗(yàn),如果在回讀時(shí),用戶卡被取走,回讀校驗(yàn)將失敗,此時(shí)形成的記錄稱為灰色記錄,灰色記錄采回中心數(shù)據(jù)庫(kù),由系統(tǒng)根據(jù)該卡下一條記錄帶回的余額進(jìn)行自動(dòng)處理,判斷本條灰色記錄是否是真正消費(fèi)記錄。
數(shù)據(jù)庫(kù)損壞導(dǎo)致的異常:由于數(shù)據(jù)庫(kù)損壞引起異常,需要有帳務(wù)人員強(qiáng)行平帳。
5 結(jié)束語(yǔ)
隨著在移動(dòng)互聯(lián)網(wǎng)場(chǎng)景下的應(yīng)用越來(lái)越多,移動(dòng)支付的應(yīng)用也越來(lái)越廣泛,本文對(duì)此作了探究。移動(dòng)支付系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)是項(xiàng)復(fù)雜的工程,本文主要探究了總體系統(tǒng)和主要功能設(shè)計(jì)思路。由于無(wú)線通信、互聯(lián)網(wǎng)、智能終端、傳感等技術(shù)的不斷創(chuàng)新,信息安全越來(lái)越重要,該領(lǐng)域今后主要側(cè)重用新技術(shù)改進(jìn)當(dāng)前系統(tǒng),尤其是支付系統(tǒng)的安全保密方面。
參考文獻(xiàn):
[1] 王永建,趙志明,陳汝君,等. 面向移動(dòng)互聯(lián)網(wǎng)的電梯安全監(jiān)管系統(tǒng)設(shè)計(jì)[J]. 電信快報(bào), 2016(8): 9-12.
[2] 陳鵬. 物聯(lián)網(wǎng)RFID技術(shù)與云計(jì)算數(shù)據(jù)傳輸?shù)陌踩苑治鯷J]. 物聯(lián)網(wǎng)技術(shù), 2014(7): 91-92.
[3] 于志清. 基于“互聯(lián)網(wǎng)+”視角下的低碳經(jīng)濟(jì)發(fā)展路徑初探[J]. 當(dāng)代經(jīng)濟(jì), 2015(28): 20-22.
[4] 馬虹. 城市一卡通與移動(dòng)支付的整合與創(chuàng)新應(yīng)用[J]. 金卡工程, 2016(1): 12-14.
[5] 王永建,郎豐凱,王迅,等. 智慧校園一卡通系統(tǒng)安全研究[J]. 信息安全研究, 2016(5): 454-461.
[6] 寧義雙. 基于HTML5的移動(dòng)終端應(yīng)用中間件平臺(tái)的研究與設(shè)計(jì)[D]. 北京: 北京工業(yè)大學(xué), 2013.
[7] 徐磊. 基于SOA的RFID中間件的設(shè)計(jì)與實(shí)現(xiàn)[D]. 北京: 中國(guó)科學(xué)院大學(xué), 2015.
[8] 王慶剛,張林,張劍. 移動(dòng)互聯(lián)網(wǎng)探究及農(nóng)業(yè)移動(dòng)電子商務(wù)應(yīng)用[J]. 電腦知識(shí)與技術(shù), 2015,11(35): 167-168.
[9] 王慶剛,張林,張劍. 基于移動(dòng)互聯(lián)網(wǎng)的農(nóng)業(yè)電商系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J]. 計(jì)算機(jī)應(yīng)用, 2016,36(s1): 286-290.
[10] 謝倩. 翼機(jī)通管理及集中應(yīng)用平臺(tái)系統(tǒng)的方案設(shè)計(jì)與實(shí)踐[D]. 北京: 北京郵電大學(xué), 2011.
[11] 王琳. 校園手機(jī)一卡通系統(tǒng)設(shè)計(jì)和應(yīng)用[J]. 通信管理與技術(shù), 2011(3): 47-51.
[12] 薛娟. 基于RFID射頻技術(shù)的電信翼機(jī)通平臺(tái)的應(yīng)用研究[D]. 南京: 南京郵電大學(xué), 2012.
[13] 朱凱. 區(qū)域性電子政務(wù)協(xié)同辦公平臺(tái)的設(shè)計(jì)[D]. 上海: 復(fù)旦大學(xué), 2008.
[14] 楊陸欣. 金融保險(xiǎn)信息系統(tǒng)整合研究[D]. 上海: 上海交通大學(xué), 2009.
[15] 王永建,王海兵,周顯,等. 智慧校園一卡通與圖書(shū)館系統(tǒng)對(duì)接探究[J]. 軟件, 2016(5): 111-114.
[16] 王永建,郭廣濤,牛輝奇,等. 基于二維碼的糧油溯源系統(tǒng)設(shè)計(jì)研究[J]. 電信技術(shù), 2016(4): 61-67.
[17] 徐巍. 跨平臺(tái)移動(dòng)開(kāi)發(fā)框架的比較分析與實(shí)例開(kāi)發(fā)[D]. 長(zhǎng)春: 吉林大學(xué), 2014.
[18] 張兵兵,王建,任洪琴,等. 校園手機(jī)一卡通充值模式的多樣化服務(wù)淺析[J]. 科技信息, 2010(9): 65-66.
[19] 馬玉鵬,徐春香,蔣同海. 移動(dòng)小額支付平臺(tái)框架研究[J]. 計(jì)算機(jī)應(yīng)用與軟件, 2015,32(11): 62-65.