protected void Page_Load(object sender, EventArgs e)
    {
        //string alipayNotifyURL = "https://www.alipay.com/cooperate/gateway.do?service=notify_verify";
        string alipayNotifyURL = "http://notify.alipay.com/trade/notify_query.do?";
        string partner = "2088101963067807";  //partner合作伙伴id(必须填写)
        string key = "u3l0sr7a6r5ofcm6uhp5m8lp7yb3uyz5"; //partner 的对应交易安全校验码(必须填写)
        string _input_charset = "utf-8";        string buy_id = Convert.ToString(Session["fjk"]);
        // string buyname = AliPay.GetMD5(buy_id, "utf-8");
        //string mm = FormsAuthentication.HashPasswordForStoringInConfigFile(buy_id,"MD5");
        alipayNotifyURL = alipayNotifyURL + "&partner=" + partner + "&notify_id=" + Request.Form["notify_id"];
        //获取支付宝ATN返回结果,true是正确的订单信息,false 是无效的
        string responseTxt = Get_Http(alipayNotifyURL, 120000);
        int i;
        NameValueCollection coll;
        //Load Form variables into NameValueCollection variable.
        coll = Request.Form;        // Get names of all forms into a string array.
        String[] requestarr = coll.AllKeys;        //进行排序;
        string[] Sortedstr = AliPay.BubbleSort(requestarr);
        //构造待md5摘要字符串 ;
        string prestr = "";
        for (i = 0; i < Sortedstr.Length; i++)
        {
            if (Request.Form[Sortedstr[i]] != "" && Sortedstr[i] != "sign" && Sortedstr[i] != "sign_type")
            {
                if (i == Sortedstr.Length - 1)
                {
                    prestr = prestr + Sortedstr[i] + "=" + Request.Form[Sortedstr[i]];
                }
                else
                {
                    prestr = prestr + Sortedstr[i] + "=" + Request.Form[Sortedstr[i]] + "&";
                }
            }
        }
        prestr = prestr + key;        string mysign = AliPay.GetMD5(prestr, _input_charset);        string sign = Request.Form["sign"];        if (mysign == sign && responseTxt == "true")   //验证支付发过来的消息,签名是否正确
        {
            if (Request.Form["trade_status"] == "WAIT_BUYER_PAY")//判断支付状态_等待买家付款(文档中有枚举表可以参考)            
            {
                //更新自己数据库的订单语句,请自己填写一下
                string strOrderNO = Request.Form["out_trade_no"];//订单号
                string strPrice = Request.Form["total_fee"];//金额
                //Response.Write("success");     //返回给支付宝消息,成功,请不要改写这个success
            }
            else if (Request.Form["trade_status"] == "TRADE_FINISHED")//   判断支付状态_TRADE_FINISHED交易成功(文档中有枚举表可以参考)
            //如果trade_status的值是TRADE_SUCCESSED,是因为您用的测试帐号是返回的这个结果,改成您自己的支付宝帐号和PID以及KEY,则返回的值才是TRADE_FINISHED            
            {
                //更新自己数据库的订单语句,请自己填写一下
                string strOrderNO = Request.Form["out_trade_no"];//订单号
                string strPrice = Request.Form["total_fee"];//金额
                //根据订单号更新金额
                //根据订单号查询金额
                MoPay mo = new MoPay();
                mo.CzxPrice = Convert.ToDecimal(strPrice);
                mo.PayUser = Convert.ToString(Session["fjk"]);
                mo.MoOrderId = strOrderNO;
                mo.PayTime = DateTime.Now.ToString();
                mo.State = 0;
               
                int i=MoPayManager.addMoPay(mo);
                if (i > 0) {
                    Response.Write("success");
                }
            }
        }
        else
        {
            Response.Write("fail");            //最好写TXT文件,以记录下是否异步返回记录。            //写文本,纪录支付宝返回消息,比对md5计算结果(如网站不支持写txt文件,可改成写数据库)
            //string TOEXCELLR = "MD5结果:mysign=" + mysign + ",sign=" + sign + ",responseTxt=" + responseTxt;
            //StreamWriter fs = new StreamWriter(Server.MapPath("Notify_DATA/" + DateTime.Now.ToString().Replace(":", "")) + ".txt", false, System.Text.Encoding.Default);
            //fs.Write(TOEXCELLR);
            //fs.Close();
        }    }

解决方案 »

  1.   

    代码如上所示,
      MoPay mo = new MoPay();
                    mo.CzxPrice = Convert.ToDecimal(strPrice);
                    mo.PayUser = Convert.ToString(Session["fjk"]);
                    mo.MoOrderId = strOrderNO;
                    mo.PayTime = DateTime.Now.ToString();
                    mo.State = 0;
                   
                    int i=MoPayManager.addMoPay(mo);
                    if (i > 0) {
                        Response.Write("success");
                    }
    Addmopay为什么执行不了啊
      

  2.   

    Alipay_Notify.aspx.cs
    Alipay_Return.aspx.cs
    这是支付宝提供的两个接口