public void MakeQR(string provider) { PayProvider pay = LoadProvider(provider); if (pay != null) { try { IPayOrder order = GetPayOrder(pay.Key); if (order == null) { throw new Exception("获取订单信息错误!"); } string url = pay.MakeQR(order); if (string.IsNullOrEmpty(url)) { throw new Exception(string.Concat("第三方支付\"", provider, "\"暂不支持扫码支付或未实现!")); } OnMakeQR(url, order.TradeNo); } catch (Exception ex) { OnError(ex.Message); } } else { OnError(string.Concat("第三方支付\"", provider, "\"不被支持或已禁用!")); } }
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 OrderPay(IBuilderOrder builderOder, IPayOrder payOrder) { // TODO: Complete member initialization this.builderOder = builderOder; this.payOrder = payOrder; IList <Product> b = builderOder.GetOrder(); foreach (Product p in b) { payOrder.Pay(p); } }
public sealed override SortedDictionary <string, string> PackData(IPayOrder order) { SortedDictionary <string, string> sParaTemp = new SortedDictionary <string, string>(); sParaTemp.Add("service", Service); sParaTemp.Add("partner", Partner); sParaTemp.Add("_input_charset", Charset); sParaTemp.Add("notify_url", AsyncCallbackUrl); sParaTemp.Add("return_url", CallbackUrl); PackData(sParaTemp); sParaTemp.Add("out_trade_no", order.TradeNo); sParaTemp.Add("subject", order.Subject); sParaTemp.Add("payment_type", "1"); sParaTemp.Add("total_fee", order.TotalFee.ToString("F2")); sParaTemp.Add("seller_id", PartnerId); sParaTemp.Add("sign", BuildRequestMysign(FilterPara(sParaTemp))); sParaTemp.Add("sign_type", SignType); return(sParaTemp); }
protected virtual bool CheckMoney(IPayOrder order, out PaymentResult result) { result = null; return(false); }
public override SortedDictionary <string, string> PackData(IPayOrder order) { throw new NotSupportedException(); }
public virtual string MakeQR(IPayOrder order) { return(null); }
/// <summary> /// 打包支付信息 /// </summary> /// <returns></returns> public abstract SortedDictionary <string, string> PackData(IPayOrder order);