韓 睿
(山西職業(yè)技術(shù)學(xué)院,山西 太原 030006)
近年來(lái),隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,電子商務(wù)作為新興第三產(chǎn)業(yè),發(fā)展也日趨成熟起來(lái),并對(duì)人們的日常生活、購(gòu)物、消費(fèi)等行為產(chǎn)生了及其深刻的影響。其中廣為人知的電商平臺(tái)主要有境外的亞馬遜、國(guó)內(nèi)的淘寶、京東、拼多多等,隨著這些電商平臺(tái)被人們廣泛的接受和應(yīng)用,網(wǎng)上交易的安全支付問(wèn)題也日益凸顯,現(xiàn)今通過(guò)電商平臺(tái)交易最為核心的技術(shù)問(wèn)題就是如何保障用戶的交易安全。第三方支付平臺(tái)的主要目的就是為電子商務(wù)交易安全提供技術(shù)保障,例如支付寶就是典型的第三方支付平臺(tái)。早期的支付寶并不是獨(dú)立的支付平臺(tái),而是以淘寶為基礎(chǔ)平臺(tái)的嵌入式支付系統(tǒng),之后在2004年才實(shí)現(xiàn)了獨(dú)立的平臺(tái),經(jīng)過(guò)了十幾年的發(fā)展完善,支付寶已經(jīng)不僅僅是一個(gè)單純的支付平臺(tái),而是變成了一個(gè)多元化的金融服務(wù)平臺(tái)[1]。繼支付寶之后,微信、京東、百度、銀聯(lián)云閃付也都陸續(xù)推出了自己的支付平臺(tái)。隨著各類支付平臺(tái)的應(yīng)用推出,其架構(gòu)的穩(wěn)定性、兼容性改進(jìn)也成了當(dāng)前的研究熱點(diǎn),在此前提背景下,本文重點(diǎn)針對(duì)JavaEE開(kāi)發(fā)框架的技術(shù)特點(diǎn)進(jìn)行了深入研究,并嘗試基于JavaEE框架設(shè)計(jì)與開(kāi)發(fā)了一個(gè)第三方電子商務(wù)支付平臺(tái)。
JavaEE提供了企業(yè)級(jí)應(yīng)用軟件開(kāi)發(fā)的一套技術(shù)框架,核心思想是“分層而治”,將軟件開(kāi)發(fā)框架劃分為頂層表示層、中間業(yè)務(wù)層與底層數(shù)據(jù)層三個(gè)層級(jí)[2]。其中表示層做為頂層應(yīng)用,主要用于部署用戶顯示界面的各類功能,界面顯示的主要開(kāi)發(fā)技術(shù)即WEB頁(yè)面開(kāi)發(fā);業(yè)務(wù)層是JavaEE框架的中間層,也是核心邏輯層,主要用于實(shí)現(xiàn)與數(shù)據(jù)處理相關(guān)的業(yè)務(wù)請(qǐng)求、響應(yīng)等邏輯事務(wù),以及與表示層、數(shù)據(jù)層之間的數(shù)據(jù)交互功能;底層數(shù)據(jù)層提供了底層數(shù)據(jù)源與數(shù)據(jù)的映射關(guān)系和數(shù)據(jù)庫(kù)訪問(wèn)接口,為有效保障數(shù)據(jù)的安全性,底層數(shù)據(jù)庫(kù)不能被外部直接訪問(wèn),而是需要通過(guò)底層數(shù)據(jù)源的映射關(guān)系調(diào)用指定的數(shù)據(jù)庫(kù)接口來(lái)實(shí)現(xiàn)數(shù)據(jù)訪問(wèn)的。各層之間相對(duì)功能獨(dú)立,松耦合關(guān)聯(lián),易于各個(gè)層的獨(dú)立維護(hù)與功能擴(kuò)展。同時(shí)各層內(nèi)采用“容器+組件”的結(jié)構(gòu)模式,各類開(kāi)發(fā)技術(shù)以組件的形式封裝在容器之內(nèi),組件之間可靈活調(diào)用、共享,又可獨(dú)立開(kāi)發(fā)、升級(jí)迭代。JavaEE的框架設(shè)計(jì)理念決定了其在技術(shù)融合、平臺(tái)兼容等方面都具有明顯的技術(shù)優(yōu)勢(shì),因此也逐步成為企業(yè)級(jí)應(yīng)用軟件開(kāi)發(fā)的首選開(kāi)發(fā)框架平臺(tái)。
第三方電子商務(wù)支付平臺(tái)整體布局采用JavaEE 與B/S相結(jié)合的架構(gòu),如圖1所示。
圖1 基于JavaEE第三方電子商務(wù)支付平臺(tái)設(shè)計(jì)架構(gòu)
表示層采用了WEB頁(yè)面開(kāi)發(fā)技術(shù),基于Struts-MVC分層設(shè)計(jì)容器+JSP、XML組件的設(shè)計(jì)架構(gòu)。Struts容器的技術(shù)核心是WEBwork,WEBwork指的是通過(guò)控制器攔截方式接收和處理各類來(lái)自WEB的頁(yè)面請(qǐng)求事件,結(jié)合MVC分層理念將表示層構(gòu)建為視圖(View)+控制器(Controller)+模型(Model)的三層架構(gòu)模式。視圖層采用JSP、XML實(shí)現(xiàn)頁(yè)面顯示功能,JSP內(nèi)置組件可以大大簡(jiǎn)化頁(yè)面編程代碼,提高開(kāi)發(fā)效率,XML標(biāo)記語(yǔ)言使得頁(yè)面設(shè)計(jì)語(yǔ)言更加規(guī)范,結(jié)構(gòu)清晰,易于界面開(kāi)發(fā)二次迭代;控制層決定了頁(yè)面事件的請(qǐng)求接收與結(jié)果響應(yīng)方式,主要通過(guò)Struts控制器實(shí)現(xiàn)上述功能,Struts在接收到頁(yè)面事件請(qǐng)求后,將其封裝為Action對(duì)象進(jìn)行處理,并根據(jù)配置文件信息將結(jié)果轉(zhuǎn)換為匹配的對(duì)象模型顯示在頁(yè)面當(dāng)中;模型層做為表示層的底層控制,一方面向控制層提供事件模型的信息描述,另一方面實(shí)現(xiàn)表示層與業(yè)務(wù)層的通信控制。
業(yè)務(wù)層采用了輕量級(jí)的JavaEE開(kāi)發(fā)框架—Spring框架,Spring的核心模塊是Core容器,用于提供內(nèi)置功能模塊開(kāi)發(fā)的規(guī)范標(biāo)準(zhǔn)和框架的基本功能;Contexe內(nèi)置模塊用于給出Spring框架上下文信息的基礎(chǔ)配置文件,主要涉及郵件收發(fā)、信息校驗(yàn)和調(diào)度等上下文信息;AOP內(nèi)置模塊用于實(shí)現(xiàn)Spring框架內(nèi)擴(kuò)展封裝組件功能的配置管理;DAO內(nèi)置模塊提供了JDBC層面可能出現(xiàn)的錯(cuò)誤信息的處理方案,主要針對(duì)異構(gòu)數(shù)據(jù)庫(kù)所導(dǎo)致的異常錯(cuò)誤,這會(huì)大大簡(jiǎn)化系統(tǒng)開(kāi)發(fā)中錯(cuò)誤信息處理的編程代碼量;ORM內(nèi)置模塊為底層數(shù)據(jù)層的異構(gòu)數(shù)據(jù)庫(kù)接入、交互提供了框架式的解決方案,并通過(guò)內(nèi)置的對(duì)象轉(zhuǎn)化處理工具完成底層數(shù)據(jù)的對(duì)象轉(zhuǎn)換;WEB模塊用于給出與表示層WEB頁(yè)面的相關(guān)應(yīng)用程序的上下文配置信息,為業(yè)務(wù)層與表示層通信提供服務(wù)。最后基于session管理實(shí)現(xiàn)對(duì)Ibatis數(shù)據(jù)源的接口調(diào)用。
數(shù)據(jù)層采用Ibatis框架實(shí)現(xiàn)以SQL語(yǔ)句為核心的半自動(dòng)式數(shù)據(jù)管理。首先通過(guò)XML文件對(duì)數(shù)據(jù)源進(jìn)行簡(jiǎn)單描述,即將Spring中的對(duì)象式描述的數(shù)據(jù)類型映射為JDBC中的以SQL語(yǔ)句描述的數(shù)據(jù)類型。再通過(guò)Ibatis所提供的數(shù)據(jù)連接對(duì)象接口DAO(Data Access ObjectS)實(shí)現(xiàn)對(duì)底層數(shù)據(jù)庫(kù)的連接訪問(wèn),數(shù)據(jù)庫(kù)訪問(wèn)的全部操作細(xì)節(jié)都被封裝在DAO接口當(dāng)中,既簡(jiǎn)化了JAVA應(yīng)用的開(kāi)發(fā)過(guò)程,又提高了數(shù)據(jù)訪問(wèn)的安全性。
電子商務(wù)第三方支付平臺(tái)主要包括六大功能模塊,分別為:交易合作維護(hù)、終端商戶管理、終端管理、風(fēng)險(xiǎn)監(jiān)控、交易管理、系統(tǒng)管理。
交易合作維護(hù)模塊,主要用于管理和維護(hù)平臺(tái)合作方的相關(guān)信息,具體包括市場(chǎng)策略信息維護(hù)、市場(chǎng)策略信息查詢、合作方信息采集、合作方信息查詢、合作方利潤(rùn)分配規(guī)則設(shè)定五項(xiàng)子功能。該模塊中所提到的合作方是指系統(tǒng)應(yīng)用推廣方,主要負(fù)責(zé)平臺(tái)推廣、商戶信息采集和維護(hù)平臺(tái)等工作。
終端商戶管理模塊,主要用于管理和維護(hù)應(yīng)用平臺(tái)服務(wù)的商戶信息,具體包括商戶信息維護(hù)、商戶信息查詢、清算規(guī)則設(shè)定三項(xiàng)子功能。該模塊中所涉及的商戶信息統(tǒng)一由合作方負(fù)責(zé)采集、審批和錄入,對(duì)于審核不通過(guò)的商戶具有修改提交的權(quán)限,同時(shí)為了保障系統(tǒng)信息的安全性,對(duì)商戶信息的查詢與修改采用權(quán)限分級(jí)制,對(duì)于敏感性的信息采用脫敏處理機(jī)制,例如商戶的賬號(hào)信息,將截取其中間6位數(shù)字以“*”代替。
終端管理模塊,主要用于管理和維護(hù)平臺(tái)終端設(shè)備信息,具體包括終端設(shè)備信息維護(hù)、終端設(shè)備信息查詢、裝機(jī)綁定管理三項(xiàng)子功能。設(shè)備信息的采集、錄入工作由指定的設(shè)備管理人員完成,設(shè)備運(yùn)行狀態(tài)、維修等信息的采集由終端設(shè)備維護(hù)人員負(fù)責(zé)完成。
風(fēng)險(xiǎn)監(jiān)控模塊,主要用于管理和維護(hù)平臺(tái)交易的風(fēng)險(xiǎn)信息,具體包括商戶資格初審、商戶信息終審、風(fēng)險(xiǎn)監(jiān)控規(guī)則、風(fēng)險(xiǎn)事件處理四項(xiàng)子功能。商戶資格初審主要用于審核商戶提交的基本信息是否符合系統(tǒng)信息的錄入規(guī)則、內(nèi)容是否合法等。若通過(guò)初審,則會(huì)為商戶信息匹配唯一的商戶號(hào),用于在數(shù)據(jù)庫(kù)中唯一標(biāo)識(shí)商戶,并修改商戶的信息審核狀態(tài)為“等待終審”;若審核未通過(guò),則需錄入退回理由,并允許商戶重新修改、提交信息。終審?fù)ㄟ^(guò)后,商戶狀態(tài)會(huì)標(biāo)注為“正式商戶”,并可開(kāi)始使用平臺(tái)所提供的支付服務(wù)。
交易管理模塊,主要用于管理和維護(hù)平臺(tái)交易信息,具體包括交易信息查詢、交易信息統(tǒng)計(jì)、文件下載、報(bào)表下載四項(xiàng)子功能。該模塊提供了多個(gè)維度下的交易信息統(tǒng)計(jì),及報(bào)表生成,能夠?yàn)樯虘籼峁﹤€(gè)性化的數(shù)據(jù)分析依據(jù)。
系統(tǒng)管理模塊,用于管理和維護(hù)系統(tǒng)基本信息,具體包括用戶信息管理、訪問(wèn)權(quán)限管理、系統(tǒng)日志信息管理、系統(tǒng)基本設(shè)置四項(xiàng)子功能。
隨著電子商務(wù)產(chǎn)業(yè)的快速發(fā)展,第三方支付平臺(tái)也得到了廣泛應(yīng)用,隨之而來(lái)的系統(tǒng)兼容性、交易安全性等問(wèn)題也成為技術(shù)開(kāi)發(fā)人員亟待解決的問(wèn)題。針對(duì)這一現(xiàn)狀,本研究首先對(duì)企業(yè)級(jí)系統(tǒng)開(kāi)發(fā)技術(shù)JavaEE進(jìn)行了深入研究,并嘗試基于JavaEE開(kāi)發(fā)框架,采用“分層而治”的技術(shù)設(shè)計(jì)思路,開(kāi)發(fā)與實(shí)現(xiàn)了一個(gè)電子商務(wù)第三方支付系統(tǒng),有效提高了系統(tǒng)的穩(wěn)定性與兼容性,以及系統(tǒng)的可維護(hù)性與易擴(kuò)展性。