• 支付宝接口


    protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                //lbl_Num.Text = Request["OrderID"].ToString();
                //lbl_Prices.Text = Request["Money"].ToString();
    
                //按时构造订单号;
                System.DateTime currentTime = new System.DateTime();
                currentTime = System.DateTime.Now;
                string out_trade_no = currentTime.ToString("g");
                out_trade_no = out_trade_no.Replace("-", "");
                out_trade_no = out_trade_no.Replace(":", "");
                out_trade_no = out_trade_no.Replace(" ", "");
                lbl_Num.Text = out_trade_no;
            }
        }
    
    
        //进入支付宝支付
        protected void Button1_Click(object sender, EventArgs e)
        {
            string out_trade_no = "2009052610003";
            //业务参数赋值;
            string gateway = "https://www.alipay.com/cooperate/gateway.do?";	//'支付接口
            string service = "create_direct_pay_by_user";
            string partner = "2086102833883695";		//partner		合作伙伴ID			保留字段
            string sign_type = "MD5";
            string subject = "####购物网商品";	//subject		商品名称
            string body = "####购物网";		//body			商品描述    
            string payment_type = "1";                  //支付类型	
            string total_fee = "0.01";                      //总金额					0.01~50000.00
            string show_url = "www.163.3com";
            string seller_email = "566666666434@163.com";             //卖家账号
            string key = "7xlym97z460sz8psuidrslw7k3o986cz";              //partner账户的支付宝安全校验码
            string return_url = "http://www.163.com/Alipay_Return.aspx"; //服务器通知返回接口
            string notify_url = "http://www.163.com/Alipay_Notify.aspx"; //服务器通知返回接口
            string _input_charset = "utf-8";
    
            AliPay ap = new AliPay();
            string aliay_url = ap.CreatUrl(
                gateway,
                service,
                partner,
                sign_type,
                out_trade_no,
                subject,
                body,
                payment_type,
                total_fee,
                show_url,
                seller_email,
                key,
                return_url,
                _input_charset,
                notify_url
                );
    
            Response.Redirect(aliay_url);
        }
    
        //构建AliPay类
        public class AliPay
        {
    
            public static string GetMD5(string s, string _input_charset)
            {
    
                /// <summary>
                /// 与ASP兼容的MD5加密算法
                /// </summary>
    
                MD5 md5 = new MD5CryptoServiceProvider();
                byte[] t = md5.ComputeHash(Encoding.GetEncoding(_input_charset).GetBytes(s));
                StringBuilder sb = new StringBuilder(32);
                for (int i = 0; i < t.Length; i++)
                {
                    sb.Append(t[i].ToString("x").PadLeft(2, '0'));
                }
                return sb.ToString();
            }
    
            public static string[] BubbleSort(string[] r)
            {
                /// <summary>
                /// 冒泡排序法
                /// </summary>
    
                int i, j; //交换标志 
                string temp;
    
                bool exchange;
    
                for (i = 0; i < r.Length; i++) //最多做R.Length-1趟排序 
                {
                    exchange = false; //本趟排序开始前,交换标志应为假
    
                    for (j = r.Length - 2; j >= i; j--)
                    {
                        if (System.String.CompareOrdinal(r[j + 1], r[j]) < 0) //交换条件
                        {
                            temp = r[j + 1];
                            r[j + 1] = r[j];
                            r[j] = temp;
    
                            exchange = true; //发生了交换,故将交换标志置为真 
                        }
                    }
    
                    if (!exchange) //本趟排序未发生交换,提前终止算法 
                    {
                        break;
                    }
    
                }
                return r;
            }
    
            public string CreatUrl(
                string gateway,
                string service,
                string partner,
                string sign_type,
                string out_trade_no,
                string subject,
                string body,
                string payment_type,
                string total_fee,
                string show_url,
                string seller_email,
                string key,
                string return_url,
                string _input_charset,
                string notify_url
                )
            {
                /// <summary>
                /// created by sunzhizhi 2006.5.21,sunzhizhi@msn.com。
                /// </summary>
                int i;
    
                //构造数组;
                string[] Oristr ={ 
                    "service="+service, 
                    "partner=" + partner, 
                    "subject=" + subject, 
                    "body=" + body, 
                    "out_trade_no=" + out_trade_no, 
                    "total_fee=" + total_fee, 
                    "show_url=" + show_url,  
                    "payment_type=" + payment_type, 
                    "seller_email=" + seller_email, 
                    "notify_url=" + notify_url,
                    "_input_charset="+_input_charset,          
                    "return_url=" + return_url
                    };
    
                //进行排序;
                string[] Sortedstr = BubbleSort(Oristr);
    
    
                //构造待md5摘要字符串 ;
    
                StringBuilder prestr = new StringBuilder();
    
                for (i = 0; i < Sortedstr.Length; i++)
                {
                    if (i == Sortedstr.Length - 1)
                    {
                        prestr.Append(Sortedstr[i]);
    
                    }
                    else
                    {
    
                        prestr.Append(Sortedstr[i] + "&");
                    }
    
                }
    
                prestr.Append(key);
    
                //生成Md5摘要;
                string sign = GetMD5(prestr.ToString(), _input_charset);
    
                //构造支付Url;
                char[] delimiterChars = { '=' };
                StringBuilder parameter = new StringBuilder();
                parameter.Append(gateway);
                for (i = 0; i < Sortedstr.Length; i++)
                {
    
                    parameter.Append(Sortedstr[i].Split(delimiterChars)[0] + "=" + HttpUtility.UrlEncode(Sortedstr[i].Split(delimiterChars)[1]) + "&");
                }
    
                parameter.Append("sign=" + sign + "&sign_type=" + sign_type);
    
    
                //返回支付Url;
                return parameter.ToString();
    
            }
        }
  • 相关阅读:
    FORTRAN:现代软件开放的奠基者
    头条前端架构师总结全面的react组件通讯的技巧和弊端
    9 组 APP 的配色参考,超多色系,任意搭配选择
    洛克希德·马丁 公司的开源项目github
    SOLIDWORKS产生和发展成功的原因
    IT历史连载26Mac操作系统的历史
    使用Parasolid内核的软件有哪些?
    反射技术与工厂方法
    C++各大有名库的介绍
    Identity Server 4 从入门到落地(八)—— .Net Framework 客户端
  • 原文地址:https://www.cnblogs.com/qinge/p/4566493.html
Copyright © 2020-2023  润新知