Beispiel #1
0
        //接受处理方法
        public void Receive(HttpContext context)
        {
            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 trade_no = Request.QueryString["trade_no"];              //支付宝交易号
                    string order_no = Request.QueryString["out_trade_no"];	        //获取订单号
                    string total_fee = Request.QueryString["total_fee"];            //获取总金额
                    string subject = Request.QueryString["subject"];                //商品名称、订单名称
                    string body = Request.QueryString["body"];                      //商品描述、订单备注、描述
                    string buyer_email = Request.QueryString["buyer_email"];        //买家支付宝账号
                    string trade_status = Request.QueryString["trade_status"];      //交易状态

                    object model = null;
                    if(order_no.Substring(0, 2) == "2_")
                    {
                        model = AdOrderDAL.GetOrder(order_no.Substring(2, order_no.Length - 2));
                    }
                    else
                    {
                        model = OrderDAL.GetOrder(order_no.Substring(2, order_no.Length - 2));
                    }

                    if(model == null) Response.Redirect(string.Format("PayResult.aspx?errorInfo={0}", HttpUtility.UrlEncode("未找到对应的订单编号")), true);
                    //if (model.Rows[0]["AlipayStatue"].ToString() == "success") Response.Redirect("PayResult.aspx?info=true", true);
                    //if (model.Rows[0]["AlipayStatue"].ToString() == "fail") Response.Redirect("PayResult.aspx?info=false", true);
                    Response.Redirect(string.Format("~/PayResult.aspx?orderno={1}&result={0}", IsSuccess(trade_status.ToString()).ToString(), order_no), true);
                }
            }
        }
Beispiel #2
0
        //接受处理方法
        public void Receive(HttpContext context)
        {
            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 trade_no = Request.Form["trade_no"];         //支付宝交易号
                    string order_no = Request.Form["out_trade_no"];     //获取订单号
                    string total_fee = Request.Form["total_fee"];       //获取总金额
                    string subject = Request.Form["subject"];           //商品名称、订单名称
                    string body = Request.Form["body"];                 //商品描述、订单备注、描述
                    string buyer_email = Request.Form["buyer_email"];   //买家支付宝账号
                    string trade_status = Request.Form["trade_status"]; //交易状态
                    bool IsAdOrder = false;
                    try
                    {
                        if(order_no.Substring(0, 2) == "2_") IsAdOrder = true;
                        order_no = order_no.Substring(2, order_no.Length - 2);
                        if(IsAdOrder == false)
                        {
                            OrderModel model = OrderDAL.GetOrder(order_no);
                            if(model == null) Response.Write("success");
                            else
                            {
                                if(trade_status == "TRADE_FINISHED" || trade_status == "TRADE_SUCCESS")
                                {
                                    int fee = Convert.ToInt32(Convert.ToDecimal(total_fee));
                                    bool result = OrderDAL.PayOrder(order_no, trade_no);
                                }
                            }
                        }
                        else
                        {
                            AdOrderModel model = AdOrderDAL.GetOrder(order_no);
                            if(model == null) Response.Write("success");
                            else
                            {
                                if(trade_status == "TRADE_FINISHED" || trade_status == "TRADE_SUCCESS")
                                {
                                    int fee = Convert.ToInt32(Convert.ToDecimal(total_fee));
                                    bool result = OrderDAL.PayOrder(order_no, trade_no);
                                }
                            }
                        }
                        XLog.XTrace.WriteLine(string.Format("内部订单:【" + (IsAdOrder ? "普通订单" : "广告订单") + "】【{2}】,支付宝订单:【{0}】,返回结果:【{1}】,充值金额:【{3}】", trade_no, trade_status, order_no, total_fee));
                        Response.Write("success");
                    }
                    catch (Exception ex)
                    {
                        XLog.XTrace.WriteLine(ex.Message);
                    }
                }
                else
                {
                    Response.Write("fail");
                }
            }
            Response.Write("fail");
        }