隨著(zhù)社會(huì )經(jīng)濟的不斷發(fā)展,人們的生活節奏不斷加快,這使通過(guò)網(wǎng)絡(luò )平臺來(lái)實(shí)現支付交易成為一種需求。通過(guò)電子支付平臺系統,既可以節約人工實(shí)際支付交易所耗費巨大的時(shí)間成本,又能保證交易的公平性、安全性和隱蔽性,給人們的生活帶來(lái)極大的便利。然而一般商戶(hù)如何使自己的電子商務(wù)系統與電子支付平臺實(shí)現正確對接則是一項非常重要的技術(shù),基于此設計了基于A(yíng)SP.NET的B2C在線(xiàn)支付接口。 1 在線(xiàn)支付的現狀 在線(xiàn)支付是指賣(mài)方與買(mǎi)方通過(guò)因特網(wǎng)上的電子商務(wù)網(wǎng)站進(jìn)行交易時(shí),銀行為其提供網(wǎng)上資金結算服務(wù)的一種業(yè)務(wù)。 在線(xiàn)支付,也稱(chēng)實(shí)時(shí)電子支付。這是電子商務(wù)必備的一個(gè)環(huán)節,缺少了在線(xiàn)支付就沒(méi)有完全實(shí)現電子商務(wù)。在線(xiàn)支付就是由商家預先選擇好在線(xiàn)支付平臺服務(wù)商(如預置了包括貝寶、快錢(qián)、支付寶、首信、IPAY、NPS、網(wǎng)銀等十多種主要的在線(xiàn)支付接口),跟支付平臺簽訂服務(wù)協(xié)議,開(kāi)通支付接口,由商家支付交易所產(chǎn)生的手續費,顧客在購買(mǎi)商品時(shí)就可以選擇使用在線(xiàn)支付方式對所購買(mǎi)到商品進(jìn)行付款。 目前,大部分在線(xiàn)支付平臺的在線(xiàn)支付接口已經(jīng)應用到生活中的諸多方面,但某些支付接口還是有不足之處: (1)數據庫無(wú)法實(shí)時(shí)共享。無(wú)法實(shí)現不同的人員,從不同的地點(diǎn),以不同的接入方式同時(shí)訪(fǎng)問(wèn)和操作共同的數據庫。 (2)客戶(hù)端的軟、硬件配置要求復雜。往往使用此支付平臺,下載了支付平臺控件之后,在使用在線(xiàn)支付接*易時(shí)還需要進(jìn)行軟、硬件配置,給客戶(hù)帶來(lái)了諸多不便。 針對上述不足,該接口選用了ASP技術(shù)進(jìn)行編寫(xiě),測試時(shí)可以在IIS應用目錄下進(jìn)行。 2 應用ASP.NET的技術(shù)優(yōu)勢 ASP.NET是微軟公司于2000年推出的一種Internet編程技術(shù),是面向下一代企業(yè)級的Web應用程序開(kāi)發(fā)平臺。它的執行方式是當Web服務(wù)器接收到一個(gè)對某ASP.NET頁(yè)面的請求時(shí),如果這是對該頁(yè)面而創(chuàng )建后修改的第一次申請,首先把該頁(yè)面內容編譯成MSIL語(yǔ)言,然后MSIL再被編譯成機器碼加以執行。 針對目前在線(xiàn)支付接口所表現出的一些缺點(diǎn),ASP技術(shù)有自己的解決辦法。 (1)能實(shí)現不同的人員,從不同的地點(diǎn),以不同的接入方式訪(fǎng)問(wèn)和操作共同的數據庫。傳統Server/Client結構的應用,要求用戶(hù)和服務(wù)器必須在同一網(wǎng)段上,而實(shí)際上用戶(hù)有的跨地區、跨網(wǎng)段。這樣傳統Server/Client的應用就很難實(shí)現這種跨地區、跨網(wǎng)段的應用。應用ASP.NET實(shí)現的安全信息管理系統,不論用戶(hù)在外地出差,還是在國外,只要有一臺機器能上Internet,就能通過(guò)用戶(hù)驗證進(jìn)入網(wǎng)絡(luò )支付平臺系統查詢(xún)信息,用戶(hù)不論是早上,還是晚上隨時(shí)都可以通過(guò)用戶(hù)驗證使用該系統進(jìn)行在線(xiàn)支付交易,給用戶(hù)使用帶來(lái)很大方便。 (2)對客戶(hù)端的軟、硬件配置無(wú)特殊要求,只要客戶(hù)端安裝瀏覽器就可以通過(guò)網(wǎng)絡(luò )查詢(xún)信息。當系統需要升級時(shí),應用傳統Server/Client結構時(shí),必須對所有客戶(hù)進(jìn)行升級,而應用ASP.NET實(shí)現的安全信息管理系統,開(kāi)發(fā)人員只需對服務(wù)器程序進(jìn)行升級,用戶(hù)在不知不覺(jué)中就完成了軟件的更新?lián)Q代,這樣既方便了用戶(hù),又方便了維護。 3 接口的功能性需求 支付服務(wù)的接口設計如圖1所示,主要由支付接口、訂單查詢(xún)接口和訂單退款接口3部分組成。 (1)支付接口。通過(guò)支付請求文件發(fā)起支付請求,商家可以在此文件中寫(xiě)入自己的訂單信息等,然后把請求提交給平臺支付系統,待平臺支付系統進(jìn)行處理之后,交易成功回調(瀏覽器重定向),或者交易成功,后臺主動(dòng)通知(服務(wù)器點(diǎn)對點(diǎn)通信)以上一個(gè)瀏覽器重定向和一個(gè)主動(dòng)通知都會(huì )通過(guò)HTTP協(xié)議以GET方式到商戶(hù)回報URL地址上,如圖2所示。 商戶(hù)需要發(fā)送的數據包括業(yè)務(wù)類(lèi)型、商戶(hù)信息、扣款金額、交易幣種、商品信息、銀行編碼和簽名數據HMAC。其中商戶(hù)信息又包括商戶(hù)代碼、訂單號、擴展信息及回報URL;商品信息則包括商品的ID、類(lèi)別和描述。商戶(hù)代碼是系統給商戶(hù)分配的惟一標識,而銀行編碼能自動(dòng)轉化為系統識別的銀行ID。在用戶(hù)填寫(xiě)商戶(hù)訂單號時(shí),如果商戶(hù)訂單號為空,系統自動(dòng)生成隨機的惟一商戶(hù)訂單號。返回數據包括業(yè)務(wù)類(lèi)型、交易信息、商戶(hù)信息、商品信息、交易結果返回類(lèi)型及簽名數據HMAC。交易信息包括扣款結果、金額和交易流水號;商戶(hù)和商品信息同發(fā)送數據是一樣的。交易結果返回的類(lèi)型有兩種:一個(gè)是交易成功回調(瀏覽器重定向);另一個(gè)是交易成功主動(dòng)通知(服務(wù)器點(diǎn)對點(diǎn)通信)。 由于交易結果通知返回是無(wú)狀態(tài)的,因此商戶(hù)有必要在交易結果返回時(shí)進(jìn)行一定的事務(wù)控制。 (2)訂單查詢(xún)接口。商戶(hù)通過(guò)訂單查詢(xún)接口發(fā)出查詢(xún)請求,支付平臺系統進(jìn)行處理之后,能通過(guò)數據流方式返回查詢(xún)結果。 商戶(hù)在發(fā)送數據時(shí)需要業(yè)務(wù)類(lèi)型、商戶(hù)代碼及訂單號、簽名數據HMAC。查詢(xún)返回的結果包括商戶(hù)信息、交易信息、商品信息及簽名數據HMAC。能幫助商戶(hù)方便快捷地了解交易狀態(tài)。 (3)訂單退款接口。當商戶(hù)對交易不滿(mǎn)意或出現其他一些原因時(shí),同樣可以通過(guò)訂單退款接口發(fā)出退款請求,支付平臺系統進(jìn)行處理之后,能通過(guò)數據流方式返回退款結果。 商戶(hù)在請求退款時(shí),發(fā)送的數據必須包括業(yè)務(wù)類(lèi)型、商戶(hù)代碼、交易信息、退款說(shuō)明。系統返回的數據包括業(yè)務(wù)類(lèi)型、退款結果、交易信息。讓商戶(hù)對款項了解清晰。 (4)安全協(xié)議簡(jiǎn)介。在接口設計中特別使用到了安全套接層(Secure Socket Layer,SSL)協(xié)議,它是由Netscape公司于1994年首先提出,并且開(kāi)發(fā)成功的一個(gè)網(wǎng)絡(luò )傳輸層安全通信協(xié)議,它的主要目的是在兩個(gè)通信實(shí)體之間提供一個(gè)秘密且可靠地連結。安全套接層方法協(xié)議在網(wǎng)絡(luò )上普遍使用,能保證雙方通信時(shí)數據的完整性、保密性和互操作性,可在安全要求不太高時(shí)予以使用。它包括: 握手協(xié)議 即在傳送信息之前,先發(fā)送握手信息,以相互確認對方的身份。確認身份后,雙方共同持有一個(gè)共享密鑰。 消息加密協(xié)議 即雙方握手后,用對方證書(shū)(RSA公鑰)加密一隨機密鑰,再用隨機密鑰加密雙方的信息流,以實(shí)現保密性。 由于被IE,NETSCAPE等瀏覽器所內置,實(shí)現起來(lái)非常方便。目前B2C網(wǎng)上的支付大多采用這種辦法。因此這里采用的HMAC就是一種秘密的密鑰驗證算法。HMAC提供的數據完整性和源身份驗證完全取決于秘密密鑰分配的范圍。如果只有發(fā)起者和接收者知道HMAC密鑰,那么這就對兩者間發(fā)送的數據提供了源身份驗證和完整性保證。 4 系統的軟硬件環(huán)境 運行ASP.NET應用程序,需要配置合適的運行環(huán)境。ASP.NET運行環(huán)境包括硬件和軟件要求,其中,硬件要求主要包括CPU、內存、硬盤(pán)、顯示器和光驅等,軟件要求主要包括操作系統、瀏覽器、Internet信息服務(wù)器和.NET、Framework等。其硬件配置為: (1)CPU處理器。450 MHz Pentium Ⅱ級處理器,建議使用600 MHz Pentium Ⅲ級處理器。 (2)內存。使用不同的操作系統,在運行ASP.NET應用程序時(shí)有不同的內存要求: (3)可用硬盤(pán)空間。系統驅動(dòng)器要求900 MB的可用空間;安裝驅動(dòng)器要求3.3 GB的可用空間,可選的MSDN庫文檔另外需要1.9 GB的可用空間。 (4)光盤(pán)驅動(dòng)器。CD-ROM或DVD-ROM驅動(dòng)器。 (5)顯示器。Super VGA(1 024×768)或更高分辨率的256色顯示器。 為了系統的正常運行,要求具備如下的支撐軟件: IIS5.0(Windows2000),IIS4.0(WindowsWindowsNT4),IE5.5以上。.NET Framework SDK(.NET Framewor SDK是執行ASP.NET最關(guān)鍵的元件,可以到網(wǎng)站下載)。 5 程序設計 如圖3所示,商戶(hù)首先可以先在用戶(hù)信息項目中詳細填寫(xiě)自己的資料,全部完成之后點(diǎn)擊確定,接著(zhù)在訂單管理項目中填寫(xiě)相應的交易信息,整理檢查之后沒(méi)有錯誤就可以點(diǎn)確認購買(mǎi),完成交易了。 下面一段程序是支付請求文件,通過(guò)該文件發(fā)起支付請求,商家可以在該文件中寫(xiě)入自己的訂單信息等,然后把請求提交給系統。 6 結 語(yǔ) 該設計的初衷是希望幫助在線(xiàn)交易當事人(包括消費者、廠(chǎng)商和金融機構等),通過(guò)使用相關(guān)的電子技術(shù)手段,在互聯(lián)網(wǎng)上進(jìn)行貨幣支付或資金流轉時(shí),電子支付平臺能提供更高效安全的服務(wù)。在之中還是有很多不完善之處,比如在交易信息以數據流的形式返回給商戶(hù)的過(guò)程中,商戶(hù)由于外部因素的干擾和影響往往無(wú)法即時(shí)進(jìn)行交易而返回事務(wù)控制,因此可以增加設計程序,幫助商戶(hù)進(jìn)行具體而安全的交易返回事務(wù)控制,幫助商戶(hù)將繁雜的控制簡(jiǎn)單化、高效化;對于整體的商戶(hù)支付服務(wù),也可以設計增加訂單統計這個(gè)模塊,幫助商戶(hù)統計自己的歷史訂單匯總信息,特別是可以按時(shí)間段統計訂單,分項整理,清晰明了。限于時(shí)間和技術(shù)的因素,該設計并沒(méi)有涉及這些內容。 |