예제 #1
0
    protected void Page_Load(object sender, EventArgs e)
    {
        SortedDictionary <string, string> sPara = GetRequestGet();

        if (sPara.Count > 0)//判断是否有带返回参数
        {
            Notify aliNotify    = new Notify();
            bool   verifyResult = aliNotify.Verify(sPara, Request.QueryString["notify_id"], Request.QueryString["sign"]);

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


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

                //商户订单号

                string out_trade_no = Request.QueryString["out_trade_no"];

                //支付宝交易号

                string trade_no = Request.QueryString["trade_no"];

                //交易状态
                string trade_status = Request.QueryString["trade_status"];


                if (Request.QueryString["trade_status"] == "TRADE_FINISHED" || Request.QueryString["trade_status"] == "TRADE_SUCCESS")
                {
                    T_Order  order = new T_Order();
                    OrderBll bll   = new OrderBll();
                    order = bll.GetOrder(out_trade_no);
                    bool res = false;
                    if (order != null)
                    {
                        if (order.OrderStatus == "待付款")
                        {
                            order.OrderStatus = "已付款待发货";
                            order.PayType     = "支付宝手机支付";
                            order.paycode     = trade_no;
                            res = bll.UpdateOrder(order);
                            if (res)
                            {
                                T_OrderLog modellog = new T_OrderLog();
                                modellog.LastDate  = DateTime.Now;
                                modellog.OrderCode = out_trade_no;
                                modellog.PayCode   = trade_no;
                                modellog.PayStatus = "支付宝手机支付——支付成功";
                                modellog.Remark    = "成功";
                                bll.AddOrderLog(modellog);
                            }
                        }
                    }

                    //判断该笔订单是否在商户网站中已经做过处理
                    //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
                    //如果有做过处理,不执行商户的业务程序
                }
                else
                {
                    OrderBll   bll      = new OrderBll();
                    T_OrderLog modellog = new T_OrderLog();
                    modellog.LastDate  = DateTime.Now;
                    modellog.OrderCode = out_trade_no;
                    modellog.PayCode   = trade_no;
                    modellog.PayStatus = "支付宝手机支付——支付失败";
                    modellog.Remark    = Request.QueryString["trade_status"].ToString();
                    bll.AddOrderLog(modellog);
                    Response.Write("trade_status=" + Request.QueryString["trade_status"]);
                }

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

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

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

        if (sPara.Count > 0)//判断是否有带返回参数
        {
            Notify aliNotify    = new Notify();
            bool   verifyResult = aliNotify.Verify(sPara, Request.Form["notify_id"], Request.Form["sign"]);

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


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

                //商户订单号

                string out_trade_no = Request.Form["out_trade_no"];

                //支付宝交易号

                string trade_no = Request.Form["trade_no"];

                //交易状态
                string trade_status = Request.Form["trade_status"];


                if (Request.Form["trade_status"] == "TRADE_FINISHED")
                {
                    T_Order  order = new T_Order();
                    OrderBll bll   = new OrderBll();
                    order = bll.GetOrder(out_trade_no);
                    bool res = false;
                    if (order != null)
                    {
                        if (order.OrderStatus == "待付款")
                        {
                            order.OrderStatus = "已付款待发货";
                            order.PayType     = "支付宝手机支付";
                            order.paycode     = trade_no;
                            res = bll.UpdateOrder(order);
                            if (res)
                            {
                                T_OrderLog modellog = new T_OrderLog();
                                modellog.LastDate  = DateTime.Now;
                                modellog.OrderCode = out_trade_no;
                                modellog.PayCode   = trade_no;
                                modellog.PayStatus = "支付宝手机支付——支付成功";
                                modellog.Remark    = "成功";
                                bll.AddOrderLog(modellog);
                            }
                        }
                    }
                    //判断该笔订单是否在商户网站中已经做过处理
                    //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
                    //请务必判断请求时的total_fee、seller_id与通知时获取的total_fee、seller_id为一致的
                    //如果有做过处理,不执行商户的业务程序

                    //注意:
                    //退款日期超过可退款期限后(如三个月可退款),支付宝系统发送该交易状态通知
                }
                else if (Request.Form["trade_status"] == "TRADE_SUCCESS")
                {
                    T_Order  order = new T_Order();
                    OrderBll bll   = new OrderBll();
                    order = bll.GetOrder(out_trade_no);
                    bool res = false;
                    if (order != null)
                    {
                        if (order.OrderStatus == "待付款")
                        {
                            order.OrderStatus = "已付款待发货";
                            order.PayType     = "支付宝手机支付";
                            order.paycode     = trade_no;
                            res = bll.UpdateOrder(order);
                            if (res)
                            {
                                T_OrderLog modellog = new T_OrderLog();
                                modellog.LastDate  = DateTime.Now;
                                modellog.OrderCode = out_trade_no;
                                modellog.PayCode   = trade_no;
                                modellog.PayStatus = "支付宝手机支付——支付成功";
                                modellog.Remark    = "成功";
                                bll.AddOrderLog(modellog);
                            }
                        }
                    }
                    //判断该笔订单是否在商户网站中已经做过处理
                    //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
                    //请务必判断请求时的total_fee、seller_id与通知时获取的total_fee、seller_id为一致的
                    //如果有做过处理,不执行商户的业务程序

                    //注意:
                    //付款完成后,支付宝系统发送该交易状态通知
                }
                else
                {
                }

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

                Response.Write("success");  //请不要修改或删除

                /////////////////////////////////////////////////////////////////////////////////////////////////////////////
            }
            else//验证失败
            {
                Response.Write("fail");
            }
        }
        else
        {
            Response.Write("无通知参数");
        }
    }