- ASP.NET項目開發全程實錄(第4版)
- 明日科技
- 1530字
- 2019-12-06 12:04:49
2.11 網上在線支付使用專題
為了拓展銀行業務,許多大型銀行都開設了網上銀行,并提供相應的網上銀行支付的接口。下面以工商銀行在線支付為例具體講解。
客戶在商戶網站購物完畢,商戶網站給客戶生成一個訂單(有一個唯一的訂單號),如果客戶選擇工商銀行支付,客戶從商戶網站提交訂單至工商銀行網上支付服務器;客戶在工商銀行網上支付服務器的支付頁面輸入自己的支付卡號和支付密碼,完成訂單支付。工商銀行會將交易結果通過網頁通知客戶,通過商戶接口通知商戶,如果該筆訂單為信息化商品,工商銀行還將引導客戶至商戶網站上取貨。
工商銀行共提供商戶HS、AG、HS(聯名)和AG(聯名)4種不同模式的接口,如表2.9所示,用來向商戶傳遞交易的結果信息,商戶可以根據自己的情況自由選用。
表2.9 工商銀行通知接口模式

工商銀行在線支付功能模塊一般由兩部分組成,即“選擇在線支付方式”和“工商銀行在線支付頁”。下面分別介紹。
1. 選擇在線支付方式
用戶在“服務臺”頁填寫完相關信息后,單擊“提交”按鈕,即可進入“選擇在線支付方式”頁(PayWay.aspx),在該頁用戶可以選擇在線支付方式,其運行效果如圖2.33所示。

圖2.33 選擇在線支付方式
實現該功能的具體步驟如下:
(1)將一個Table(表格)控件置于PayWay.aspx頁中,為整個頁面進行布局。
(2)從“工具箱”下的“標準”選項卡中拖放5個ImageButton控件,設置各個控件的ImageUrl屬性值,用于顯示在線支付方式。
(3)在“中國工商銀行”按鈕的Click事件下,編寫如下代碼,用于實現當用戶單擊該按鈕后,跳轉到“工商銀行在線支付頁”。
protected void ImageButton1_Click(object sender, ImageClickEventArgs e) { Response.Redirect("GoBank.aspx?OrderID=" + Request["OrderID"].ToString()); }
2. 工商銀行在線支付頁
B2C在線支付業務是指企業(賣方)與個人(買方)通過因特網上的電子商務網站進行交易時,銀行為其提供網上資金結算服務的一種業務。目前,ICBC個人網上銀行的B2C在線支付系統是ICBC專門為擁有工商銀行牡丹信用卡賬戶并開通網上支付功能的網上銀行個人客戶進行網上購物所開發的支付平臺。下面詳細地介紹一下開發工商銀行在線支付頁的全過程。
(1)開發工商銀行在線支付頁前期工作
首先,需要特約網站申請人到ICBC當地指定機構辦理申請手續,并提交如下申請資料。
① 營業執照副本及復印件。
② 經辦人員的有效身份證件。
③ 填妥的《特約網站注冊申請表》。
④ 最近年度的資產負債表和損益表的復印件。
⑤ 《域名注冊證》復印件或其他對所提供域名享有權利的證明。
⑥ 企業標識LOGO的電子文件。
⑦ 填妥的“牡丹卡單位申請表”。
其次,經工商銀行審查合格后,工商銀行將提供銀行方的通信、數據接口和已有商戶端程序及商戶客戶證書。
最后,特約網站可以根據工商銀行提供的資料,開發工商銀行在線支付功能。
(2)開發工商銀行在線支付頁的具體步驟
首先,按照工商銀行提供的資料注冊com組件。步驟如下:
① 將ICBCEBankUtil.dll和LIB\windows\WIN32\infosecapi.dll兩個dll文件復制到系統system32目錄下。
② 打開DOS窗口,進入system32目錄。
③ 運行“regsvr32 ICBCEBankUtil.dll”命令注冊控件。
其次,將工商銀行提供的public公鑰、拆分pfx后綴證書的公鑰和拆分pfx后綴證書的私鑰放到本地磁盤(如D盤根目錄下)。在本網站中,筆者將其放在項目下的bank文件中。
然后,在項目的Bin文件中,單擊鼠標右鍵,在彈出的快捷菜單中選擇“添加引用”命令,彈出如圖2.34所示的對話框,添加引用ICBCEBankUtil.dll文件。

圖2.34 “添加引用”對話框
最后,設計提交表單頁面(GoBank.aspx)。步驟如下:
創建一個BankPay類,用于定義相關變量并返回變量的值。代碼如下:
例程43 代碼位置:資源包\TM\02\B2C\B2C\App_Code\BankPay.cs




注意
此處,筆者只給出相關的方法,對于變量的賦值參見銀行提供的相關資料。
將提交表單頁面(GoBank.aspx)切換到HTML視圖中,添加如下代碼,用于設計提交表單內容。
例程44 代碼位置:資源包\TM\02\B2C\B2C\GoBank.aspx

說明
① 訂單只能使用POST方式提交,使用https協議通信。
② 如果提交的表格含有中文,需要在<head></head>節點中,使用字符集GBK指定。代碼如下:
<meta http-equiv="content-type" content="text/html;charset=GBK">
將提交表單頁面切換到編輯器頁(GoBank.aspx.cs)中,為提交表單賦值。相關代碼如下:
例程45 代碼位置:資源包\TM\02\B2C\B2C\GoBank.aspx.cs
