/// <summary> /// 通知调用 /// </summary> public ActionResult Notify() { SortedDictionary <string, string> sPara = AlipayCore.GetRequestPost(); if (sPara.Count > 0)//判断是否有带返回参数 { bool verifyResult = AlipayNotify.AppVerify(sPara, Request.Form["notify_id"], Request.Form["sign"], AlipayConfig.AppSignType, AlipayConfig.PublicKey, AlipayConfig.AppInputCharset, AlipayConfig.AppVeryfyUrl, AlipayConfig.Partner); if (verifyResult && (Request.Form["trade_status"] == "TRADE_FINISHED" || Request.Form["trade_status"] == "TRADE_SUCCESS")) //验证成功 { string out_trade_no = Request.Form["out_trade_no"]; //商户订单号 string tradeSN = Request.Form["trade_no"]; //支付宝交易号 decimal tradeMoney = TypeHelper.StringToDecimal(Request.Form["total_amount"]); //交易金额 DateTime tradeTime = TypeHelper.StringToDateTime(Request.Form["gmt_payment"]); //交易时间 return(Content(Recharge.UpdateRecharge(tradeMoney.ToString(), out_trade_no, Request.Form["gmt_payment"], tradeSN))); } else//验证失败 { return(Content("fail")); } } else { return(Content("无通知参数")); } }
/// <summary> /// 通知调用 /// </summary> public ActionResult Notify() { //string forms = "discount=0.00&payment_type=1&subject=%u9ed1%u7c73%u58f3&trade_no=2016111521001004630270573220&buyer_email=15670179992&gmt_create=2016-11-15+09%3a29%3a16¬ify_type=trade_status_sync&quantity=1&out_trade_no=1115092904-1643&seller_id=2088421544580296¬ify_time=2016-11-15+10%3a55%3a09&body=%u8bdd%u8d39%u5957%u9910&trade_status=TRADE_SUCCESS&is_total_fee_adjust=N&total_fee=0.01&gmt_payment=2016-11-15+09%3a29%3a17&seller_email=cbaohai%40126.com&price=0.01&buyer_id=2088012967203633¬ify_id=53526949d59c9297c6641bd8e450a03kv2&use_coupon=N&sign_type=RSA&sign=WDJhrGG2kEgGvKtfPG3WoMn8mwleWbyDTR0scZ6HmSK39OZnlHKS8lSTkYM09ZY4y7%2bxTM1IeNmFsVcbK%2bVJK2jHYX43RyEIyBkCgJVuo0IpUDPYZidyrgEeGKoeV0FPutykbLIueQNSoAENkPsAmFWd1J1FQMYvF8akJL1R%2b5k%3d"; //forms = HttpUtility.UrlDecode(forms, Encoding.UTF8); SortedDictionary <string, string> sPara = AlipayCore.GetRequestPost(); //Dictionary<string, string> dic = CommonHelper.ParmsToDic(forms); //foreach (KeyValuePair<string, string> kv in dic) //{ // sPara[kv.Key] = kv.Value; //} //BSPLog.Instance.Write(Request.Form.ToString()); if (sPara.Count > 0)//判断是否有带返回参数 { bool verifyResult = AlipayNotify.AppVerify(sPara, sPara["notify_id"], sPara["sign"], AlipayConfig.AppSignType, AlipayConfig.PublicKey, AlipayConfig.AppInputCharset, AlipayConfig.AppVeryfyUrl, AlipayConfig.Partner); if (verifyResult && (sPara["trade_status"] == "TRADE_FINISHED" || sPara["trade_status"] == "TRADE_SUCCESS")) //验证成功 { string out_trade_no = sPara["out_trade_no"]; //商户订单号 string tradeSN = sPara["trade_no"]; //支付宝交易号 decimal tradeMoney = TypeHelper.StringToDecimal(sPara["total_fee"]); //交易金额 DateTime tradeTime = TypeHelper.StringToDateTime(sPara["gmt_payment"]); //交易时间 return(Content(Recharge.UpdateRecharge(tradeMoney.ToString(), out_trade_no, sPara["gmt_payment"], tradeSN))); } else//验证失败 { return(Content("fail")); } } else { return(Content("无通知参数")); } }
/// <summary> /// 通知调用 /// </summary> public ActionResult Notify() { SortedDictionary <string, string> paras = AlipayCore.GetRequestPost(); if (paras.Count > 0)//判断是否有带返回参数 { bool verifyResult = AlipayNotify.Verify(paras, Request.Form["notify_id"], Request.Form["sign"], AlipayConfig.SignType, AlipayConfig.Key, AlipayConfig.Code, AlipayConfig.VeryfyUrl, AlipayConfig.Partner); if (verifyResult && (Request.Form["trade_status"] == "TRADE_FINISHED" || Request.Form["trade_status"] == "TRADE_SUCCESS")) //验证成功 { string out_trade_no = Request.Form["out_trade_no"]; //商户订单号 string tradeSN = Request.Form["trade_no"]; //支付宝交易号 decimal tradeMoney = TypeHelper.StringToDecimal(Request.Form["total_fee"]); //交易金额 DateTime tradeTime = TypeHelper.StringToDateTime(Request.Form["gmt_payment"]); //交易时间 List <OrderInfo> orderList = new List <OrderInfo>(); foreach (string oid in StringHelper.SplitString(StringHelper.SubString(out_trade_no, out_trade_no.Length - 10))) { OrderInfo orderInfo = Orders.GetOrderByOid(TypeHelper.StringToInt(oid)); orderList.Add(orderInfo); } decimal allSurplusMoney = 0M; foreach (OrderInfo orderInfo in orderList) { allSurplusMoney += orderInfo.SurplusMoney; } if (orderList.Count > 0 && allSurplusMoney <= tradeMoney) { foreach (OrderInfo orderInfo in orderList) { if (orderInfo.SurplusMoney > 0 && orderInfo.OrderState == (int)OrderState.WaitPaying) { Orders.PayOrder(orderInfo.Oid, OrderState.Confirming, tradeSN, DateTime.Now); OrderActions.CreateOrderAction(new OrderActionInfo() { Oid = orderInfo.Oid, Uid = orderInfo.Uid, RealName = "本人", ActionType = (int)OrderActionType.Pay, ActionTime = tradeTime, ActionDes = "你使用支付宝支付订单成功,支付宝交易号为:" + tradeSN }); } } } return(Content("success")); } else//验证失败 { return(Content("fail")); } } else { return(Content("无通知参数")); } }
/// <summary> /// 通知调用 /// </summary> public ActionResult Notify() { SortedDictionary <string, string> paras = AlipayCore.GetRequestPost(); if (paras.Count > 0)//判断是否有带返回参数 { bool verifyResult = AlipayNotify.Verify(paras, Request.Form["notify_id"], Request.Form["sign"], AlipayConfig.SignType, AlipayConfig.Key, AlipayConfig.Code, AlipayConfig.VeryfyUrl, AlipayConfig.Partner); if (verifyResult && (Request.Form["trade_status"] == "TRADE_FINISHED" || Request.Form["trade_status"] == "TRADE_SUCCESS")) //验证成功 { string out_trade_no = Request.Form["out_trade_no"]; //商户订单号 string tradeSN = Request.QueryString["trade_no"]; //支付宝交易号 decimal tradeMoney = TypeHelper.StringToDecimal(Request.QueryString["total_fee"]); //交易金额 DateTime tradeTime = TypeHelper.StringToDateTime(Request.QueryString["gmt_payment"]); //交易时间 int oid = TypeHelper.StringToInt(StringHelper.SubString(out_trade_no, out_trade_no.Length - 10)); OrderInfo orderInfo = Orders.GetOrderByOid(oid); if (orderInfo != null && orderInfo.PayMode == 1 && orderInfo.PaySN.Length == 0 && orderInfo.SurplusMoney > 0 && orderInfo.SurplusMoney <= tradeMoney) { Orders.PayOrder(oid, OrderState.Confirming, tradeSN, "alipay", "支付宝", DateTime.Now); OrderActions.CreateOrderAction(new OrderActionInfo() { Oid = oid, Uid = orderInfo.Uid, RealName = "本人", AdminGid = 1, AdminGTitle = "非管理员", ActionType = (int)OrderActionType.Pay, ActionTime = tradeTime, ActionDes = "你使用支付宝支付订单成功,支付宝交易号为:" + tradeSN }); //邮件通知客户 if (!string.IsNullOrWhiteSpace(orderInfo.Email)) { Emails.SendOrderPayEmail(orderInfo.Email, "支付宝", tradeMoney.ToString(), orderInfo.OSN); } } return(Content("success")); } else//验证失败 { return(Content("fail")); } } else { return(Content("无通知参数")); } }
/// <summary> /// 通知调用 /// </summary> public ActionResult Notify() { SortedDictionary <string, string> sPara = AlipayCore.GetRequestPost(); if (sPara.Count > 0)//判断是否有带返回参数 { bool verifyResult = AlipayNotify.AppVerify(sPara, Request.Form["notify_id"], Request.Form["sign"], AlipayConfig.AppSignType, AlipayConfig.PublicKey, AlipayConfig.AppInputCharset, AlipayConfig.AppVeryfyUrl, AlipayConfig.Partner); if (verifyResult && (Request.Form["trade_status"] == "TRADE_FINISHED" || Request.Form["trade_status"] == "TRADE_SUCCESS")) //验证成功 { string out_trade_no = Request.Form["out_trade_no"]; //商户订单号 string tradeSN = Request.Form["trade_no"]; //支付宝交易号 decimal tradeMoney = TypeHelper.StringToDecimal(Request.Form["total_fee"]); //交易金额 DateTime tradeTime = TypeHelper.StringToDateTime(Request.Form["gmt_payment"]); //交易时间 int oid = TypeHelper.StringToInt(StringHelper.SubString(out_trade_no, out_trade_no.Length - 10)); OrderInfo orderInfo = Orders.GetOrderByOid(oid); if (orderInfo != null && orderInfo.PayMode == 1 && orderInfo.PaySN.Length == 0 && orderInfo.SurplusMoney > 0 && orderInfo.SurplusMoney <= tradeMoney) { Orders.PayOrder(orderInfo.Oid, OrderState.Confirming, tradeSN, "alipay", "支付宝", DateTime.Now); OrderActions.CreateOrderAction(new OrderActionInfo() { Oid = orderInfo.Oid, Uid = orderInfo.Uid, RealName = "本人", ActionType = (int)OrderActionType.Pay, ActionTime = tradeTime, ActionDes = "你使用支付宝支付订单成功,支付宝交易号为:" + tradeSN }); } return(Content("success")); } else//验证失败 { return(Content("fail")); } } else { return(Content("无通知参数")); } }