//接受处理方法 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); } } }
//接受处理方法 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"); }