/// <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(); }
/// <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(); }
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"); }
public void RaiseNotification(string message) { Notify?.Invoke(message); }
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"); }