【正文】
幾年,電子支付才被人們普遍接受。各銀行相繼推出網(wǎng)上銀行業(yè)務(wù)。電子化的支付手段的出現(xiàn)已有一段時(shí)間,只是應(yīng)用范圍主要在金融機(jī)構(gòu)之間,大企業(yè)間和信用卡消費(fèi)等對(duì)交易環(huán)境有限制的局部領(lǐng)域 [2]。 項(xiàng)目研究的目的和意義 研究目的 本項(xiàng)目的研究主要基于以下幾方面考慮: 第一,系統(tǒng)了解電子商務(wù)支付流程以及存在問(wèn)題; 第二,明確電子商務(wù)支付的功能與特點(diǎn); 第三,設(shè)計(jì)并實(shí)現(xiàn)一個(gè)電子商務(wù)在線支付系統(tǒng); 研究意義 自九十年代以來(lái),因特網(wǎng)技術(shù)的飛速發(fā)展正在迅速地改變著人們的生活方式,因特網(wǎng)正在由科 學(xué)工作者的工具變?yōu)槠胀ò傩斋@取信息、進(jìn)行交流的場(chǎng)所,而因特網(wǎng)的商業(yè)應(yīng)用則尤為引人注目。所謂網(wǎng)上支付就是交易過(guò)程中的資金轉(zhuǎn)移環(huán)節(jié),使貨幣友有形流動(dòng)變?yōu)闊o(wú)形信用信息在網(wǎng)上流通,消費(fèi)者可以跨越時(shí)間和地域的限制。本文以電子商務(wù)網(wǎng)上支付系統(tǒng)的實(shí)現(xiàn)過(guò)程為主線,分別對(duì)各個(gè)實(shí)現(xiàn)階段作說(shuō)明。 搭建好系統(tǒng)框架,并編碼實(shí)現(xiàn)面向管理者功能模塊,同時(shí)進(jìn)行單元測(cè)試,然后集成各個(gè)單元模塊進(jìn)行集成測(cè)試驗(yàn)證。 開發(fā)技術(shù) J2EE 1. J2EE 簡(jiǎn)介 目前, Java 2 平臺(tái)有 3 個(gè)版本,它們是適用于小型設(shè)備和智能卡的 Java 2 平臺(tái)Micro 版( Java 2 Platform Micro Edition, J2ME)、適用于桌面系統(tǒng)的 Java 2 平臺(tái)標(biāo)準(zhǔn)版( Java 2 Platform Standard Edition, J2SE)、適用于創(chuàng)建服務(wù)器應(yīng)用程序和服務(wù)的 Java 2 平臺(tái)企業(yè)版( Java 2 Platform Enterprise Edition, J2EE) 。 保留現(xiàn)存的 IT 資產(chǎn),由于企業(yè)必須適應(yīng)新的商業(yè)需求,利用已有的企業(yè)信息系統(tǒng)方面的投資,而不是重新制定全盤方案就變得很重要。由于基于 J2EE 平臺(tái)的產(chǎn)品幾乎能夠在任何操作系統(tǒng)和硬件配置上運(yùn)行,現(xiàn)有的操作系統(tǒng)和硬件也能被保留使用。 錯(cuò)誤 !未找到引用源。這在典型的異構(gòu)企業(yè)計(jì)算環(huán)境中是十分關(guān)鍵的?;?J2EE 平臺(tái)的應(yīng)用程序可被部署到各種操作系統(tǒng)上。這種部署可達(dá)數(shù)千個(gè)處理器,實(shí)現(xiàn)可高度伸縮的系統(tǒng),滿足未來(lái)商業(yè)應(yīng)用的需要。 J2EE 部署到可靠的操作環(huán)境中,他們支持長(zhǎng)期的可用性。 應(yīng)用框架 Spring 框架的設(shè)計(jì)者 Rod Johnson 對(duì)框架技術(shù)的描述是:框架是可重用的、 半成品的應(yīng)用程序模塊,它可以用來(lái)產(chǎn)生專門的定制程序。而且框架一般是成熟穩(wěn)健的,可以處理系統(tǒng)中的很多細(xì)節(jié)問(wèn)題,比如,事物處理,安全性,數(shù)據(jù)流控制等問(wèn)題。為了實(shí)現(xiàn)“高內(nèi)聚、低耦合”,把問(wèn)題劃分開來(lái),對(duì)軟件進(jìn)行分層,各個(gè)解決,易于控制,易于延展, 6 易于分配資源。 MVC 模式將業(yè)務(wù)處理與顯示分離,運(yùn)用 MVC 的應(yīng)用程序的三個(gè)部件是相互對(duì)立,改變其中一個(gè)不會(huì)影響其它兩個(gè),所以依據(jù)這種設(shè)計(jì)思想你能構(gòu)造良好的低偶合的構(gòu)件。 利用 Struts 框架進(jìn)行 Web 應(yīng)用系統(tǒng)開發(fā)時(shí),不僅從整體上能夠減輕構(gòu)建 J2EE Web 應(yīng)用系統(tǒng)項(xiàng)目的設(shè)計(jì)和開發(fā)實(shí)現(xiàn)的負(fù)擔(dān),也為 Web 應(yīng)用系統(tǒng)提供國(guó)際化、異常處理和數(shù)據(jù)庫(kù)連接池等方面的技術(shù)支持。 Struts 框架本身實(shí)現(xiàn)了 MVC 模式,也發(fā)展了 MVC 模式;應(yīng)用系統(tǒng)的開發(fā)者可以采用 “填空 ”式的方式來(lái)進(jìn)行開發(fā),因?yàn)?Struts 框架將一個(gè)標(biāo)準(zhǔn)的 MVC 的具體實(shí)現(xiàn)中的各個(gè)組件部分已經(jīng)劃分清晰和組件分離了。 采用 Struts 框架技術(shù),可以加快應(yīng)用系統(tǒng)的開發(fā)速度、增強(qiáng)應(yīng)用系統(tǒng)的靈活性、降低應(yīng)用系統(tǒng)中的各個(gè)層組件之間的耦合度。 由于基于 Struts 框架技術(shù)實(shí)現(xiàn)的 Web 應(yīng)用系統(tǒng)中的控制層、業(yè)務(wù)層與表示層三 者之間各自相互分離,所以這樣的設(shè)計(jì)方案能夠使應(yīng)用系統(tǒng)中的表示層的開發(fā)者(網(wǎng)頁(yè)設(shè)計(jì)人員)與后臺(tái)業(yè)務(wù)功能具體實(shí)現(xiàn)的 Java 程序員各司其職和分工明確,并且可以并行開發(fā),提高開發(fā)效率。從而簡(jiǎn)化系統(tǒng)中表示層的 設(shè)計(jì)和開發(fā)實(shí)現(xiàn),進(jìn)而避免在頁(yè)面中出現(xiàn)大量的 Java 腳本代碼 [6]。或者說(shuō), WebWork衍生出了 Struts2,而不是 Struts 1 衍生了 Struts2。 Spring 使用基本的 JavaBean 來(lái)完成以前只可能由 EJB 完成的事情。 Spring作為開源的中間件,獨(dú)立于各種應(yīng)用服務(wù)器,甚至無(wú)須應(yīng)用服務(wù)器的支持,也能提供應(yīng)用服務(wù)器的功能,如聲明式事務(wù)等。 簡(jiǎn)單來(lái)說(shuō), Spring 是一個(gè)輕量級(jí)的控制反轉(zhuǎn) (IoC)和面向切面 (AOP)的容器框架。完整的 Spring 框架可以在一個(gè)大小只有 1MB 多的 JAR 文件里發(fā)布。當(dāng)應(yīng)用了 IoC,一個(gè)對(duì)象依賴的其它對(duì)象會(huì)通過(guò)被動(dòng)的方式傳遞進(jìn)來(lái),而不是這個(gè)對(duì)象自己創(chuàng)建或者查找依賴對(duì)象。它們并不負(fù)責(zé)(甚至是意識(shí))其它的系統(tǒng)級(jí)關(guān)注點(diǎn),例如日志或事務(wù)支持。在 Spring 中 ,應(yīng)用對(duì)象被聲明式地組合,典型地是在一個(gè) XML 文件里。 Hibernate 可以應(yīng)用在任何使用 JDBC 的場(chǎng)合,既可以在 Java 的客戶端程序使用,也可以在 Servlet/JSP 的 Web 應(yīng)用中使用,最具 革命意義的是, Hibernate 可以 9 在應(yīng)用 EJB 的 J2EE 架構(gòu)中取代 CMP,完成數(shù)據(jù)持久化的重任 [9]。 系統(tǒng)用戶特征 電子商務(wù)網(wǎng)上支付系統(tǒng)包含面向客戶,面向管理者和系統(tǒng)管理三部分,根據(jù)功能分布特點(diǎn),將系統(tǒng)用戶劃分為議以下三種: 1.客戶 展 使用網(wǎng)上支付系統(tǒng)進(jìn)行付款、收款、賬戶和交易管理的客戶。系統(tǒng)依賴關(guān)系如圖 所示。 1.需求描述 客戶 模塊 錯(cuò)誤 !未找到引用源。 錯(cuò)誤 !未找到 引用源。 網(wǎng)上支付 : 包括擔(dān)保交易付款,即時(shí)到帳付款。 交易管理 : 包括個(gè)人交易查詢,交易處理和交易地址管理。 系統(tǒng)管理 模塊 管理員用戶管理 : 包括管理員賬戶的添加,刪除以及維護(hù)。 其中,面向客戶子系統(tǒng) 是本系統(tǒng)的核心部分,是本系統(tǒng)存在的意義所在。 系統(tǒng)管理子系統(tǒng):該子系統(tǒng) 主要向超級(jí)管理員提供對(duì)管理者的增、刪以及維護(hù)。 結(jié) 束開 始客 戶 注 冊(cè)郵 件 確 認(rèn) 激 活登 陸交 易 管 理 網(wǎng) 上 付 款 網(wǎng) 上 收 款失 敗規(guī) 定 時(shí) 間 內(nèi) 無(wú)確 認(rèn) 激 活 操 作安 全 退 出賬 戶 管 理 圖 面向客戶子系統(tǒng)業(yè)務(wù)流程 2.模塊設(shè)計(jì) 客戶通過(guò)系統(tǒng)提供的平臺(tái)進(jìn)行擔(dān)保交易和即時(shí)到賬兩種方式的付款和收款、對(duì)帳戶信息進(jìn)行查看和修改、對(duì)交易的查詢和處理等操作。 16 結(jié) 束開 始登 陸報(bào) 表 查 詢 總 額 查 詢失 敗安 全 退 出內(nèi) 容 管 理 圖 面向管理者子系統(tǒng)業(yè)務(wù)流程 2. 模塊設(shè)計(jì) 管理者查詢注冊(cè)、充值、交易三種情況的日?qǐng)?bào)表,月報(bào)表,年報(bào)表,時(shí)間段報(bào)表,并提供 導(dǎo)出到 Excel功能。 17 結(jié) 束開 始登 陸報(bào) 表 查 詢 總 額 查 詢失 敗安 全 退 出內(nèi) 容 管 理 圖 系統(tǒng)管理子系統(tǒng)業(yè)務(wù)流程 系統(tǒng)管理者對(duì)管理者進(jìn)行增、刪、改、查等操作。 18 第 4 章 數(shù)據(jù)庫(kù)設(shè)計(jì) 本章主要介紹數(shù)據(jù)庫(kù)層的設(shè)計(jì),包括實(shí)體的以及實(shí)體之間關(guān)系的分析。本系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)概念模型中的實(shí)體包括客戶登錄信息,客戶基本信息,賬戶信息,交易地址,充值記錄,交易記錄,管理者信息,權(quán)限信息。 21 a d m i nP K a d m i n I D a d m i n N a m e a d m i n P s d a d m i n T y p e e m a i l c r e a t e T i m e s t a t u sc u s t o m e r _ a c t i v a t e _ c o d eP K , F K 1 C I D a c t i v a t e C o d ec u s t o m e rP K C I D u s e r N a m e o p e n I D u s e r P S D p a y P S D n a m e e n a b l e d i d e n t i f y N o i d e n t i f y T y p e p h o n e N o m o b i l e N o r e g i s t e r D a t e p s d Q u e s t i o n p s d Q A n s w e r l a s t L o g i n T i m ea c c o u n tP K , F K 1 C I D a v a i l A c c f r o z e n A c cp r e p a i d _ r e cP K d p o s i t R e c I DF K 1 C I D d p o s i t T y p e d p o s i t S u m d p o s i t T i m e d p o s i t B a n ka d r e s s _ l i s tP K a d d I DF K 1 C I D t r u e N a m eF K 2 c i t y I D s t r e e t A d d p o s t a l N o p h o n e N o m o b i l e N op r o v i n c eP K p r o v i n c e I D p r o v i n c e N a m ep r o d u c tP K p r o I d p r o N a m e u n i t P r i c e q u a n t i t y p r o N e t i n t r ot r a d e _ r e cP K t r a d e I D p r o d I D t r a d e S T i m e t r a d e E T i m e t r a d e S t a d eF K 2 b u y e r I DF K 3 s e l l e r I D t r a d e S u m d e l i v e r T y p e d e t a i l sF K 1 p r o I d C I Dd e l i v e rP K , F K 1 t r a d e I D p o s t a g e P a y e r p o s t a g eF K 2 a d d I Dc i t yP K c i t y I D c i t y N a m eF K 1 p r o v i n c e I D1110 . . *0 . . 111111 . . *10 . . 1111 . . *111 圖 實(shí)體關(guān)系示意圖 本章小結(jié) 本章第一節(jié)主要分析數(shù)據(jù)庫(kù)需求,根據(jù)數(shù)據(jù)庫(kù)設(shè)計(jì)規(guī)范劃分出實(shí)體,第二節(jié)主要描述關(guān)系實(shí)體以及他們之間的關(guān)系,給出了關(guān)系圖。 execute()方法中調(diào)用 service 層的接口中的方法, service 層的實(shí)現(xiàn)類則調(diào)用 Hibernate 層中的 DAO 類中的相應(yīng)方法。 ((registerDate,sdate, edate))。 } 對(duì)于時(shí)間段(即傳遞的兩個(gè)參數(shù))處理,因從頁(yè)面獲取的時(shí)間是從日歷控件中獲取的,格式是“ YYYYMMDD”格式的,后面的時(shí)分秒均為零,而數(shù)據(jù)庫(kù)中存儲(chǔ)的時(shí)間類型,注冊(cè)日期是 Date 類型,充值時(shí)間和交易時(shí)間精確到時(shí)分秒,設(shè)置的是 Timestamp 類 型 。 Calendar 類實(shí)在很方便,推薦使用 此類。 //新建 Excel 工作簿 HSSFWorkbook wb = new HSSFWorkbook()。 ()。 ++i) { Customer user = (i)。 (i + 1)。 ?? } //創(chuàng)建輸出流 ByteArrayOutputStream os = new ByteArrayOutputStream()。一種是 Hibernate 分頁(yè),傳遞兩個(gè)參數(shù)(返回記錄總數(shù)對(duì)應(yīng)每頁(yè)顯示最大條數(shù),開始索引號(hào)對(duì)應(yīng)每頁(yè)顯示第一條記錄號(hào))到hibernate DAO 層,控制數(shù)據(jù)庫(kù)的輸出。//結(jié)果集中按要求取的第一條記錄數(shù) (pageSize)。 =./。在交易的時(shí)間段查詢中,通過(guò)日歷控件選擇 20xx511 至 20xx512 日的時(shí)間段 ,查詢顯示如圖 所示。 日?qǐng)?bào)表查詢,月報(bào)表查詢,年報(bào)表查詢經(jīng)測(cè)試均達(dá)到預(yù)期效果。 27 圖 文件下載示