<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          關(guān) 閉

          新聞中心

          EEPW首頁(yè) > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 基于ASP.NET的B2C在線支付接口設(shè)計(jì)

          基于ASP.NET的B2C在線支付接口設(shè)計(jì)

          作者: 時(shí)間:2010-01-08 來(lái)源:網(wǎng)絡(luò) 收藏
          隨著社會(huì)經(jīng)濟(jì)的不斷發(fā)展,人們的生活節(jié)奏不斷加快,這使通過(guò)網(wǎng)絡(luò)平臺(tái)來(lái)實(shí)現(xiàn)支付交易成為一種需求。通過(guò)電子支付平臺(tái)系統(tǒng),既可以節(jié)約人工實(shí)際支付交易所耗費(fèi)巨大的時(shí)間成本,又能保證交易的公平性、安全性和隱蔽性,給人們的生活帶來(lái)極大的便利。然而一般商戶如何使自己的電子商務(wù)系統(tǒng)與電子支付平臺(tái)實(shí)現(xiàn)正確對(duì)接則是一項(xiàng)非常重要的技術(shù),

          1的現(xiàn)狀

          是指賣方與買方通過(guò)因特網(wǎng)上的電子商務(wù)網(wǎng)站進(jìn)行交易時(shí),銀行為其提供網(wǎng)上資金結(jié)算服務(wù)的一種業(yè)務(wù)。

          在線支付,也稱實(shí)時(shí)電子支付。這是電子商務(wù)必備的一個(gè)環(huán)節(jié),缺少了在線支付就沒有完全實(shí)現(xiàn)電子商務(wù)。在線支付就是由商家預(yù)先選擇好在線支付平臺(tái)服務(wù)商(如預(yù)置了包括貝寶、快錢、支付寶、首信、IPAY、NPS、網(wǎng)銀等十多種主要的在線支付),跟支付平臺(tái)簽訂服務(wù)協(xié)議,開通支付,由商家支付交易所產(chǎn)生的手續(xù)費(fèi),顧客在購(gòu)買商品時(shí)就可以選擇使用在線支付方式對(duì)所購(gòu)買到商品進(jìn)行付款。

          目前,大部分在線支付平臺(tái)的在線支付接口已經(jīng)應(yīng)用到生活中的諸多方面,但某些支付接口還是有不足之處:

          (1)數(shù)據(jù)庫(kù)無(wú)法實(shí)時(shí)共享。無(wú)法實(shí)現(xiàn)不同的人員,從不同的地點(diǎn),以不同的接入方式同時(shí)訪問(wèn)和操作共同的數(shù)據(jù)庫(kù)。

          (2)客戶端的軟、硬件配置要求復(fù)雜。往往使用此支付平臺(tái),下載了支付平臺(tái)控件之后,在使用在線支付接口交易時(shí)還需要進(jìn)行軟、硬件配置,給客戶帶來(lái)了諸多不便。

          針對(duì)上述不足,該接口選用了ASP技術(shù)進(jìn)行編寫,測(cè)試時(shí)可以在IIS應(yīng)用目錄下進(jìn)行。

          2應(yīng)用的技術(shù)優(yōu)勢(shì)

          是微軟公司于2000年推出的一種Internet編程技術(shù),是面向下一代企業(yè)級(jí)的Web應(yīng)用程序開發(fā)平臺(tái)。它的執(zhí)行方式是當(dāng)Web服務(wù)器接收到一個(gè)對(duì)某ASP.NET頁(yè)面的請(qǐng)求時(shí),如果這是對(duì)該頁(yè)面而創(chuàng)建后修改的第一次申請(qǐng),首先把該頁(yè)面內(nèi)容編譯成MSIL語(yǔ)言,然后MSIL再被編譯成機(jī)器碼加以執(zhí)行。

          針對(duì)目前在線支付接口所表現(xiàn)出的一些缺點(diǎn),ASP技術(shù)有自己的解決辦法。

          (1)能實(shí)現(xiàn)不同的人員,從不同的地點(diǎn),以不同的接入方式訪問(wèn)和操作共同的數(shù)據(jù)庫(kù)。傳統(tǒng)Server/Client結(jié)構(gòu)的應(yīng)用,要求用戶和服務(wù)器必須在同一網(wǎng)段上,而實(shí)際上用戶有的跨地區(qū)、跨網(wǎng)段。這樣傳統(tǒng)Server/Client的應(yīng)用就很難實(shí)現(xiàn)這種跨地區(qū)、跨網(wǎng)段的應(yīng)用。應(yīng)用ASP.NET實(shí)現(xiàn)的安全信息管理系統(tǒng),不論用戶在外地出差,還是在國(guó)外,只要有一臺(tái)機(jī)器能上Internet,就能通過(guò)用戶驗(yàn)證進(jìn)入網(wǎng)絡(luò)支付平臺(tái)系統(tǒng)查詢信息,用戶不論是早上,還是晚上隨時(shí)都可以通過(guò)用戶驗(yàn)證使用該系統(tǒng)進(jìn)行在線支付交易,給用戶使用帶來(lái)很大方便。

          (2)對(duì)客戶端的軟、硬件配置無(wú)特殊要求,只要客戶端安裝瀏覽器就可以通過(guò)網(wǎng)絡(luò)查詢信息。當(dāng)系統(tǒng)需要升級(jí)時(shí),應(yīng)用傳統(tǒng)Server/Client結(jié)構(gòu)時(shí),必須對(duì)所有客戶進(jìn)行升級(jí),而應(yīng)用ASP.NET實(shí)現(xiàn)的安全信息管理系統(tǒng),開發(fā)人員只需對(duì)服務(wù)器程序進(jìn)行升級(jí),用戶在不知不覺中就完成了軟件的更新?lián)Q代,這樣既方便了用戶,又方便了維護(hù)。

          3接口的功能性需求

          支付服務(wù)的接口如圖1所示,主要由支付接口、訂單查詢接口和訂單退款接口3部分組成。



          (1)支付接口。通過(guò)支付請(qǐng)求文件發(fā)起支付請(qǐng)求,商家可以在此文件中寫入自己的訂單信息等,然后把請(qǐng)求提交給平臺(tái)支付系統(tǒng),待平臺(tái)支付系統(tǒng)進(jìn)行處理之后,交易成功回調(diào)(瀏覽器重定向),或者交易成功,后臺(tái)主動(dòng)通知(服務(wù)器點(diǎn)對(duì)點(diǎn)通信)以上一個(gè)瀏覽器重定向和一個(gè)主動(dòng)通知都會(huì)通過(guò)HTTP協(xié)議以GET方式到商戶回報(bào)URL地址上,如圖2所示。

          商戶需要發(fā)送的數(shù)據(jù)包括業(yè)務(wù)類型、商戶信息、扣款金額、交易幣種、商品信息、銀行編碼和簽名數(shù)據(jù)HMAC。其中商戶信息又包括商戶代碼、訂單號(hào)、擴(kuò)展信息及回報(bào)URL;商品信息則包括商品的ID、類別和描述。商戶代碼是系統(tǒng)給商戶分配的惟一標(biāo)識(shí),而銀行編碼能自動(dòng)轉(zhuǎn)化為系統(tǒng)識(shí)別的銀行ID。在用戶填寫商戶訂單號(hào)時(shí),如果商戶訂單號(hào)為空,系統(tǒng)自動(dòng)生成隨機(jī)的惟一商戶訂單號(hào)。返回?cái)?shù)據(jù)包括業(yè)務(wù)類型、交易信息、商戶信息、商品信息、交易結(jié)果返回類型及簽名數(shù)據(jù)HMAC。交易信息包括扣款結(jié)果、金額和交易流水號(hào);商戶和商品信息同發(fā)送數(shù)據(jù)是一樣的。交易結(jié)果返回的類型有兩種:一個(gè)是交易成功回調(diào)(瀏覽器重定向);另一個(gè)是交易成功主動(dòng)通知(服務(wù)器點(diǎn)對(duì)點(diǎn)通信)。


          上一頁(yè) 1 2 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();