📄 onlinepay.ascx.cs
字号:
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using DNNLite.Entites.Modules;
using Ader.TemplateEngine ;
using DNNLite.DesktopModules.OnlinePay;
public partial class DesktopModules_OnlinePay_OnlinePay : TempletPortalModuleBase,IPostBackEventHandler
,IActionable
{
protected string platform = string.Empty;
protected string paymentnum = string.Empty;
protected string isgotoselect = string.Empty;
protected void Page_Load(object sender, EventArgs e)
{
paymentnum = Request["paymentnum"];
isgotoselect = Request["isgotoselect"];
}
protected override string TemplateFile
{
get
{
if (string.IsNullOrEmpty(paymentnum))
{
return "~/Templets/OnlinePay/没有指定支付流水号的页面.htm";
}
if (!string.IsNullOrEmpty(isgotoselect))
{
return "~/Templets/OnlinePay/点击进入支付平台选择.htm";
}
if (Settings.ContainsKey("SelectPlatform"))
{
return Settings["SelectPlatform"];
}
else
{
return "~/Templets/OnlinePay/在线支付平台选择.htm";
}
}
}
protected override void SetValues(IDictionary<string, object> bag)
{
bag.Add("eventsource", this.UniqueID);
bag.Add("paylink", DNNLite.Comm.Comm.NavigateURL(Tabid,"paymentnum="+paymentnum ) );
}
/// <summary>
/// 回发后,选择平台
/// </summary>
private void SelectPlatform()
{
if (string.IsNullOrEmpty(paymentnum))
{
return;
}
PayAble payable = Session[paymentnum] as PayAble;
if (payable == null)
{
paymentnum = "";
return;
}
if (!string.IsNullOrEmpty(Request["platform"]))
{
platform = Request["platform"];
string tplfile = Server.MapPath( "~/Templets/OnlinePay/在线支付_" + platform + ".htm");
string output = string.Empty;
TemplateManager tpl = TemplateManager.FromFile(tplfile);
PaymentLog pl = new PaymentLog();
switch (platform)
{
case "网银":
pl.UserName = Page.User.Identity.Name;
pl.OrderID = payable.Orderid;
pl.TransactionId = payable.Orderid;
pl.MoneyPay = payable.Money;
pl.PayTime = DateTime.Now;
pl.Platform = "网银";
pl.CallBackMethod = payable.CallBackMethodName;
pl.PaymentNum = paymentnum;
pl.CreateAndFlush();
ChinaBankData chinabank = new ChinaBankData();
chinabank.v_amount = payable.Money.ToString("F2");
chinabank.raworder = payable.RawObj;
chinabank.v_oid = payable.Orderid ;
chinabank.ProcessData();
tpl.SetValue("chinabank", chinabank);
break;
case "财付通":
//接收传给财付通网关的商户订单的参数
Md5Pay md5pay = new Md5Pay();
//商品名称
md5pay.Desc = payable.Orderid;
//商品总金额,以分为单位.
md5pay.Total_fee = (long)(payable.Money * 100);
//商户订单号
md5pay.Sp_billno = payable.Orderid;
//交易日期
//md5pay.Date = DateTime.Now.ToString("yyyyMMdd");
//交易标识
md5pay.Attach = payable.Orderid;
//財付通交易号,需保证此订单号每天唯一,切不能重复!
md5pay.Transaction_id = md5pay.Bargainor_id + md5pay.Date + md5pay.UnixStamp();
md5pay.Spbill_create_ip = Page.Request.UserHostAddress;
string url = "";
if (!md5pay.GetPayUrl(out url))
{
return;
}
else
{
/*在这里可以把
* 交易单号 md5pay.Transaction_id
* 商户订单号 md5pay.Sp_billno
* 订单金额 md5pay.Total_fee
* 等信息记入数据库.
* */
pl.UserName = Page.User.Identity.Name;
pl.OrderID = payable.Orderid;
pl.TransactionId = md5pay.Transaction_id ;
pl.MoneyPay = payable.Money;
pl.PayTime = DateTime.Now;
pl.Platform = "财付通";
pl.CallBackMethod = payable.CallBackMethodName;
pl.PaymentNum = paymentnum;
pl.CreateAndFlush();
//Response.Redirect(url);
tpl.SetValue("md5pay", url);
}
break;
}
Session.Remove(paymentnum);
output = tpl.Process();
Response.Write(output);
Response.End();
}
}
#region IPostBackEventHandler 成员
public void RaisePostBackEvent(string eventArgument)
{
SelectPlatform();
}
#endregion
#region IActionable 成员
public IList<ModuleAction> GetCommands()
{
IList<ModuleAction> result = new List<ModuleAction>();
result.Add(new ModuleAction("查看支付记录", "PaymentLog", EditUrl("PaymentLog")));
return result;
}
#endregion
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -