protected void btnAcceptRefund_Click(object sender, EventArgs e) { bool flag = true; string userName = HiContext.Current.Manager.UserName; string adminRemark = Globals.StripAllTags(this.txtAdminRemark.Text); int refundId = this.Page.Request.QueryString["RefundId"].ToInt(0); RefundInfo refundInfo = TradeHelper.GetRefundInfo(refundId); if (refundInfo == null) { this.ShowMsg("错误的退款申请信息", false); } else { OrderInfo orderInfo = OrderHelper.GetOrderInfo(refundInfo.OrderId); if (orderInfo == null) { this.ShowMsg("错误的订单信息", false); } else { decimal num = this.txtRefundMoney.Text.ToDecimal(0); if (num < decimal.Zero) { this.ShowMsg("退款金额必须大于等于0", false); } else { if (!refundInfo.IsServiceProduct) { GroupBuyInfo groupbuy = null; if (orderInfo.GroupBuyId > 0) { groupbuy = ProductBrowser.GetGroupBuy(orderInfo.GroupBuyId); } if (num > orderInfo.GetCanRefundAmount("", groupbuy, 0)) { this.ShowMsg("退款金额不能大于订单/商品最大金额", false); return; } } else if (num > refundInfo.RefundAmount) { this.ShowMsg("退款金额不能大于可退款总额", false); return; } if (refundInfo.HandleStatus != 0) { this.ShowMsg("退款状态不正确", false); } else if (refundInfo.IsServiceProduct || (!refundInfo.IsServiceProduct && OrderHelper.CanFinishRefund(orderInfo, refundInfo, num, false))) { RefundTypes refundType = refundInfo.RefundType; string userRemark = refundInfo.UserRemark; MemberInfo user = Users.GetUser(orderInfo.UserId); string text = ""; if (RefundHelper.IsBackReturn(orderInfo.Gateway) && refundInfo.RefundType == RefundTypes.BackReturn) { text = RefundHelper.SendRefundRequest(orderInfo, num, refundInfo.RefundOrderId, true); if (text == "") { if (OrderHelper.CheckRefund(orderInfo, refundInfo, num, userName, adminRemark, true, false)) { VShopHelper.AppPushRecordForOrder(orderInfo.OrderId, "", EnumPushOrderAction.OrderRefund); Messenger.OrderRefund(user, orderInfo, ""); this.ShowMsg("成功的完成退款并且已成功原路退回退款金额!", true, HttpContext.Current.Request.Url.ToString()); } } else { TradeHelper.SaveRefundErr(refundInfo.RefundId, text, true); this.ShowMsg("退款原路返回错误,错误信息" + text + ",请重新尝试!", false); } } else if (OrderHelper.CheckRefund(orderInfo, refundInfo, num, userName, adminRemark, true, false)) { Messenger.OrderRefund(user, orderInfo, ""); VShopHelper.AppPushRecordForOrder(orderInfo.OrderId, "", EnumPushOrderAction.OrderRefund); if (refundInfo.RefundType == RefundTypes.InBalance) { this.ShowMsg("成功确定了退款,退款金额已退回用户预付款帐号!", true, HttpContext.Current.Request.Url.ToString()); } else { this.ShowMsg("成功的完成了退款,请即时给用户退款", true, HttpContext.Current.Request.Url.ToString()); } } } } } } }