Ejemplo n.º 1
0
        /// <summary>
        /// 异步通知页面
        /// </summary>
        /// <returns></returns>
        public ActionResult asynchroReturn_url()
        {
            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")
                    {
                        //判断该笔订单是否在商户网站中已经做过处理
                        //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
                        //如果有做过处理,不执行商户的业务程序

                        //注意:
                        //该种交易状态只在两种情况下出现
                        //1、开通了普通即时到账,买家付款成功后。
                        //2、开通了高级即时到账,从该笔交易成功时间算起,过了签约时的可退款时限(如:三个月以内可退款、一年以内可退款等)后。
                    }
                    else if (Request.Form["trade_status"] == "TRADE_SUCCESS")
                    {
                        //判断该笔订单是否在商户网站中已经做过处理
                        //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
                        //如果有做过处理,不执行商户的业务程序

                        //注意:
                        //该种交易状态只在一种情况下出现——开通了高级即时到账,买家付款成功后。
                    }
                    else
                    {
                    }

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

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

                    /////////////////////////////////////////////////////////////////////////////////////////////////////////////
                }
                else//验证失败
                {
                    Response.Write("fail");
                }
            }
            else
            {
                Response.Write("无通知参数");
            }
            return View();
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 同步通知页面
        /// </summary>
        /// <returns></returns>
        public ActionResult synchroReturn_url()
        {
            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 (trade_status == "TRADE_FINISHED" || trade_status == "TRADE_SUCCESS")
                    {
                        //判断该笔订单是否在商户网站中已经做过处理
                        //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
                        //如果有做过处理,不执行商户的业务程序
                    }
                    else
                    {
                        Response.Write("trade_status=" + Request.QueryString["trade_status"]);
                    }

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

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

                    var model = _order.GetModelList(" o_Code = '" + out_trade_no + "'").First();
                    model.o_AlipayNo = trade_no;
                    //付款成功
                    model.o_StatusCode = Model.OrderStatus.付款成功.GetHashCode();
                    _order.Update(model);

                    Response.Redirect("/Order/SuccessOrder?id=" + model.o_ID, true);

                    /////////////////////////////////////////////////////////////////////////////////////////////////////////////
                }
                else//验证失败
                {
                    Response.Write("验证失败");
                }
            }
            else
            {
                Response.Write("无返回参数");
            }
            return View();
        }
Ejemplo n.º 3
0
        public void AirPayMsg()
        {
            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" || Request.Form["trade_status"] == "TRADE_SUCCESS")
                    {
                        //判断该笔订单是否在商户网站中已经做过处理
                        //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
                        //如果有做过处理,不执行商户的业务程序

                        //注意:
                        //该种交易状态只在两种情况下出现
                        //1、开通了普通即时到账,买家付款成功后。
                        //2、开通了高级即时到账,从该笔交易成功时间算起,过了签约时的可退款时限(如:三个月以内可退款、一年以内可退款等)后。
                        try
                        {
                            order = om.GetOrder(out_trade_no);
                            if (order.State == 0)
                            {
                                if (om.UpdateOrder(out_trade_no))
                                {
                                    result_info = "您的订单:" + out_trade_no + "已支付成功!";
                                    isok = true;
                                    //gu = gum.GetGameUser(order.UserName);
                                    #region  返利券暂未开放
                                    //是否使用返利券
                                    //if (order.RebateId > 0)
                                    //{
                                    //    //返利券暂未开放
                                    //}
                                    //else
                                    //{
                                    //    if (order.ConvertId > 0)
                                    //    {
                                    //        // new DAL.convertnum().UpdateField(order.convertid, " state=1,usergettime='" + DateTime.Now.ToString() + "'");
                                    //    }
                                    //    else
                                    //    {
                                    //        string scale1 = new DAL.rebatetype().GetRange(order.PayMoney);   //获得返利比
                                    //        if (!string.IsNullOrEmpty(scale1))
                                    //        {
                                    //            //生成返利券
                                    //            Model.rebatenum rebatenum = new Model.rebatenum();
                                    //            Random ran = new Random();
                                    //            string code5 = ran.Next(10, 99).ToString();
                                    //            string no1 = DateTime.Now.ToString("yyyyMMddhhmmss") + DateTime.Now.Millisecond;
                                    //            rebatenum.no = code5 + no1.Substring(2, no1.Length - 2);
                                    //            rebatenum.pwd = "000";
                                    //            rebatenum.num = int.Parse(scale1);
                                    //            rebatenum.userid = gu.Id;
                                    //            rebatenum.typeid = 0;
                                    //            new DAL.rebatenum().Add(rebatenum);
                                    //        }
                                    //    }
                                    //}
                                    #endregion
                                    //根据订单进行充值
                                    result_info = gm.PayManager(out_trade_no);
                                }
                                else
                                {
                                    result_info = "您的订单:" + out_trade_no + "更新订单状态失败!";
                                }
                            }
                            else
                            {
                                Response.Redirect("/Home/Index");
                            }
                        }
                        catch (Exception ex)
                        {
                            result_info = "出错啦!" + ex.Message;
                        }
                        Response.Write("success");  //请不要修改或删除
                    }
                    else
                    {
                        result_info = "验证失败";
                        Response.Write("fail");
                    }
                }
                else//验证失败
                {
                    result_info = "无返回参数";
                    Response.Write("fail");
                }
            }
            else
            {
                Response.Write("无通知参数");
            }
            Session["AirPayinfo"] = isok + "|" + result_info;
            Response.Redirect("AirPay");
        }
