胡 彬,徐 珂
(河南工業(yè)職業(yè)技術(shù)學院 計算機工程系,河南 南陽 473009)
隨著信息經(jīng)濟、網(wǎng)絡經(jīng)濟在全球的增長,電子商務的發(fā)展大大超出了人們的預料。國際數(shù)據(jù)組織(IDC:International Data Corporation)的最新研究結(jié)果表明,電子商務能為信息產(chǎn)業(yè)發(fā)展帶來巨大的市場,從而推動經(jīng)濟和社會的全面發(fā)展。
以Internet為平臺的電子商務,簡化了網(wǎng)上購物的交易過程,只要網(wǎng)絡能到達的地方,就可以使用電子支付,減少了人為的干預,節(jié)省了大量的人力、物力。在Internet成為各個商家首選的電子支付網(wǎng)絡平臺的同時,與電子支付相關(guān)的技術(shù)、標準等也在不斷涌現(xiàn),進行網(wǎng)上支付已成為現(xiàn)代化支付系統(tǒng)的發(fā)展趨勢。為了培養(yǎng)真正能夠適應市場需求的電子商務人才,高校很有必要設(shè)計一個B2C網(wǎng)上支付系統(tǒng),讓學生真正接觸它,而不再局限于僅以消費者的立場去接觸網(wǎng)上支付系統(tǒng)。只有全面熟悉了網(wǎng)上支付系統(tǒng)的整個工作流程和運作體系,才可能發(fā)現(xiàn)它的優(yōu)缺點,從而進一步改進、完善。
設(shè)計網(wǎng)上支付系統(tǒng)基于的安全機制是SSL協(xié)議,它采用對稱算法、公用密鑰算法和防火墻等措施保證交易的安全,支付時使用的是銀行發(fā)行的儲值卡(借記卡)、信用卡。網(wǎng)上支付系統(tǒng)主要涉及的實體有:客戶、商家、銀行(發(fā)卡銀行和收單銀行)、支付網(wǎng)關(guān)、CA認證中心。系統(tǒng)的總體結(jié)構(gòu)如圖1所示。客戶完成商品的選購、訂單的提交,商家處理提交的訂單并提送銀行支付網(wǎng)關(guān),銀行負責處理支付信息,CA認證中心提供商家和銀行的認證。
圖1 網(wǎng)上支付系統(tǒng)結(jié)構(gòu)示意圖
客戶端:客戶必須持有發(fā)卡銀行所發(fā)行的支付卡,客戶需要使用支付工具(如信用卡、電子支票等)進行支付。為了保證支付的安全性,要求客戶的網(wǎng)絡瀏覽器至少支持128位安全加密。
商家端:這里商家是指在網(wǎng)絡上出售商品或服務的個人或機構(gòu)。商家須首先到銀行柜面申請開通網(wǎng)上銀行服務,從而獲得銀行分配的ID號,此ID號是唯一的。
發(fā)卡銀行:即客戶申請獲得支付卡的銀行。發(fā)卡銀行要確??蛻舻闹Ц犊梢詢陡?。
收單銀行:即商戶申請開戶的銀行,它向商戶提供交易結(jié)算。商家開戶行在接受商家提交的客戶支付指令后,進行交易雙方開戶銀行之間的清算等工作,是整個支付結(jié)算過程中資金流向的目的地。
支付網(wǎng)關(guān):即一組能夠連接外部互聯(lián)網(wǎng)平臺和銀行內(nèi)部金融專用網(wǎng)絡平臺之間接口的服務器,實現(xiàn)支付信息從Internet到銀行內(nèi)部網(wǎng)絡的轉(zhuǎn)換,完成安全支付的授權(quán)和獲取。支付網(wǎng)關(guān)的主要作用是完成兩個平臺直接的通信、協(xié)議、轉(zhuǎn)換和進行數(shù)據(jù)加密、解密,因此,支付網(wǎng)關(guān)的建設(shè)直接關(guān)系到網(wǎng)上支付系統(tǒng)和銀行系統(tǒng)的安全性。
金融專用網(wǎng)絡:即銀行系統(tǒng)內(nèi)部之間進行數(shù)據(jù)通信的專用網(wǎng)絡,禁止外部訪問,安全級別很高,是支付過程中負責結(jié)算的部門。
CA認證中心:向客戶、商家和支付網(wǎng)關(guān)發(fā)放數(shù)字證書,通過證書驗證彼此之間的真實身份,保障網(wǎng)上支付過程中的安全性。同時,CA認證中心要對證書進行管理,是具有權(quán)威性、可信賴性和公正性的第三方的公正機構(gòu),它與傳統(tǒng)商務中的工商管理局的作用相當。
Visual Studio.NET 2005是微軟新一代軟件開發(fā)平臺,集成了VB.NET、C#、ASP.NET的開發(fā)環(huán)境,提供了包括設(shè)計、編碼、編譯調(diào)試、數(shù)據(jù)庫連接操作等基本功能和基于開放架構(gòu)的服務器組件開發(fā)平臺、企業(yè)開發(fā)工具和應用程序重新發(fā)布工具以及性能評測報告等高級功能。而ASP.NET是在服務器端運行的通用語言運行環(huán)境,具有易于管理、使用、恢復等諸多優(yōu)勢。因此,本系統(tǒng)操作系統(tǒng)采用WindowsXP/WindowsServer2003,用Visual-Studio.Net 2005作為網(wǎng)上支付系統(tǒng)的編程環(huán)境,ASP.NET作為編程工具。
網(wǎng)上支付系統(tǒng)的交易流程按以下步驟進行:
(1)客戶登陸商家網(wǎng)站選購完商品,與商家服務器建立SSL安全通道,商家生成支付訂單,該訂單應包含訂單號、商家名稱、日期、金額、商家證書等數(shù)據(jù)信息。
(2)客戶選擇支付方式,商家服務器將支付訂單發(fā)送給銀行支付網(wǎng)關(guān)服務器,銀行支付網(wǎng)關(guān)服務器驗證請求數(shù)據(jù)中包含商家身份確認信息的“商家證書”、“簽名信息”。
(3)驗證確實是商家簽署的、有效的支付信息后,客戶端出現(xiàn)銀行在線支付頁面,顯示從商家發(fā)來的訂單號及支付金額信息。否則會發(fā)出警告并返回失敗信息提示。
(4)客戶在對應界面中輸入支付卡卡號和支付密碼,核對相關(guān)信息無誤后確認支付。
(5)銀行驗證客戶的卡號、密碼。核查無誤后,銀行支付網(wǎng)關(guān)將信息送入銀行業(yè)務處理系統(tǒng)進行相應的業(yè)務處理。
(6)若出現(xiàn)客戶金額不足等問題,銀行業(yè)務系統(tǒng)處理失敗,支付系統(tǒng)直接向客戶返回處理失敗信息,若訂單支付成功,銀行將用自己的私鑰對訂單信息和支付成功信息進行加密后傳給商家。
(7)商家接到支付成功信息后,用銀行的證書驗證其簽名信息。
(8)商家驗證成功后,向客戶提供交易成功信息,并根據(jù)自己的需要進行記賬處理、更新訂單信息,向客戶發(fā)送貨物。
通過對網(wǎng)上支付系統(tǒng)交易流程的分析與設(shè)計,可以看出網(wǎng)上支付系統(tǒng)中的數(shù)據(jù)流主要有三部分,分別是生成支付訂單數(shù)據(jù)流、處理支付訂單數(shù)據(jù)流、支付結(jié)果數(shù)據(jù)流。
2.2.1 生成支付訂單數(shù)據(jù)流
商家接收到客戶提交的購買商品信息后,生成支付訂單,同時將訂單中的信息存儲到商家服務器的訂單記錄這一模塊中。流程如圖2所示。
圖2 生成支付訂單數(shù)據(jù)流程示意圖
商家服務器將訂單信息用商家證書私鑰進行數(shù)字簽名后生成訂單支付信息,該信息主要存放在OrderIM表中,OrderIM表主要包括Order_ID、Merchantr_ID、MercName、Orders、OrderTime、Order-Amount、MereRetURL等字段,各字段的詳細信息如表1所示。
2.2.2 處理支付訂單數(shù)據(jù)流程
商家服務器將客戶訂單支付信息發(fā)送給銀行支付網(wǎng)關(guān)進行支付請求,銀行支付網(wǎng)關(guān)從訂單支付信息中獲取并檢驗商家的數(shù)字簽名和證書。檢驗通過則客戶在給出的支付界面中輸入卡號和密碼,將支付信息送到銀行支付系統(tǒng);檢驗不通過則提示錯誤信息,中斷交易操作。流程如圖3所示。
表1 OrderIM數(shù)據(jù)表
圖3 處理支付訂單數(shù)據(jù)流程示意圖
其中,提交過程中的支付信息主要存放在Pay-IM表中,PayIM表主要包含PayIM、Merchantr_ID、Order_ID、OrderAmount、Cardno、Passwd等字段,各字段的詳細信息如表2所示。
表2 PayIM數(shù)據(jù)表
2.2.3 確認支付訂單數(shù)據(jù)流程
銀行支付系統(tǒng)驗證客戶的卡號、支付密碼等信息成功后,將支付信息發(fā)送給業(yè)務處理系統(tǒng)進行處理,處理完后將結(jié)果發(fā)送給支付服務器,若訂單支付成功,銀行將用自己的私鑰對訂單信息和支付成功信息進行加密后傳給商家,否則放棄交易。流程如圖4所示。
圖4 支付訂單結(jié)果數(shù)據(jù)流程示意圖
其中,將交易結(jié)果和簽名數(shù)據(jù)合成支付確認結(jié)果信息,存放在ResIM表中,ResIM表主要包括ResIM、Merchantr_ID、Order_ID、MercName、Order-Amount、TransDate、Orderseril、Succ Mark、Comment等字段,各字段的詳細信息如表3所示。
表3 ResIM數(shù)據(jù)表
最后,在本系統(tǒng)中,采用SSL協(xié)議保證商家與客戶以及商家與銀行支付網(wǎng)關(guān)之間信息傳遞的完整性和保密性。
本系統(tǒng)對網(wǎng)上交易涉及的其他方面,如商家對商品的具體管理、物流管理等模塊都沒有具體的設(shè)計。如果只是從教學角度出發(fā),通過此支付系統(tǒng)可以讓學生熟悉網(wǎng)上支付的整個流程及其中數(shù)據(jù)加解密的流程。但是,由于試驗條件和技術(shù)水平的限制,雖然采用了SSL協(xié)議建立了客戶、商家、銀行之間的安全通道,在一定程度上保障了交易的安全,但在現(xiàn)實使用中,如何去抵擋他人的惡意攻擊,提高系統(tǒng)的安全性,這還有待于繼續(xù)努力研究,進一步改進、完善此系統(tǒng)。不過,從教學角度來說,此系統(tǒng)的不夠完善也正好可以引導學生去深入探究,找出解決實際問題的方法,也算是起到了拋磚引玉的作用。
[1]吳瑞明.網(wǎng)上支付系統(tǒng)[J].電子質(zhì)量,2002(02).
[2]Census Bureau.E-Commerce Retail Sales[J].Stratigic ManagementJournal,2006(10).
[3]莫燕,張玉清.SSL3.0基本握手協(xié)議的運行模式分析[J].中國科學院研究生院學報,2005,22(04).
[4]Schclzrinne H,Rosenberg J.The Session Initiation Protocol:Internet-Centric Signaling[J].IEEE Communieation Magazine,2000(06).
[5]Ashish Banerjee,Aravind Corera.C#Web服務高級編程使用.NET Remoting和ASP.NET創(chuàng)建Web服務[M].康博,譯.北京:清華大學出版社,2002.
[6]李智博.電子商務安全性問題的探討[J].青??萍伎v橫,2007(2).