public HttpResponseMessage RefundNotifyUrl() { SortedDictionary <string, string> sPara = GetRequestPost(); var ret = "fail"; if (sPara.Count > 0)//判断是否有带返回参数 { XuHos.BLL.OrderService service = new OrderService(CurrentOperatorUserID); var Request = System.Web.HttpContext.Current.Request; //批次号 string batch_no = Request.Form["batch_no"]; //批量退款数据中转账成功的笔数 string success_num = Request.Form["success_num"]; //批量退款数据中的详细信息 string result_details = Request.Form["result_details"]; //通知编号 string notify_id = Request.Form["notify_id"]; //签名 string sign = Request.Form["sign"]; var order = service.GetOrder(batch_no); var alipay = new WebPay(order.SellerID); if (alipay.VerifySign(sPara, notify_id, sign))//验证成功 { if (service.RefundCompleted(order.OrderNo, EnumPayType.AliPay)) { ret = "success"; } } } //返回处理结果 return(new HttpResponseMessage { Content = new StringContent(ret, Encoding.GetEncoding("UTF-8"), "text/plain") }); }
public IHttpActionResult ReturnUrl() { var payConfig = SysConfigService.Get <XuHos.Common.Config.Sections.Pay>(); try { var Request = System.Web.HttpContext.Current.Request; var sPara = GetRequestGet(); if (sPara.Count > 0)//判断是否有带返回参数 { string seller_id = Request.QueryString["seller_id"]; //商户订单号 string out_trade_no = Request.QueryString["out_trade_no"]; //支付宝交易号 string trade_no = Request.QueryString["trade_no"]; //交易状态 string trade_status = Request.QueryString["trade_status"]; //总金额 string total_fee = Request["total_fee"]; //通知编号 string notify_id = Request.QueryString["notify_id"]; //签名 string sign = Request.QueryString["sign"]; var alipay = new WebPay(seller_id); //验证成功 if ((trade_status == "TRADE_FINISHED" || trade_status == "TRADE_SUCCESS")) { if (alipay.VerifySign(sPara, notify_id, sign)) { XuHos.BLL.OrderService service = new OrderService(CurrentOperatorUserID); var order = service.GetOrder(out_trade_no); if (order != null) { if (order.TotalFee == decimal.Parse(total_fee)) { if (service.PayCompleted(out_trade_no, trade_no, XuHos.Common.Enum.EnumPayType.AliPay, seller_id)) { return(Redirect($"{payConfig.ReturnUrlPrefix}/Trade/Order/PaySuccessfully?OrderNo={out_trade_no}")); } else { return(Redirect($"{payConfig.ReturnUrlPrefix}/Trade/Order/Error?message=系统错误,更新订单状态失败")); } } else { return(Redirect($"{payConfig.ReturnUrlPrefix}/Trade/Order/Error?message=参数非法,参数“totalFee”或 “seller_id”不正确")); } } else { return(Redirect($"{payConfig.ReturnUrlPrefix}/Trade/Order/Error?message=参数非法,订单不存在")); } } else { return(Redirect($"{payConfig.ReturnUrlPrefix}/Trade/Order/PaySuccessfully?OrderNo={out_trade_no}")); } } } return(Redirect($"{payConfig.ReturnUrlPrefix}/Trade/Order/Error?message=参数非法,不是合法的支付请求")); } catch (Exception E) { return(Redirect($"{payConfig.ReturnUrlPrefix}/Trade/Order/Error?message={E.Message}")); } }
public HttpResponseMessage NotifyUrl() { var Request = System.Web.HttpContext.Current.Request; var content = ""; try { LogHelper.WriteDebug("Cashier/AliPay/NotifyUrl", Request.Params.ToJson()); SortedDictionary <string, string> sPara = GetRequestPost(); if (sPara.Count > 0)//判断是否有带返回参数 { //通知编号 string seller_id = Request.Form["seller_id"]; //商户订单号 string out_trade_no = Request.Form["out_trade_no"]; //支付宝交易号 string trade_no = Request.Form["trade_no"]; //交易状态 string trade_status = Request.Form["trade_status"]; //总金额 string total_fee = Request["total_fee"]; //通知编号 string notify_id = Request.Form["notify_id"]; //签名 string sign = Request.Form["sign"]; var alipay = new WebPay(seller_id); if ((trade_status == "TRADE_FINISHED" || trade_status == "TRADE_SUCCESS") && alipay.VerifySign(sPara, notify_id, sign))//验证成功 { using (XuHos.EventBus.MQChannel mqChanne = new EventBus.MQChannel()) { if (mqChanne.Publish <EventBus.Events.OrderPayNotifyEvent>(new EventBus.Events.OrderPayNotifyEvent() { OrderNo = out_trade_no, TradeNo = trade_no, PayType = EnumPayType.AliPay, SelllerID = seller_id })) { content = "success"; } } } } content = "fail"; } catch (Exception E) { LogHelper.WriteError(E); content = "fail"; } //返回处理结果 return(new HttpResponseMessage { Content = new StringContent(content, Encoding.GetEncoding("UTF-8"), "text/plain") }); }