Пример #1
0
        protected void Page_Load(object sender, EventArgs e)
        {
            SortedDictionary <string, string> sPara = GetRequestGet();
            //商户订单号
            string     out_trade_no = Request.QueryString["out_trade_no"];
            Lebi_Order order        = B_Lebi_Order.GetModel("Code=lbsql{'" + out_trade_no + "'}");

            if (order == null)
            {
                Response.Write("系统错误");
                Response.End();
                return;
            }
            if (sPara.Count > 0)//判断是否有带返回参数
            {
                Notify aliNotify    = new Notify(order);
                bool   verifyResult = aliNotify.Verify(sPara, Request.QueryString["notify_id"], Request.QueryString["sign"]);

                if (verifyResult)//验证成功
                {
                    /////////////////////////////////////////////////////////////////////////////////////////////////////////////
                    //请在这里加上商户的业务逻辑程序代码


                    //——请根据您的业务逻辑来编写程序(以下代码仅作参考)——
                    //获取支付宝的通知返回参数,可参考技术文档中页面跳转同步通知参数列表

                    //支付宝交易号

                    string trade_no = RequestTool.RequestString("trade_no");

                    //交易状态
                    string trade_status = RequestTool.RequestString("trade_status");

                    SystemLog.Add("订单号:" + trade_no + "状态" + trade_status);
                    if (trade_status == "TRADE_FINISHED" || trade_status == "TRADE_SUCCESS")
                    {
                        //判断该笔订单是否在商户网站中已经做过处理
                        //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
                        //如果有做过处理,不执行商户的业务程序
                        Order.OnlinePaySuccess(out_trade_no, trade_no);
                        Response.Write("success");
                    }
                    else
                    {
                        Response.Write("trade_status=" + trade_status);
                    }



                    //打印页面
                    //Response.Write("验证成功<br />");

                    //——请根据您的业务逻辑来编写程序(以上代码仅作参考)——

                    /////////////////////////////////////////////////////////////////////////////////////////////////////////////
                }
                else//验证失败
                {
                    Response.Write("验证失败");
                }
            }
            else
            {
                Response.Write("无返回参数");
            }
        }
Пример #2
0
        protected void Page_Load(object sender, EventArgs e)
        {
            SortedDictionary <string, string> sPara = GetRequestPost();

            if (sPara.Count == 0)
            {
                sPara = GetRequestGet();
            }
            //商户订单号
            string     out_trade_no = RequestTool.RequestString("out_trade_no");
            Lebi_Order order        = B_Lebi_Order.GetModel("Code=lbsql{'" + out_trade_no + "'}");

            if (order == null)
            {
                SystemLog.Add(out_trade_no + "系统错误");
                Response.Write("系统错误");
                Response.End();
                return;
            }
            if (sPara.Count > 0)//判断是否有带返回参数
            {
                Notify aliNotify    = new Notify(order);
                bool   verifyResult = aliNotify.Verify(sPara, RequestTool.RequestString("notify_id"), RequestTool.RequestString("sign"));

                if (verifyResult)//验证成功
                {
                    /////////////////////////////////////////////////////////////////////////////////////////////////////////////
                    //请在这里加上商户的业务逻辑程序代码


                    //——请根据您的业务逻辑来编写程序(以下代码仅作参考)——
                    //获取支付宝的通知返回参数,可参考技术文档中服务器异步通知参数列表

                    //支付宝交易号

                    string trade_no = RequestTool.RequestString("trade_no");

                    //交易状态
                    string trade_status = RequestTool.RequestString("trade_status");


                    if (trade_status == "TRADE_FINISHED")
                    {
                        //判断该笔订单是否在商户网站中已经做过处理
                        //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
                        //如果有做过处理,不执行商户的业务程序

                        //注意:
                        //该种交易状态只在两种情况下出现
                        //1、开通了普通即时到账,买家付款成功后。
                        //2、开通了高级即时到账,从该笔交易成功时间算起,过了签约时的可退款时限(如:三个月以内可退款、一年以内可退款等)后。

                        Order.OnlinePaySuccess("alipayJSDZ", out_trade_no, trade_no);
                        Response.Write("success");  //请不要修改或删除
                    }
                    else if (trade_status == "TRADE_SUCCESS")
                    {
                        //判断该笔订单是否在商户网站中已经做过处理
                        //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
                        //如果有做过处理,不执行商户的业务程序

                        //注意:
                        //该种交易状态只在一种情况下出现——开通了高级即时到账,买家付款成功后。
                        Order.OnlinePaySuccess("alipayJSDZ", out_trade_no, trade_no);
                        Response.Write("success");  //请不要修改或删除
                    }
                    else
                    {
                        Response.Write("fail");
                        SystemLog.Add("单号付款" + trade_no + " | " + trade_status);
                    }
                    //Response.Write("success");
                    //Order.PaySuccess(out_trade_no, trade_no);
                }
                else//验证失败
                {
                    Response.Write("fail");
                    SystemLog.Add(out_trade_no + "验证fail");
                }
            }
            else
            {
                Response.Write("无通知参数");
                SystemLog.Add(out_trade_no + "无通知参数");
            }
        }