public void Submit(string provider) { PayProvider pay = LoadProvider(provider); if (pay != null) { if (pay.IsNeedSubmit) { try { IPayOrder order = GetPayOrder(pay.Key); if (order == null) { throw new Exception("获取订单信息错误!"); } if (pay.IsOnlinePay) { OnSubmit(pay.Submit(this, pay.PackData(order), SubmitText, ReturnUrl)); } else { PaymentResult result; bool value; if (pay.IsCheckMoney) { value = CheckMoney(order, out result); } else { result = new PayResult() { TradeNo = order.TradeNo, PayTradeNo = order.TradeNo, Status = "Success", TotalFee = order.TotalFee }; value = true; } OnCallback(pay, value, result); OnRedirect(this, pay, result, value); //try { Response.Redirect(ReturnUrl, true); } //catch (Exception) { } } } catch (Exception ex) { OnError(ex.Message); } } else { OnError(string.Concat("第三方支付\"", provider, "\"不支持提交!")); } } else { OnError(string.Concat("第三方支付\"", provider, "\"不被支持或已禁用!")); } }
public void Refund() { IRefundOrder order = GetRefundOrder(); if (order != null) { PayProvider pay = LoadProvider(order.PayProvider); if (pay != null) { if (pay.IsOnlinePay) { OnSubmit(pay.Refund(this, pay.PackData(order.TradeNo, order), SubmitText)); } else { RefundResult result = new RefundResult(new RefundInfo() { PayTradeNo = order.PayTradeNo, TotalFee = order.TotalFee, Status = true }); OnCallback(pay, true, result); OnRedirect(this, pay, result, true); //try { Response.Redirect(ReturnUrl, true); } //catch (Exception) { } } } else { OnError(string.Concat("第三方支付\"", order.PayProvider, "\"不被支持或已禁用!")); } } else { OnError(string.Concat("获取订单信息错误!")); } }