internal string Submit() { PayMethods pm = (PayMethods)int.Parse(form["pmid"]); PayApiType pt = (PayApiType)int.Parse(form["ptid"]); string path = global::System.Web.HttpContext.Current.Request.Path; return(netpay.SubmitRequest( pm, pt, "2088302723942172", "6u01s4nvgwx99iwrl58k3xfzb83wydti", "*****@*****.**", BankSign.Default, form["order_no"], float.Parse(form["order_fee"]), float.Parse(form["order_exp_fee"]), "支付订单", form["show_url"], null, form["receive_name"], form["receive_address"], form["receive_zip"], form["receive_phone"], form["receive_mobile"], String.Format("{0}?return_{1}_{2}", path, (int)pm, (int)pt), String.Format("{0}?notify_{1}_{2}", path, (int)pm, (int)pt) )); }
/// <summary> /// 获取提示的地址 /// </summary> /// <param name="ap">支付方式编号</param> /// <param name="at">接口类型,默认为1</param> /// <returns></returns> internal static string GetNotifyUrl(PayMethods ap, PayApiType at) { global::System.Web.HttpRequest req = global::System.Web.HttpContext.Current.Request; return(String.Format("http://{0}{1}/netpay/notify_{2}_{3}.html", req.Url.Host, req.Url.Port == 80 ? "" : ":" + req.Url.Port, ((int)ap).ToString(), ((int)at).ToString())); }
/// <summary> /// 页面回调 /// </summary> /// <param name="pmid"></param> /// <param name="ptid">接口类型ID</param> /// <returns></returns> public PaidHandleResult Return(PayMethods pm, PayApiType pt, PayMointor <T> proc) { PaidHandleResult result; //PayMointor<string> proc = new PayMointor<string>(String.Empty); //proc.OnInit += orderNo => //{ // proc.Instance= //}; this.AttachEvent(proc); // PayMethods pm = (PayMethods)pmid; //支付方式 //PayApiType pt = (PayApiType)ptid; //接口类型 result = PayUtil.PayReturn(pm, pt, proc); if (result == PaidHandleResult.Success) { proc.PaidSuccess(); } else if (result == PaidHandleResult.Fail) { proc.PaidFail(); } return(result); }
/// <summary> /// 获取返回的地址 /// </summary> /// <param name="ppid">支付方式编号</param> /// <param name="atid">接口类型,默认为1</param> /// <returns></returns> internal static string GetReturnUrl(PayMethods ap, PayApiType at) { global::System.Web.HttpRequest req = global::System.Web.HttpContext.Current.Request; return(String.Format("http://{0}{1}/netpay/return_{2}_{3}.html", req.Url.Host, req.Url.Port == 80 ? "" : ":" + req.Url.Port, ((int)ap).ToString(), ((int)at).ToString())); /* * return String.Format("http://{0}{1}/pay/return_{2}_{3}.html", * "www.lmgdto.com","", ((int)ap).ToString(), ((int)at).ToString()); */ }
/// <summary> /// 主动通知 /// </summary> /// <param name="ppid"></param> /// <returns></returns> public string Notify(PayMethods pm, PayApiType pt, PayMointor <T> proc) { // PaidMointor<T> proc = new PaidMointor<T>(null); // proc.OnInit += orderNo => // { // var itm = this.LoadOrderPM(orderNo.ToString()); //proc.Instance = itm.Instance; // this.AttachEvent(proc); // }; this.AttachEvent(proc); return(PayUtil.PayNotify(pm, pt, proc)); }
public static PaidHandleResult PayReturn <T>(PayMethods pm, PayApiType pt, PayMointor <T> proc) where T : class { IPay _pay = null; if (pm == PayMethods.Alipay) { if (pt == PayApiType.Direct) { _pay = new AlipayRedirect(); } else if (pt == PayApiType.Normal) { _pay = new AlipayNormal(); } else if (pt == PayApiType.Mobile) { _pay = new AlipayMobile(); } else { _pay = new AlipayComfireApi(); } } else if (pm == PayMethods.Tenpay) { //财付通默认支持所有 _pay = new Tenpay.Tenpay(); } else if (pm == PayMethods.ChinaPay) { _pay = new ChinaPayApi(); } if (_pay == null) { SetLogMessage("不支持的支付方式"); return(PaidHandleResult.Fail); } else { return(_pay.Return(proc)); } }
/// <summary> /// 获取网关地址 /// </summary> /// <param name="pm"></param> /// <param name="pt"></param> /// <param name="ht"></param> /// <returns></returns> public static string GetGatewayStr(PayMethods pm, PayApiType pt, Hashtable ht) { IPay _pay = null; if (pm == PayMethods.Alipay) { if (ht.Contains("bank")) { pt = PayApiType.Direct; } if (pt == PayApiType.Direct) { _pay = new AlipayRedirect(); } else if (pt == PayApiType.Normal) { _pay = new AlipayNormal(); } else if (pt == PayApiType.Mobile) { _pay = new AlipayMobile(); } else { _pay = new AlipayComfireApi(); } } else if (pm == PayMethods.Tenpay) { //财付通默认支持所有 _pay = new Tenpay.Tenpay(); } else if (pm == PayMethods.ChinaPay) { _pay = new ChinaPayApi(); } return(_pay == null ? String.Empty : _pay.GetPayRequest(ht)); }
public static string PayNotify <T>(PayMethods pm, PayApiType pt, PayMointor <T> proc) where T : class { IPay _pay = null; if (pm == PayMethods.Alipay) { if (pt == PayApiType.Direct) { _pay = new AlipayRedirect(); } else if (pt == PayApiType.Normal) { _pay = new AlipayNormal(); } else if (pt == PayApiType.Mobile) { _pay = new AlipayMobile(); } else { _pay = new AlipayComfireApi(); } } else if (pm == PayMethods.Tenpay) { //财付通默认支持所有 _pay = new Tenpay.Tenpay(); } else if (pm == PayMethods.ChinaPay) { _pay = new ChinaPayApi(); } return(_pay == null ? "不支持的支付方式" : _pay.Notify(proc)); }
/// <summary> /// 提交支付请求(收货信息仅支付宝担保时传递) /// </summary> /// <param name="pm"></param> /// <param name="pt"></param> /// <param name="partner_id"></param> /// <param name="partner_secret"></param> /// <param name="seller_account"></param> /// <param name="orderNo"></param> /// <param name="order_fee"></param> /// <param name="order_exp_fee"></param> /// <param name="order_desc"></param> /// <param name="order_show_url"></param> /// <param name="receive_name"></param> /// <param name="receive_address"></param> /// <param name="receive_zip"></param> /// <param name="receive_phone"></param> /// <param name="receive_mobile"></param> /// <param name="return_url"></param> /// <param name="notify_url"></param> /// <returns></returns> public string SubmitRequest( PayMethods pm, PayApiType pt, string partner_id, string partner_secret, string seller_account, BankSign bank, string orderNo, float order_fee, float order_exp_fee, string order_desc, string order_show_url, string subject, string receive_name, string receive_address, string receive_zip, string receive_phone, string receive_mobile, string return_url, string notify_url ) { Hashtable ht = new Hashtable(); // OrderInfo order; // order = new Order(orderNo); // if (order == null) // { // p.PayUtil.SetLogMessage("订单不存在!"); // return Result((int)p.PaidHandleResult.Fail); // } // orderPM = this.LoadOrderPM(order); if (String.IsNullOrEmpty(return_url)) { return_url = PayUtil.GetReturnUrl(pm, pt); } if (String.IsNullOrEmpty(notify_url)) { notify_url = PayUtil.GetNotifyUrl(pm, pt); } ht.Add("order_subject", subject ?? "支付订单" + orderNo); ht.Add("order_no", orderNo); //订单编号 ht.Add("order_fee", order_fee); ht.Add("order_exp_fee", order_exp_fee); //订单快递金额 try{ ht.Add("usr_host", HttpContext.Current.Request.UserHostAddress); //用户IP地址 }catch {} ht.Add("order_showurl", order_show_url); //订单显示地址 ht.Add("return_url", return_url); //返回地址 ht.Add("notify_url", notify_url); //通知地址 ht.Add("order_desc", order_desc); //订单描述 ht.Add("seller_account", seller_account); //帐号 //收货信息 ht.Add("receive_name", receive_name); ht.Add("receive_address", receive_address); ht.Add("receive_mobile", receive_mobile); ht.Add("receive_zip", receive_zip); ht.Add("receive_phone", receive_phone); if (bank != BankSign.Default) { ht.Add("bank", bank.ToString()); } if (pm != PayMethods.Unknown) { string payHtml = String.Empty; switch (pm) { //财付通 case PayMethods.Tenpay: ht.Add("tenpay_key", partner_id); ht.Add("tenpay_secret", partner_secret); ht.Add("trade_mode", -((int)pt - 4)); //1:即时到帐,2:中介担保,3:自己选择 payHtml = String.Format("<script>location.replace('{0}')</script>", PayUtil.GetGatewayStr(PayMethods.Tenpay, pt, ht)); break; //支付宝 case PayMethods.Alipay: ht.Add("alipay_key", partner_id); ht.Add("alipay_secret", partner_secret); payHtml = PayUtil.GetGatewayStr(PayMethods.Alipay, pt, ht); break; //在线支付 default: case PayMethods.OnlinePay: // //UNDONE: // throw new NotImplementedException("暂不支持银行支付!"); } //准备支付 // orderPM.RepairPay(); //跳转到支付页面 return(payHtml); } else { return("不支持的支付方式!"); } }
private KeyValuePair <PayMethod, string> SelectMethod(PayMethod method) { return(PayMethods.Single(x => x.Key == method)); }