久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

18.2.3 使用支付寶實現(xiàn)在線支付(1)

 androidHung 2014-10-17
使用支付寶實現(xiàn)在線支付

18.2.3  使用支付寶實現(xiàn)在線支付(1)

在了解了在線支付及與支付寶相關(guān)的一些知識之后,,本節(jié)詳細講解在用戶網(wǎng)站中,,如何通過調(diào)用支付寶接口實現(xiàn)在線支付的功能,。

調(diào)用支付寶接口實現(xiàn)在線支付功能的具體實現(xiàn)如下所示,。

1.在項目中加入支付寶接口程序

在應用支付寶在線支付功能之前,首先需要將支付寶接口程序添加到網(wǎng)站工程中,具體實現(xiàn)的操作步驟如下所示。

(1)啟動Visual Studio 2010,,新建一個網(wǎng)站。

(2)在網(wǎng)站的根目錄下添加一個名稱為AliPay的類,,添加之后系統(tǒng)會自動將該類放置在App_Code目錄下,。

(3)在AliPay類中添加如下程序代碼,實現(xiàn)連接支付寶接口的功能,。

  1. using System;  
  2. using System.Data;  
  3. using System.Configuration;  
  4. using System.Web;  
  5. using System.Web.Security;  
  6. using System.Web.UI;  
  7. using System.Web.UI.WebControls;  
  8. using System.Web.UI.WebControls.WebParts;  
  9. using System.Web.UI.HtmlControls;  
  10. using System.Text;  
  11. using System.Security.Cryptography;  
  12. /// <summary> 
  13. /// 實現(xiàn)支付寶接口程序的代碼  
  14. /// </summary> 
  15. namespace Gateway  
  16. {  
  17.     public class AliPay  
  18.     {  
  19.         public static string GetMD5(string s, string _input_charset)  
  20.         {  
  21.             /// <summary> 
  22.             /// 與ASP兼容的MD5加密算法  
  23.             /// </summary> 
  24.             MD5 md5 = new MD5CryptoServiceProvider();  
  25.             byte[] t = md5.ComputeHash(Encoding.GetEncoding(_input_  
  26.             charset).GetBytes(s));  
  27.             StringBuilder sb = new StringBuilder(32);  
  28.             for (int i = 0; i < t.Length; i++)  
  29.             {  
  30.                 sb.Append(t[i].ToString("x").PadLeft(2, '0'));  
  31.             }  
  32.             return sb.ToString();  
  33.         }  
  34.         public static string[] BubbleSort(string[] r)  
  35.         {  
  36.             /// <summary> 
  37.             /// 冒泡排序法  
  38.             /// </summary> 
  39.             int i, j;                           //交換標志  
  40.             string temp;  
  41.             bool exchange;  
  42.             for (i = 0; i < r.Length; i++)  //最多做R.Length-1趟排序  
  43.             {  
  44.                 exchange = false;           //本趟排序開始前,,交換標志應為假  
  45.                 for (j = r.Length - 2; j >= i; j--)  
  46.                 {  
  47.                     if (System.String.CompareOrdinal(r[j + 1], r[j]) < 0)    
  48.                                             //交換條件  
  49.                     {  
  50.                         //交換數(shù)組中的數(shù)據(jù)  
  51.                         temp = r[j + 1];  
  52.                         r[j + 1] = r[j];  
  53.                         r[j] = temp;  
  54.                         exchange = true;        //發(fā)生了交換,故將交換標志置為真  
  55.                     }  
  56.                 }  
  57.                 if (!exchange)              //本趟排序未發(fā)生交換,,提前終止算法  
  58.                 {  
  59.                     break;                      //中斷  
  60.                 }  
  61.             }  
  62.             return r;                           //返回數(shù)組  
  63.         }  
  64.         //定義字符串變量組  
  65.         public string CreatUrl(  
  66.             string gateway,   
  67.             string service,   
  68.             string partner,   
  69.             string sign_type,  
  70.             string out_trade_no,  
  71.             string subject,   
  72.             string body,   
  73.             string payment_type,   
  74.             string total_fee,   
  75.             string show_url,   
  76.             string seller_email,   
  77.             string key,   
  78.             string return_url,  
  79.             string _input_charset,  
  80.             string notify_url,  
  81.             string logistics_type,  
  82.             string logistics_fee,  
  83.             string logistics_payment,  
  84.             string logistics_type_1,  
  85.             string logistics_fee_1,  
  86.             string logistics_payment_1,  
  87.             string quantity  
  88.             )  
  89.         {  
  90.             int i;  
  91.              //構(gòu)造數(shù)組  
  92.                 string[] Oristr ={   
  93.                 "service="+service,   
  94.                 "partner=" + partner,   
  95.                 "subject=" + subject,   
  96.                 "body=" + body,   
  97.                 "out_trade_no=" + out_trade_no,   
  98.                 "price=" + total_fee,   
  99.                 "show_url=" + show_url,    
  100.                 "payment_type=" + payment_type,   
  101.                 "seller_email=" + seller_email,   
  102.                 "notify_url=" + notify_url,  
  103.                 "_input_charset="+_input_charset,            
  104.                 "return_url=" + return_url,  
  105.                 "quantity="+quantity,  
  106.                 "logistics_type="+logistics_type,  
  107.                 "logistics_fee="+logistics_fee ,  
  108.                 "logistics_payment="+logistics_payment,  
  109.                 "logistics_type_1="+logistics_type_1,  
  110.                 "logistics_fee_1="+logistics_fee_1,  
  111.                 "logistics_payment_1="+logistics_payment_1  
  112.                 };  
  113.             //進行排序  
  114.             string[] Sortedstr = BubbleSort(Oristr);  
  115.             //構(gòu)造待md5摘要字符串  
  116.             StringBuilder prestr = new StringBuilder();  
  117.             for (i = 0; i < Sortedstr.Length; i++)  
  118.             {  
  119.                 if (i == Sortedstr.Length - 1)  
  120.                 {  
  121.                     prestr.Append(Sortedstr[i]);  
  122.                 }  
  123.                 else  
  124.                 {  
  125.                     prestr.Append(Sortedstr[i] + "&");  
  126.                 }  
  127.             }  
  128.             prestr.Append(key);  
  129.             //生成Md5摘要  
  130.             string sign = GetMD5(prestr.ToString(), _input_charset);  
  131.             //構(gòu)造支付Url  
  132.             char[] delimiterChars = { '='};  
  133.             StringBuilder parameter = new StringBuilder();  
  134.             parameter.Append(gateway);  
  135.             for (i = 0; i < Sortedstr.Length; i++)  
  136.             {  
  137.                parameter.Append(Sortedstr[i].Split(delimiterChars)[0] + "=" +   
  138.                HttpUtility.UrlEncode(Sortedstr[i].Split(delimiterChars)[1])  
  139.                + "&");  
  140.             }  
  141.             parameter.Append("sign=" + sign + "&sign_type=" + sign_type);  
  142.             return parameter.ToString();            //返回支付Url  
  143.         }  
  144.     }  

【代碼解析】在調(diào)用支付寶接口函數(shù)時,,首先通過MD5加密算法對客戶信息進行加密,,然后通過冒泡排序算法交換買家和賣家的數(shù)據(jù)信息構(gòu)造支付URL,,最后返回支付URL,完成在線支付交易,。

注意:通常情況下,,類文件都需要保存在App_Code目錄下,Visual Studio 2010可以自動編譯該目錄下的類文件,。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導購買等信息,謹防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多