Ejemplo n.º 4
0
 public void RaiseNotification(string message)
 {
     Notify?.Invoke(message);
 }
Ejemplo n.º 5
0
 public void AirPayReq()
 {
     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")
             {
                 try
                 {
                     order = om.GetOrder(out_trade_no);
                     if (order.State == 0)
                     {
                         if (om.UpdateOrder(out_trade_no))
                         {
                             result_info = "您的订单:" + out_trade_no + "已支付成功!";
                             isok = true;
                             //gu = gum.GetGameUser(order.UserName);
                             #region  返利券暂未开放
                             //是否使用返利券
                             //if (order.RebateId > 0)
                             //{
                             //    //返利券暂未开放
                             //}
                             //else
                             //{
                             //    if (order.ConvertId > 0)
                             //    {
                             //        // new DAL.convertnum().UpdateField(order.convertid, " state=1,usergettime='" + DateTime.Now.ToString() + "'");
                             //    }
                             //    else
                             //    {
                             //        string scale1 = new DAL.rebatetype().GetRange(order.PayMoney);   //获得返利比
                             //        if (!string.IsNullOrEmpty(scale1))
                             //        {
                             //            //生成返利券
                             //            Model.rebatenum rebatenum = new Model.rebatenum();
                             //            Random ran = new Random();
                             //            string code5 = ran.Next(10, 99).ToString();
                             //            string no1 = DateTime.Now.ToString("yyyyMMddhhmmss") + DateTime.Now.Millisecond;
                             //            rebatenum.no = code5 + no1.Substring(2, no1.Length - 2);
                             //            rebatenum.pwd = "000";
                             //            rebatenum.num = int.Parse(scale1);
                             //            rebatenum.userid = gu.Id;
                             //            rebatenum.typeid = 0;
                             //            new DAL.rebatenum().Add(rebatenum);
                             //        }
                             //    }
                             //}
                             #endregion
                             //根据订单进行充值
                             result_info = gm.PayManager(out_trade_no);
                         }
                         else
                         {
                             result_info = "您的订单:" + out_trade_no + "更新订单状态失败!";
                         }
                     }
                     else
                     {
                         Response.Redirect("/Home/Index");
                     }
                 }
                 catch (Exception ex)
                 {
                     result_info = "出错啦!" + ex.Message;
                 }
                 Response.Write("success");  //请不要修改或删除
                 //成功状态
             }
         }
         //失败状态
     }
     else
     {
         result_info = "无返回参数";
         Response.Write("无返回参数");
     }
     Session["AirPayinfo"] = isok + "|" + result_info;
     Response.Redirect("AirPay");
 }