public ActionResult Delete(FastPayWay FastPayWay) { if (FastPayWay.Id != 0) { FastPayWay = Entity.FastPayWay.FirstOrDefault(n => n.Id == FastPayWay.Id); } if (FastPayWay == null) { ViewBag.ErrorMsg = "数据不存在"; return(View("Error")); } try { Entity.FastPayWay.DeleteObject(FastPayWay); Entity.SaveChanges(); APIExtensions.ClearCacheAll(); ViewBag.Msg = "删除成功"; return(View("Succeed")); } catch { ViewBag.Msg = "删除失败"; return(View("Error")); } }
public ActionResult Index(string etnum) { if (etnum.IsNullOrEmpty()) { ViewBag.ErrorMsg = "Some Error[00]"; return(View("Error")); } string tnum = LokFuEncode.LokFuAPIDecode(etnum, DllName); FastOrder FastOrder = Entity.FastOrder.FirstOrDefault(n => n.TNum == tnum); if (FastOrder == null) { ViewBag.ErrorMsg = "Some Error[02]"; return(View("Error")); } FastPayWay FastPayWay = Entity.FastPayWay.FirstOrDefault(n => n.Id == FastOrder.PayWay); if (FastOrder == null) { ViewBag.ErrorMsg = "Some Error[03]"; return(View("Error")); } if (FastPayWay.DllName != DllName) { ViewBag.ErrorMsg = "Some Error[04]"; return(View("Error")); } string[] PayConfigArr = FastPayWay.QueryArray.Split(','); if (PayConfigArr.Length != 3) { ViewBag.ErrorMsg = "Some Error[05]"; return(View("Error")); } FastUserPay FastUserPay = Entity.FastUserPay.FirstOrDefault(n => n.PayWay == FastOrder.PayWay && n.UId == FastOrder.UId && n.MerState == 1); if (FastUserPay == null) { ViewBag.ErrorMsg = "商户通道异常"; return(View("Error")); } string paywaycode = PayConfigArr[2]; //绑定通道 string OrderMoney = (FastOrder.Amoney * 100).ToString("F0"); //金额,以分为单 string ReturnUrl = PayPath + "/PayCenter/HFJSPay/FastResult.html"; //支付成功跳转页 string BackUrl = NoticePath + "/PayCenter/HFJSPay/FastNotice.html"; //后台通过地址 string Data = "{\"txnamt\":\"" + OrderMoney + "\",\"merid\":\"" + FastUserPay.MerId + "\",\"paywaycode\":\"" + paywaycode + "\",\"orderid\":\"" + FastOrder.TNum + "\",\"backurl\":\"" + BackUrl + "\",\"fronturl\":\"" + ReturnUrl + "\"}"; string DataBase64 = LokFuEncode.Base64Encode(Data, "utf-8"); string Sign = (DataBase64 + FastUserPay.MerKey).GetMD5(); string GoUrl = "https://api.zhifujiekou.com/apis/fastorderspay?"; GoUrl += "req=" + HttpUtility.UrlEncode(DataBase64); GoUrl += "&sign=" + Sign; Response.Redirect(GoUrl); return(View("Null")); }
public void ChangeStatus(FastPayWay FastPayWay, string InfoList, string Clomn, string Value) { if (string.IsNullOrEmpty(InfoList)) { InfoList = FastPayWay.Id.ToString(); } int Ret = Entity.ChangeEntity <FastPayWay>(InfoList, Clomn, Value); Entity.SaveChanges(); Response.Write(Ret); }
public string SetManE(int Id) { FastPayWay baseFastPayWay = Entity.FastPayWay.FirstOrDefault(n => n.Id == Id); if (baseFastPayWay == null) { return("2"); } baseFastPayWay.ManE = (byte)(1 - baseFastPayWay.ManE); Entity.SaveChanges(); return(baseFastPayWay.ManE.ToString()); }
public ActionResult SaveFastPayWay(FastPayWay FastPayWay) { FastPayWay.Cost = FastPayWay.Cost / 100; FastPayWay.Cost2 = FastPayWay.Cost2 / 100; FastPayWay.Cost3 = FastPayWay.Cost3 / 100; FastPayWay.BankCost = FastPayWay.BankCost / 100; FastPayWay.BankCost2 = FastPayWay.BankCost2 / 100; FastPayWay.BankCost3 = FastPayWay.BankCost3 / 100; FastPayWay.InCost = FastPayWay.InCost / 100; FastPayWay.InCost2 = FastPayWay.InCost2 / 100; FastPayWay.InCost3 = FastPayWay.InCost3 / 100; if (FastPayWay.Cost < 0 || FastPayWay.BankCost < 0 || FastPayWay.Cost >= 1) { return(Content("<script>alert('费率设置有误!');window.history.go(-1);</script>")); } FastPayWay baseFastPayWay = ct.FastPayWay.FirstOrDefault(n => n.Id == FastPayWay.Id); if (baseFastPayWay != null)//修改直通车通道 { baseFastPayWay.Title = FastPayWay.Title; baseFastPayWay.ShowName = FastPayWay.ShowName; baseFastPayWay.NeekReg = FastPayWay.NeekReg; baseFastPayWay.NeekCard = FastPayWay.NeekCard; baseFastPayWay.TimeType = FastPayWay.TimeType; baseFastPayWay.STime = FastPayWay.STime; baseFastPayWay.ETime = FastPayWay.ETime; baseFastPayWay.InCost3 = FastPayWay.InCost3; baseFastPayWay.BankCost3 = FastPayWay.BankCost3; baseFastPayWay.MinCost3 = FastPayWay.MinCost3; baseFastPayWay.MaxCost3 = FastPayWay.MaxCost3; baseFastPayWay.BankSNum = FastPayWay.BankSNum; baseFastPayWay.BankENum = FastPayWay.BankENum; baseFastPayWay.Cash = FastPayWay.Cash; baseFastPayWay.Sort = FastPayWay.Sort; baseFastPayWay.State = FastPayWay.State; baseFastPayWay.QueryArray = FastPayWay.QueryArray; baseFastPayWay.Type = FastPayWay.Type; } else//添加直通车通道 { FastPayWay.DllName = "HFJSPay"; FastPayWay.AddTime = DateTime.Now; FastPayWay.GroupType = "D0"; FastPayWay.Version = "V1.0.0"; FastPayWay.CanOpenBank = 1; ct.FastPayWay.Add(FastPayWay); } ct.SaveChanges(); return(Content("<script>alert('操作成功!');history.go(-1);</script>")); }
public void Execute(IJobExecutionContext context) { string JobName = "FastMer"; string CanRun = ConfigurationManager.AppSettings["Run" + JobName].ToString(); if (CanRun == "true") { if (!IsRun) { LokFuEntity Entity = new LokFuEntity(); IsRun = true; try { Log.Write(JobName + "任务开始执行!"); //------------------------------------------------------- #region 任务主体 DateTime STime = DateTime.Now.AddDays(-2); DateTime ETime = DateTime.Now.AddSeconds(-30); IList <FastUserPay> List = Entity.FastUserPay.Where(n => n.MerState == 3 && n.CardState == 3 && n.BusiState == 3 && n.AddTime > STime && n.AddTime < ETime).ToList(); foreach (var p in List) { FastPayWay FastPayWay = Entity.FastPayWay.FirstOrDefault(n => n.Id == p.PayWay); string[] PayConfigArr = FastPayWay.QueryArray.Split(','); if (FastPayWay.DllName == "HFJSPay") { #region 结算系统 //不需要 #endregion } Log.WriteLog("查询商户[" + p.MerId + "]!", JobName); } #endregion //------------------------------------------------------- Log.Write(JobName + "任务执行结束![共计" + List.Count + "条]"); } catch (Exception Ex) { Log.Write(JobName + "任务执行过程出错!", Ex); } IsRun = false; } else { Log.Write(JobName + "任务还在执行中!"); } } }
//测试页面 public ActionResult IsRemove(FastPayWay FastPayWay) { if (FastPayWay.Id != 0) { FastPayWay = Entity.FastPayWay.FirstOrDefault(n => n.Id == FastPayWay.Id); } if (FastPayWay == null) { ViewBag.ErrorMsg = "数据不存在"; return(View("Error")); } ViewBag.FastPayWay = FastPayWay; if (Request.UrlReferrer != null) { Session["Url"] = Request.UrlReferrer.ToString(); } return(View()); }
public ActionResult Edit(FastPayWay FastPayWay) { if (FastPayWay.Id != 0) { FastPayWay = Entity.FastPayWay.FirstOrDefault(n => n.Id == FastPayWay.Id); } //var a = "yklm123456"; //var b = a.GetMD5(); if (FastPayWay == null) { ViewBag.ErrorMsg = "数据不存在"; return(View("Error")); } ViewBag.FastPayWay = FastPayWay; if (Request.UrlReferrer != null) { Session["Url"] = Request.UrlReferrer.ToString(); } return(View()); }
public ActionResult Index(FastPayWay FastPayWay, EFPagingInfo <FastPayWay> p) { if (!FastPayWay.Title.IsNullOrEmpty()) { p.SqlWhere.Add(f => f.Title.Contains(FastPayWay.Title)); } if (!FastPayWay.State.IsNullOrEmpty()) { p.SqlWhere.Add(f => f.State == FastPayWay.State); } p.PageSize = 9999; p.OrderByList.Add("State", "DESC"); IPageOfItems <FastPayWay> FastPayWayList = Entity.Selects <FastPayWay>(p); ViewBag.FastPayWayList = FastPayWayList.OrderByDescending(o => o.State).ThenBy(o => o.Sort).ToList(); ViewBag.FastPayWay = FastPayWay; ViewBag.Save = this.checkPower("Save"); ViewBag.SetManE = this.checkPower("SetManE"); ViewBag.Remove = this.checkPower("Remove"); return(View()); }
/// <summary> /// 一户一码模式绑卡类交易入口 /// </summary> /// <param name="Id"></param> /// <param name="sign"></param> public void Pay(int Id, string sign) { if (Id.IsNullOrEmpty() || sign.IsNullOrEmpty()) { Response.Write("Some Error[00]"); return; } if (((Id * 100 + 99) + "Pay").GetMD5().Substring(8, 8) != sign) { Response.Write("Some Error[01]"); return; } FastOrder FastOrder = Entity.FastOrder.FirstOrDefault(n => n.Id == Id); if (FastOrder == null) { Response.Write("Some Error[02]"); return; } FastPayWay FastPayWay = Entity.FastPayWay.FirstOrDefault(n => n.Id == FastOrder.PayWay); if (FastPayWay == null) { Response.Write("Some Error[03]"); return; } if (FastPayWay.DllName == "HFPay" || FastPayWay.DllName == "HFJSPay") { //不需要绑卡,去支付 Response.Redirect("/paycenter/" + FastPayWay.DllName.ToLower() + "/index.html?etnum=" + HttpUtility.UrlEncode(LokFuEncode.LokFuAPIEncode(FastOrder.TNum, FastPayWay.DllName))); } else { //跳出绑卡 Response.Redirect("/paycenter/cardpay/index.html?etnum=" + HttpUtility.UrlEncode(LokFuEncode.LokFuAPIEncode(FastOrder.TNum, "CardPay"))); } }
public void GoPay(string etnum, int BankId) { if (etnum.IsNullOrEmpty() || BankId.IsNullOrEmpty()) { Response.Write("Some Error[00]"); return; } string tnum = LokFuEncode.LokFuAPIDecode(etnum, DllName); FastOrder FastOrder = Entity.FastOrder.FirstOrDefault(n => n.TNum == tnum); if (FastOrder == null) { Response.Write("Some Error[02]"); return; } FastPayWay FastPayWay = Entity.FastPayWay.FirstOrDefault(n => n.Id == FastOrder.PayWay); if (FastOrder == null) { Response.Write("Some Error[03]"); return; } Response.Redirect("/paycenter/" + FastPayWay.DllName.ToLower() + "/gopay.html?etnum=" + HttpUtility.UrlEncode(LokFuEncode.LokFuAPIEncode(FastOrder.TNum + "|" + BankId, FastPayWay.DllName))); }
public static FastUser AddMer(FastUser FastUser, FastPayWay FastPayWay, FastConfig FastConfig, LokFuEntity Entity) { if (FastUser.Card.IsNullOrEmpty()) { //未绑定银行卡 return(FastUser); } FastUserPay FastUserPay = Entity.FastUserPay.FirstOrDefault(n => n.UId == FastUser.UId && n.PayWay == FastPayWay.Id); if (FastUserPay == null) { FastUserPay = new FastUserPay(); FastUserPay.UId = FastUser.UId; FastUserPay.PayWay = FastPayWay.Id; if (FastPayWay.DllName == "HFPay") { //不需要一户一码直接开通商户 FastUserPay.MerId = "HFPay" + FastUserPay.UId.ToString(); FastUserPay.MerState = 1; FastUserPay.CardState = 1; FastUserPay.BusiState = 1; } else { FastUserPay.MerId = ""; FastUserPay.MerState = 2; //状态 0锁定 1正常 2待提交 3审核中 4审核失败 FastUserPay.CardState = 2; //状态 0锁定 1正常 2待提交 3审核中 4审核失败 FastUserPay.BusiState = 2; //状态 1正常 2待提交 3审核中 4审核失败 } FastUserPay.CardName = FastUser.TrueName; FastUserPay.Bank = FastUser.Bank; FastUserPay.Card = FastUser.Card; FastUserPay.Bin = FastUser.Bin; //2017-11-22 修改成取通道配置,且分别计算微信/支付宝/银联 //FastUserPay.UserCost = FastConfig.UserCost; FastUserPay.UserCost = FastPayWay.InCost; FastUserPay.UserCost2 = FastPayWay.InCost2; FastUserPay.UserCost3 = FastPayWay.InCost3; if (FastPayWay.GroupType == "T1") { FastUserPay.UserCash = 0; } else { FastUserPay.UserCash = FastConfig.UserCash; } FastUserPay.AddTime = DateTime.Now; Entity.FastUserPay.AddObject(FastUserPay); Entity.SaveChanges(); } else { bool Save = false; if (FastUserPay.CardName != FastUser.TrueName) { FastUserPay.CardName = FastUser.TrueName; Save = true; } if (FastUserPay.Bank != FastUser.Bank) { FastUserPay.Bank = FastUser.Bank; Save = true; } if (FastUserPay.Card != FastUser.Card) { FastUserPay.Card = FastUser.Card; Save = true; } if (FastUserPay.Bin != FastUser.Bin) { FastUserPay.Bin = FastUser.Bin; Save = true; } if (Save) { Entity.SaveChanges(); } } string[] PayConfigArr = FastPayWay.QueryArray.Split(','); if (FastPayWay.DllName == "HFJSPay") { #region 结算系统 if (PayConfigArr.Length == 3) { string Code = PayConfigArr[0]; string CodeKey = PayConfigArr[1]; string PayWayCode = PayConfigArr[2]; #region 进件 if (FastUserPay.MerState == 2 || FastUserPay.MerState == 4) { UserCard UserCard = Entity.UserCard.FirstOrNew(n => n.Card == FastUserPay.Card && n.UId == FastUser.UId); string Mobile = UserCard.Mobile; Users Users = Entity.Users.FirstOrNew(n => n.Id == FastUser.UId); if (Mobile.IsNullOrEmpty()) { Mobile = Users.UserName; } fastuseraddModel model = new fastuseraddModel() { code = Code, mchid = "HF" + Users.Id.ToString(), mchname = Users.NeekName, truename = Users.TrueName, cardno = Users.CardId, accountcard = UserCard.Card, accountbin = UserCard.Bin, accountmobile = UserCard.Mobile }; fastuserResult fastuserResult = HFJSTools.fastuseradd(model, CodeKey); if (fastuserResult.respcode == "00") { bool RunTrue = true; string Msg = ""; if (fastuserResult.respmsg == "存在相同外部商户号") { //这里面要修改一下结算卡 fastuseraddModel modelEdit = new fastuseraddModel() { code = Code, merid = fastuserResult.merid, cardno = Users.CardId, accountcard = UserCard.Card, accountbin = UserCard.Bin, accountmobile = UserCard.Mobile }; fastuserResult fastuserresult = HFJSTools.fastuseredit(modelEdit, CodeKey); if (fastuserresult.respcode != "00") { Msg = fastuserresult.respmsg; RunTrue = false; } } if (RunTrue) { if (fastuserResult.state == 1) { FastUserPay.MerState = 1; FastUserPay.CardState = 1;//这里已绑定结算卡 FastUserPay.MerId = fastuserResult.merid; FastUserPay.MerKey = fastuserResult.merkey; } else if (fastuserResult.state == 2) { FastUserPay.MerId = fastuserResult.merid; FastUserPay.MerKey = fastuserResult.merkey; FastUserPay.MerState = 3; } else { FastUserPay.MerState = 4; FastUserPay.MerMsg = fastuserResult.respcode + "[" + fastuserResult.respmsg + "]"; } } else { FastUserPay.MerState = 4; FastUserPay.MerMsg = Msg; } } else { FastUserPay.MerState = 4; FastUserPay.MerMsg = fastuserResult.respcode + "[" + fastuserResult.respmsg + "]"; } Entity.SaveChanges(); } #endregion #region 开通道 if (FastUserPay.MerState == 1 && (FastUserPay.BusiState == 2 || FastUserPay.BusiState == 4)) { decimal Cost = FastPayWay.InCost3;//刷卡手续费 Users Users = Entity.Users.FirstOrNew(n => n.Id == FastUser.UId); if (Users.IsVip == 1) { Cost = 0.005M; FastUserPay.UserCost3 = 0.005M; } decimal Cash = FastConfig.UserCash;//还款手续费 userspayopenbModel userspayopenbModel = new userspayopenbModel() { merid = FastUserPay.MerId, paywaycode = PayWayCode, code = Code, bankcost = Cost, //surcharge = 0, cash = Cash, bankcostmin = 0, bankcostmax = 9999999 }; fastuserResult fastuserResult = HFJSTools.userspayopen(userspayopenbModel, CodeKey); if (fastuserResult.respcode == "00") { if (fastuserResult.state == 1) { FastUserPay.BusiState = 1; } else { FastUserPay.BusiState = 4; FastUserPay.BusiMsg = fastuserResult.respcode + "[" + fastuserResult.respmsg + "]"; } } else { FastUserPay.BusiState = 4; FastUserPay.BusiMsg = fastuserResult.respcode + "[" + fastuserResult.respmsg + "]"; } Entity.SaveChanges(); } #endregion } #endregion } return(FastUser); }
public void Post() { string Data = DataObj.GetData(); if (Data.IsNullOrEmpty()) { DataObj.OutError("1000"); return; } JObject json = new JObject(); try { json = (JObject)JsonConvert.DeserializeObject(Data); } catch (Exception Ex) { Log.Write("[FastOrderController]:", "【Data】" + Data, Ex); json = null; } if (json == null) { DataObj.OutError("1000"); return; } FastOrder InFastOrder = new FastOrder(); InFastOrder = JsonToObject.ConvertJsonToModel(InFastOrder, json); UserTrack UserTrack = new UserTrack(); UserTrack = JsonToObject.ConvertJsonToModel(UserTrack, json); if (InFastOrder.Id == 99999) { DataObj.Msg = "当前通道维护中,建议您开通收款到银行卡功能,享受更多收款通道"; DataObj.OutError("1000"); return; } if (InFastOrder.CashType.IsNullOrEmpty()) { InFastOrder.CashType = "D0"; //DataObj.OutError("1000"); //return; } decimal Amount = InFastOrder.Amoney; byte payway = InFastOrder.OType; if (Amount <= 0) { DataObj.OutError("1000"); return; } if (payway != 1 && payway != 2 && payway != 3) { DataObj.Msg = "你当前版本不支持该交易,请等待新版本发布及升级!"; DataObj.OutError("1000"); return; } Users Users = Entity.Users.FirstOrDefault(n => n.Token == InFastOrder.Token); #region 用户 if (Users == null)//用户令牌不存在 { DataObj.OutError("2004"); return; } if (Users.State != 1)//用户被锁定 { DataObj.OutError("2003"); return; } if (Users.CardStae != 2)//未实名认证 { DataObj.OutError("2006"); return; } if (Amount.IsNullOrEmpty() || payway.IsNullOrEmpty()) { DataObj.OutError("1000"); return; } #endregion FastUser FastUser = Entity.FastUser.FirstOrDefault(o => o.UId == Users.Id); if (FastUser == null) { DataObj.OutError("2070"); return; } #region 取通道 IList <FastPayWay> FastPayWayList = null; if (InFastOrder.Id.IsNullOrEmpty()) { //这是旧逻辑,有一些旧版还在用 if (payway == 1) { FastPayWayList = Entity.FastPayWay.Where(n => n.State == 1 && n.SNum2 < Amount && n.ENum2 >= Amount && n.HasAliPay == 1).OrderBy(n => n.Sort).ToList(); } else if (payway == 2) { FastPayWayList = Entity.FastPayWay.Where(n => n.State == 1 && n.SNum < Amount && n.ENum >= Amount && n.HasWeiXin == 1).OrderBy(n => n.Sort).ToList(); } else if (payway == 3) { FastPayWayList = Entity.FastPayWay.Where(n => n.State == 1 && n.BankSNum < Amount && n.BankENum >= Amount && n.HasBank == 1).OrderBy(n => n.Sort).ToList(); } else { DataObj.OutError("1000"); return; } } else { var query = Entity.FastPayWay.Where(n => n.Id == InFastOrder.Id && n.State == 1); if (payway == 1) { query = query.Where(o => o.HasAliPay == 1 && o.SNum2 <= Amount && o.ENum2 >= Amount); } else if (payway == 2) { query = query.Where(o => o.HasWeiXin == 1 && o.SNum <= Amount && o.ENum >= Amount); } else if (payway == 3) { query = query.Where(o => o.HasBank == 1 && o.BankSNum <= Amount && o.BankENum >= Amount); } FastPayWayList = query.ToList(); } #endregion if (FastPayWayList.Count < 1) { DataObj.OutError("2079"); return; } #region 通道验证及商户进件信息验证 FastPayWay FastPayWay = null; FastUserPay FastUserPay = null; IList <FastPayWay> PayWayList = new List <FastPayWay>(); foreach (var p in FastPayWayList) { if (p.TimeType == 1)//限制时间,模式1 { DateTime STime = p.STime; DateTime ETime = p.ETime; DateTime NowSTime = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd") + " " + STime.ToString("HH:mm:ss")); DateTime NowETime = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd") + " " + ETime.ToString("HH:mm:ss")); if (NowSTime <= DateTime.Now && DateTime.Now <= NowETime) { //当前时间允许交易 PayWayList.Add(p); } } else { PayWayList.Add(p); } } if (PayWayList.Count < 1) { DataObj.OutError("2071"); return; } foreach (var p in PayWayList) { FastUserPay temp = Entity.FastUserPay.FirstOrDefault(n => n.UId == Users.Id && n.PayWay == p.Id && n.MerState == 1 && n.CardState == 1 && n.BusiState == 1); if (temp != null) { FastPayWay = p; FastUserPay = temp; break; } } if (FastUserPay == null) { DataObj.OutError("2072"); return; } if (FastPayWay == null) { DataObj.OutError("2073"); return; } #endregion string[] PayConfigArr = FastPayWay.QueryArray.Split(','); #region 验证配置 if (FastPayWay.DllName == "HFPay") { if (PayConfigArr.Length != 3) { DataObj.OutError("2074"); return; } } if (FastPayWay.DllName == "HFJSPay") { if (PayConfigArr.Length != 3) { DataObj.OutError("2074"); return; } } #endregion decimal UserCost = 0;//用户 decimal BankCost = 0; decimal BankMin = 0; decimal BankMax = 0; decimal AgentCost = 0; //代理 if (payway == 1) { //支付宝 UserCost = FastUserPay.UserCost2; BankCost = FastPayWay.BankCost2; BankMin = FastPayWay.MinCost2; BankMax = FastPayWay.MaxCost2; AgentCost = FastPayWay.Cost2; } if (payway == 2)//微信 { UserCost = FastUserPay.UserCost; BankCost = FastPayWay.BankCost; BankMin = FastPayWay.MinCost; BankMax = FastPayWay.MaxCost; AgentCost = FastPayWay.Cost; } if (payway == 3)//银联 { UserCost = FastUserPay.UserCost3; BankCost = FastPayWay.BankCost3; BankMin = FastPayWay.MinCost3; BankMax = FastPayWay.MaxCost3; AgentCost = FastPayWay.Cost3; } #region 创建交易 //=======================生成订单=========================== SysAgent SysAgent = Entity.SysAgent.FirstOrNew(n => n.Id == Users.Agent); IList <SysAgent> SysAgentList = SysAgent.GetAgentsById(Entity); SysAgent TopAgent = SysAgentList.FirstOrNew(); FastOrder FastOrder = new FastOrder(); FastOrder.ComeWay = 1; FastOrder.UId = Users.Id; FastOrder.Agent = SysAgent.Id; FastOrder.PayId = string.Empty; FastOrder.OType = payway; FastOrder.PayWay = FastPayWay.Id; FastOrder.CashType = InFastOrder.CashType; FastOrder.Amoney = Amount; //用户手续费 decimal Poundage = Amount * UserCost + FastUserPay.UserCash; Poundage = Poundage.Ceiling(); FastOrder.Poundage = Poundage; //用户最终金额 FastOrder.PayMoney = FastOrder.Amoney - FastOrder.Poundage; if (FastOrder.PayMoney < 0) { DataObj.OutError("2076"); return; } FastOrder.UserRate = UserCost; FastOrder.AgentRate = AgentCost; FastOrder.SysRate = BankCost; FastOrder.UserCash = FastUserPay.UserCash; FastOrder.SysCash = FastPayWay.Cash; FastOrder.SameGet = 0; //计算手续费差 SysMoneySet SysMoneySet = Entity.SysMoneySet.FirstOrNew(); decimal PaySplit = 0;//代理商费率 PaySplit = SysAgent.GetSplit(TopAgent.Tier, Entity); decimal PayGet = Amount * PaySplit; PayGet = PayGet.Floor(); //一级代理利润 decimal AgentPayGet = PayGet; AgentPayGet = AgentPayGet.Floor(); FastOrder.AgentPayGet = 0; string AgentPath = "|"; string Split = "|"; decimal MyGet = PayGet; foreach (var p in SysAgentList) { PaySplit = SysAgent.GetSplit(p.Tier, Entity); AgentPath += p.Id + "|"; MyGet = Amount * PaySplit;//各级代理分润 MyGet = MyGet.Floor(); Split += MyGet.ToString("F2") + "|"; } FastOrder.AgentPath = AgentPath; FastOrder.Split = Split; decimal BankMoney = Amount * BankCost; if (BankMoney < BankMin) { BankMoney = BankMin; } if (BankMoney > BankMax) { BankMoney = BankMax; } BankMoney = BankMoney.Floor(); //用户手续费(含代付手续费)-代付分润-银行手续费-银行代付成本 decimal HFGet = Poundage - AgentPayGet - BankMoney - FastPayWay.Cash; FastOrder.HFGet = HFGet; FastOrder.State = 1; FastOrder.AddTime = DateTime.Now; FastOrder.PayState = 0; FastOrder.AgentState = 0; FastOrder.UserState = 0; FastOrder.CardName = FastUserPay.CardName; FastOrder.Bank = FastUserPay.Bank; FastOrder.Card = FastUserPay.Card; FastOrder.Bin = FastUserPay.Bin; Entity.FastOrder.AddObject(FastOrder); Entity.SaveChanges(); Entity.Refresh(RefreshMode.StoreWins, FastOrder); #endregion //======================================= UserTrack.ENo = DataObj.ENo; UserTrack.OPType = "到银行卡交易"; UserTrack.UserName = FastOrder.TNum; UserTrack.UId = FastOrder.UId; UserTrack.SeavGPSLog(Entity); //======================================= //=======================分润记录=========================== MyGet = PayGet; int tier = 1; foreach (var p in SysAgentList) { PaySplit = SysAgent.GetSplit(p.Tier, Entity); MyGet = Amount * PaySplit;//各级代理分润 MyGet = MyGet.Floor(); FastSplit FastSplit = new FastSplit(); FastSplit.Tnum = FastOrder.TNum; FastSplit.Profit = MyGet; FastSplit.AgentId = p.Id; FastSplit.Tier = p.Tier; FastSplit.AddTime = DateTime.Now; Entity.FastSplit.AddObject(FastSplit); tier++; } Entity.SaveChanges(); //=======================请求接口开始=========================== if (FastOrder.OType == 1 || FastOrder.OType == 2) { if (FastPayWay.DllName == "HFPay") { string NoticeUrl = NoticePath + "/PayCenter/HFPay/FastNotice.html";//后台通过地址 #region 微信&支付宝 string Action = ""; if (FastOrder.OType == 1) { Action = "AliSao"; } else if (FastOrder.OType == 2) { Action = "WxSao"; } //提交结算中心 string merId = PayConfigArr[0]; //商户号 string merKey = PayConfigArr[1]; //商户密钥 string PayWay = PayConfigArr[2]; //绑定通道 decimal money = FastOrder.Amoney * 100; string OrderMoney = money.ToString("F0");//金额,以分为单 string PostJson = "{\"action\":\"" + Action + "\",\"txnamt\":\"" + OrderMoney + "\",\"merid\":\"" + merId + "\",\"payway\":\"" + PayWay + "\",\"orderid\":\"" + FastOrder.TNum + "\",\"backurl\":\"" + NoticeUrl + "\"}"; string DataBase64 = LokFuEncode.Base64Encode(PostJson, "utf-8"); string Sign = (DataBase64 + merKey).GetMD5(); DataBase64 = HttpUtility.UrlEncode(DataBase64); string PostData = string.Format("req={0}&sign={1}", DataBase64, Sign); string HF_Url = "https://api.zhifujiekou.com/api/mpgateway"; string Ret = Utils.PostRequest(HF_Url, PostData, "utf-8"); JObject JS = new JObject(); try { JS = (JObject)JsonConvert.DeserializeObject(Ret); } catch (Exception) { FastOrder.State = 0; FastOrder.Remark = "数据请求出错"; Entity.SaveChanges(); JS = null; } if (JS != null) { string resp = JS["resp"].ToString(); Ret = LokFuEncode.Base64Decode(resp, "utf-8"); try { JS = (JObject)JsonConvert.DeserializeObject(Ret); } catch (Exception Ex) { FastOrder.State = 0; FastOrder.Remark = "JSON加载出错"; Entity.SaveChanges(); JS = null; } if (JS != null) { string respcode = JS["respcode"].ToString(); if (respcode != "00") { string respmsg = JS["respmsg"].ToString(); FastOrder.State = 0; FastOrder.Remark = respmsg; Entity.SaveChanges(); } else { if (JS["formaction"] == null) { FastOrder.State = 0; FastOrder.Remark = "接口没有返回二维码"; Entity.SaveChanges(); } else { string BankNum = JS["queryid"].ToString(); string qr_code = JS["formaction"].ToString(); FastOrder.PayId = qr_code; FastOrder.Trade = BankNum; Entity.SaveChanges(); } } } } #endregion } } else if (FastOrder.OType == 3) { if (FastPayWay.DllName == "HFPay" || FastPayWay.DllName == "HFJSPay") { #region //银联不用请求第三方,直接生成链接 FastOrder.PayId = PayPath + "/paycenter/pay-" + FastOrder.Id + ".html?sign=" + ((FastOrder.Id * 100 + 99) + "Pay").GetMD5().Substring(8, 8); Entity.SaveChanges(); #endregion } } if (FastOrder.State == 1) { if (FastOrder.PayState == 1) { if (FastOrder.UserState == 1) { FastOrder.State = 3; } else { FastOrder.State = 2; } } else { FastOrder.State = 1; } } else { FastOrder.State = 0; DataObj.OutError("1005"); return; } FastOrder.Cols = "TNum,PayId,Amoney,Poundage,State"; DataObj.Data = FastOrder.OutJson(); DataObj.Code = "0000"; DataObj.OutString(); }
public void FastNotice() { string Resp = Request.Form["resp"]; string Sign = Request.Form["sign"]; string SignStr = Resp; Resp = LokFuEncode.Base64Decode(Resp, "utf-8"); JObject json = new JObject(); try { json = (JObject)JsonConvert.DeserializeObject(Resp); } catch (Exception Ex) { Response.Write(Ex.ToString()); return; } if (json == null) { Response.Write("Json Null"); return; } string resultcode = json["resultcode"].ToString(); //交易结果码 string resultmsg = json["resultmsg"].ToString(); //交易结果信息 string queryid = json["queryid"].ToString(); //交易流水号 string txnamt = json["txnamt"].ToString(); //交易金额\ string merid = json["merid"].ToString(); //交易金额 string orderid = json["orderid"].ToString(); //交易金额 FastOrder FastOrder = Entity.FastOrder.FirstOrDefault(n => n.TNum == orderid); if (FastOrder == null) { Response.Write("E1"); return; } if (FastOrder.PayState == 1) { Response.Write("P1"); return; } FastPayWay FastPayWay = Entity.FastPayWay.FirstOrDefault(n => n.Id == FastOrder.PayWay); if (FastPayWay == null) { Response.Write("E3"); return; } if (FastPayWay.State != 1) { Response.Write("E4"); return; } if (FastPayWay.DllName != "HFPay") { Response.Write("E5"); return; } string[] PayConfigArr = FastPayWay.QueryArray.Split(','); if (PayConfigArr.Length != 3) { Response.Write("E53"); return; } string MerId = PayConfigArr[0]; string MerKey = PayConfigArr[1]; string MD5Str = SignStr + MerKey; string sign = MD5Str.GetMD5(); //================================================ //这里记录日志 PayLog PayLog = new PayLog(); PayLog.PId = (int)FastOrder.PayWay; PayLog.OId = FastOrder.TNum; PayLog.TId = FastOrder.Trade; PayLog.Amount = decimal.Parse(txnamt) / 100; PayLog.Way = "POST"; PayLog.AddTime = DateTime.Now; PayLog.Data = Request.Form.ToString(); PayLog.State = 1; Entity.PayLog.AddObject(PayLog); Entity.SaveChanges(); //================================================ if (Sign != sign) { Response.Write("E4"); return; } if (MerId != merid) { Response.Write("E5"); return; } if (resultcode != "0000" && resultcode != "1002") { Response.Write("E6"); return; } int factmoney = int.Parse(txnamt); if (((int)(FastOrder.Amoney * 100)) != factmoney) { Response.Write("E7"); return; } FastOrder.Trade = queryid; Entity.SaveChanges(); FastOrder = FastOrder.PaySuccess(Entity); ViewBag.FastOrder = FastOrder; Response.Write("0000"); }
public static FastUserPay AddCard(FastUser FastUser, FastUserPay FastUserPay, FastPayWay FastPayWay, LokFuEntity Entity) { //添加/修改结算卡------不需要修改的需到上一步添加 if (FastUserPay.CardState == 2) { string[] PayConfigArr = FastPayWay.QueryArray.Split(','); if (FastPayWay.DllName == "HFJSPay") { #region 结算中心 if (PayConfigArr.Length == 3) { UserCard UserCard = Entity.UserCard.FirstOrNew(n => n.Card == FastUserPay.Card && n.UId == FastUser.UId); string Mobile = UserCard.Mobile; Users Users = Entity.Users.FirstOrNew(n => n.Id == FastUser.UId); if (Mobile.IsNullOrEmpty()) { Mobile = Users.UserName; } string Code = PayConfigArr[0]; string CodeKey = PayConfigArr[1]; string PayWayCode = PayConfigArr[2]; fastuseraddModel model = new fastuseraddModel() { code = Code, merid = FastUserPay.MerId, cardno = Users.CardId, accountcard = UserCard.Card, accountbin = UserCard.Bin, accountmobile = UserCard.Mobile }; fastuserResult fastuserResult = HFJSTools.fastuseredit(model, CodeKey); if (fastuserResult.respcode == "00") { FastUserPay.CardState = 1; Entity.SaveChanges(); } else { FastUserPay.CardMsg = fastuserResult.respcode + "[" + fastuserResult.respmsg + "]"; FastUserPay.CardState = 4; Entity.SaveChanges(); } } #endregion } } return(FastUserPay); }
/// <summary> /// 补单 /// </summary> /// <returns></returns> public ActionResult OrdersRepair(FastOrder FastOrder) { if (!FastOrder.Id.IsNullOrEmpty()) { FastOrder = Entity.FastOrder.FirstOrDefault(n => n.Id == FastOrder.Id); } if (FastOrder == null) { ViewBag.ErrorMsg = "订单不存在"; return(View("Error")); } if (FastOrder.PayState != 0) { ViewBag.ErrorMsg = "不符合补单规则"; return(View("Error")); } if (FastOrder.State == 0) { FastOrder.State = 1; Entity.SaveChanges(); } if (this.Request.QueryString["Confirm"] == "true") { OrdersPayOnly ConfirmOrdersPayOnly = Entity.OrdersPayOnly.Where(o => o.TNum == FastOrder.TNum).FirstOrDefault(); Entity.OrdersPayOnly.DeleteObject(ConfirmOrdersPayOnly); Entity.SaveChanges(); } OrdersPayOnly OrdersPayOnly = Entity.OrdersPayOnly.Where(o => o.TNum == FastOrder.TNum).FirstOrDefault(); if (OrdersPayOnly != null) { ViewBag.Msg = "入账流程未完成,是否先结束流程?"; return(View("Confirm")); } FastPayWay FastPayWay = Entity.FastPayWay.FirstOrNew(n => n.Id == FastOrder.PayWay); if (FastPayWay.State.IsNullOrEmpty()) { ViewBag.ErrorMsg = "支付通道已关闭"; return(View("Error")); } //补单查询 Users Users = Entity.Users.FirstOrDefault(o => o.Id == FastOrder.UId); Equipment Equipment = Entity.Equipment.FirstOrDefault(e => e.No == Users.ENo); if (Equipment == null) { ViewBag.ErrorMsg = "支付通道已关闭"; return(View("Error")); } string keys = Equipment.Keys; string dataJosn = "{\"token\":\"" + Users.Token + "\",\"tnum\":\"" + FastOrder.TNum + "\"}"; string data_data = HttpUtility.UrlEncode(LokFuEncode.LokFuAPIEncode(dataJosn, keys)); string Url = ConfigurationManager.AppSettings["ApiPath"].ToString() + "/API/FastOrderQuery/"; string PostData = string.Format("data={0}&eno={1}&code=0000", data_data, Users.ENo); string result = Utils.PostRequest(Url, PostData, "utf-8"); JObject JS = new JObject(); try { JS = (JObject)JsonConvert.DeserializeObject(result); string statename = ""; //返回成功 if (JS["code"].ToString() == "0000") { string ret_data = JS["data"].ToString(); result = LokFuEncode.LokFuAPIDecode(ret_data, keys); JS = (JObject)JsonConvert.DeserializeObject(result); if (JS["state"].ToString() == "0" || JS["state"].ToString() == "1") { if (JS["state"].ToString() == "0") { statename = "取消交易"; } else { statename = "待支付"; } ViewBag.ErrorMsg = "补单失败!状态:" + statename; return(View("Error")); } else { if (JS["state"].ToString() == "2") { statename = "待结算"; } else { statename = "已结算"; } ViewBag.Msg = "补单成功!状态:" + statename; return(View("Succeed")); } } else { ViewBag.ErrorMsg = JS["msg"].ToString(); return(View("Error")); } } catch (Exception) { ViewBag.ErrorMsg = "补单失败!"; return(View("Error")); } }
public void Post() { string Data = DataObj.GetData(); if (Data.IsNullOrEmpty()) { DataObj.OutError("1000"); return; } JObject json = new JObject(); try { json = (JObject)JsonConvert.DeserializeObject(Data); } catch (Exception Ex) { Log.Write("[CardReg]:", "【Data】" + Data, Ex); } if (json == null) { DataObj.OutError("1000"); return; } Card Card = new Card(); Card = JsonToObject.ConvertJsonToModel(Card, json); Users baseUsers = Entity.Users.FirstOrDefault(n => n.Token == Card.Token); if (baseUsers == null)//用户令牌不存在 { DataObj.OutError("2004"); return; } if (baseUsers.State != 1)//用户被锁定 { DataObj.OutError("2003"); return; } if (baseUsers.CardStae != 2)//未实名认证 { DataObj.OutError("2006"); return; } if (baseUsers.MiBao != 1)//未设置支付密码 { DataObj.OutError("2008"); return; } if (baseUsers.IsVip == 1)//是VIP不能再生成 { DataObj.OutError("9001"); return; } Card = Entity.Card.FirstOrDefault(n => n.Code == Card.Code && n.PasWd == Card.PasWd && n.Auto == 1); if (Card == null) { DataObj.OutError("5003"); return; } if (Card.State != 1) { string StateStr = string.Empty; switch (Card.State) { case 2: StateStr = "已授权"; break; case 3: StateStr = "已使用"; break; case 0: StateStr = "已失效"; break; } DataObj.Msg = "激活码" + StateStr; DataObj.OutError("5003"); return; } if (Card.AId.IsNullOrEmpty()) { DataObj.OutError("5002"); return; } if (Card.AdminId.IsNullOrEmpty()) { DataObj.OutError("5002"); return; } Card.State = 2;//使用中 Card.PUId = baseUsers.Id; baseUsers.Agent = Card.AId; baseUsers.CardNum = Card.Code; baseUsers.IsVip = 1; //修改到app费率 IList <UserPay> UserPayList = Entity.UserPay.Where(o => o.UId == baseUsers.Id).ToList(); foreach (var temp in UserPayList) { if (temp.Cost > 0.005) { temp.Cost = 0.005; } } // Entity.SaveChanges(); //修改用户通道费率 FastUserPay FastUserPay = Entity.FastUserPay.FirstOrDefault(o => o.UId == baseUsers.Id && o.BusiState == 1 && o.MerState == 1 && o.CardState == 1); if (FastUserPay != null) { FastPayWay FastPayWay = Entity.FastPayWay.FirstOrNew(o => o.State == 1); FastConfig FastConfig = Entity.FastConfig.FirstOrNew(); decimal Cost = 0.005M; //费率 decimal Cash = FastConfig.UserCash; //手续费 string[] PayConfigArr = FastPayWay.QueryArray.Split(','); string Code = PayConfigArr[0]; string CodeKey = PayConfigArr[1]; string PayWayCode = PayConfigArr[2]; userspayopenbModel userspayopenbModel = new userspayopenbModel() { merid = FastUserPay.MerId, paywaycode = PayWayCode, code = Code, bankcost = Cost, //surcharge = 0, cash = Cash, bankcostmin = 1.2M, bankcostmax = 9999999 }; fastuserResult fastuserResult = HFJSTools.userspayedit(userspayopenbModel, CodeKey); if (fastuserResult.respcode == "00") { if (fastuserResult.state == 1) { FastUserPay.BusiState = 1; FastUserPay.BusiMsg = fastuserResult.respcode + "升级Vip[" + fastuserResult.respmsg + "]"; FastUserPay.UserCost3 = 0.005M; } else { FastUserPay.BusiState = 4; FastUserPay.BusiMsg = fastuserResult.respcode + "升级Vip[" + fastuserResult.respmsg + "]"; } } else { FastUserPay.BusiState = 4; FastUserPay.BusiMsg = fastuserResult.respcode + "升级Vip[" + fastuserResult.respmsg + "]"; } } Entity.SaveChanges(); DataObj.Data = baseUsers.ToString(); DataObj.Code = "0000"; DataObj.OutString(); }
public ActionResult GoPay(int shopid = 0, decimal Amount = 0, byte payway = 0) { if (shopid.IsNullOrEmpty()) { ViewBag.ErrorMsg = "商户信息有误,请核实!"; return(View("Error")); } if (Amount.IsNullOrEmpty()) { ViewBag.ErrorMsg = "付款金额有误,请核实!"; return(View("Error")); } if (payway.IsNullOrEmpty()) { ViewBag.ErrorMsg = "请选择支付方式!"; return(View("Error")); } if (payway == 3 && shopid != 26) { ViewBag.ErrorMsg = "暂不开放!"; return(View("Error")); } Users Users = Entity.Users.FirstOrNew(n => n.Id == shopid && n.State == 1 && n.CardStae == 2); if (Users.Id.IsNullOrEmpty()) { ViewBag.ErrorMsg = "商户信息有误,请核实!"; return(View("Error")); } ViewBag.Users = Users; if (Amount <= 0) { ViewBag.ErrorMsg = "付款金额有误![00]"; return(View("Error")); } IList <FastPayWay> FastPayWayList = null; if (payway == 1) { FastPayWayList = Entity.FastPayWay.Where(n => n.State == 1 && n.SNum2 < Amount && n.ENum2 >= Amount && n.HasAliPay == 1).OrderBy(n => n.Sort).ToList(); } else if (payway == 2) { FastPayWayList = Entity.FastPayWay.Where(n => n.State == 1 && n.SNum < Amount && n.ENum >= Amount && n.HasWeiXin == 1).OrderBy(n => n.Sort).ToList(); } else { ViewBag.ErrorMsg = "支付方式有误!"; return(View("Error")); } if (FastPayWayList.Count < 1) { ViewBag.ErrorMsg = "当前没有可用的渠道!"; return(View("Error")); } FastPayWay FastPayWay = null; FastUserPay FastUserPay = null; IList <FastPayWay> PayWayList = new List <FastPayWay>(); foreach (var p in FastPayWayList) { if (p.TimeType == 1)//限制时间,模式1 { DateTime STime = p.STime; DateTime ETime = p.ETime; DateTime NowSTime = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd") + " " + STime.ToString("HH:mm:ss")); DateTime NowETime = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd") + " " + ETime.ToString("HH:mm:ss")); if (NowSTime <= DateTime.Now && DateTime.Now <= NowETime) { //当前时间允许交易 PayWayList.Add(p); } } else { PayWayList.Add(p); } } if (PayWayList.Count < 1) { ViewBag.ErrorMsg = "请在可交易时间内进行交易!"; return(View("Error")); } foreach (var p in PayWayList) { FastUserPay temp = Entity.FastUserPay.FirstOrDefault(n => n.UId == Users.Id && n.PayWay == p.Id && n.MerState == 1 && n.CardState == 1); if (temp != null) { FastPayWay = p; FastUserPay = temp; break; } } if (FastUserPay == null) { ViewBag.ErrorMsg = "渠道未开通!"; return(View("Error")); } if (FastPayWay == null) { ViewBag.ErrorMsg = "通道未开通!"; return(View("Error")); } decimal UserCost = 0;//用户 decimal BankCost = 0; decimal BankMin = 0; decimal BankMax = 0; decimal AgentCost = 0; //代理 if (payway == 1) //支付宝 { UserCost = FastUserPay.UserCost2; BankCost = FastPayWay.BankCost2; BankMin = FastPayWay.MinCost2; BankMax = FastPayWay.MaxCost2; AgentCost = FastPayWay.Cost2; } if (payway == 2)//微信 { UserCost = FastUserPay.UserCost; BankCost = FastPayWay.BankCost; BankMin = FastPayWay.MinCost; BankMax = FastPayWay.MaxCost; AgentCost = FastPayWay.Cost; } if (payway == 3)//银联 { UserCost = FastUserPay.UserCost3; BankCost = FastPayWay.BankCost3; BankMin = FastPayWay.MinCost3; BankMax = FastPayWay.MaxCost3; AgentCost = FastPayWay.Cost3; } //=======================生成订单=========================== SysAgent SysAgent = Entity.SysAgent.FirstOrNew(n => n.Id == Users.Agent); IList <SysAgent> SysAgentList = SysAgent.GetAgentsById(Entity); SysAgent TopAgent = SysAgentList.FirstOrNew(n => n.Tier == 1); FastOrder FastOrder = new FastOrder(); FastOrder.ComeWay = 2; FastOrder.UId = Users.Id; FastOrder.Agent = SysAgent.Id; FastOrder.PayId = string.Empty; FastOrder.OType = payway; FastOrder.PayWay = FastPayWay.Id; FastOrder.CashType = FastPayWay.GroupType; FastOrder.Amoney = Amount; //用户手续费 decimal Poundage = Amount * UserCost + FastUserPay.UserCash; Poundage = Poundage.Ceiling(); FastOrder.Poundage = Poundage; //用户最终金额 FastOrder.PayMoney = FastOrder.Amoney - FastOrder.Poundage; if (FastOrder.PayMoney < 0) { ViewBag.ErrorMsg = "结算金额出现负数!"; return(View("Error")); } FastOrder.UserRate = UserCost; FastOrder.AgentRate = AgentCost; FastOrder.SysRate = BankCost; FastOrder.UserCash = FastUserPay.UserCash; FastOrder.SysCash = FastPayWay.Cash; //计算手续费差 decimal PayGet = Amount * (UserCost - AgentCost); PayGet = PayGet.Floor(); //一级代理利润 decimal AgentPayGet = PayGet * (decimal)TopAgent.PayGet; AgentPayGet = AgentPayGet.Floor(); FastOrder.AgentPayGet = AgentPayGet; string AgentPath = "|"; string Split = "|"; decimal MyGet = PayGet; foreach (var p in SysAgentList) { AgentPath += p.Id + "|"; MyGet = MyGet * (decimal)p.PayGet;//各级代理分润 MyGet = MyGet.Floor(); Split += MyGet.ToString("F2") + "|"; } FastOrder.AgentPath = AgentPath; FastOrder.Split = Split; decimal BankMoney = Amount * BankCost; if (BankMoney < BankMin) { BankMoney = BankMin; } if (BankMoney > BankMax) { BankMoney = BankMax; } //用户手续费(含代付手续费)-代付分润-银行手续费-银行代付成本 decimal HFGet = Poundage - AgentPayGet - BankMoney - FastPayWay.Cash; FastOrder.HFGet = HFGet; FastOrder.State = 1; FastOrder.AddTime = DateTime.Now; FastOrder.PayState = 0; FastOrder.AgentState = 0; FastOrder.UserState = 0; FastOrder.CardName = FastUserPay.CardName; FastOrder.Bank = FastUserPay.Bank; FastOrder.Card = FastUserPay.Card; FastOrder.Bin = FastUserPay.Bin; Entity.FastOrder.AddObject(FastOrder); Entity.SaveChanges(); Entity.Refresh(RefreshMode.StoreWins, FastOrder); //=======================分润记录=========================== MyGet = PayGet; foreach (var p in SysAgentList) { MyGet = MyGet * (decimal)p.PayGet;//各级代理分润 MyGet = MyGet.Floor(); FastSplit FastSplit = new FastSplit(); FastSplit.Tnum = FastOrder.TNum; FastSplit.Profit = MyGet; FastSplit.AgentId = p.Id; FastSplit.Tier = p.Tier; FastSplit.AddTime = DateTime.Now; Entity.FastSplit.AddObject(FastSplit); } Entity.SaveChanges(); //RespObj.queryId = Orders.TNum; string[] PayConfigArr = FastPayWay.QueryArray.Split(','); //=======================请求接口开始=========================== if (FastPayWay.DllName == "HFPay") { string NoticeUrl = NoticePath + "/PayCenter/HFPay/FastNotice.html";//后台通过地址 #region 微信&支付宝 string Action = ""; if (FastOrder.OType == 1) { Action = "AliSao"; } else if (FastOrder.OType == 2) { Action = "WxSao"; } //提交结算中心 string merId = PayConfigArr[0]; //商户号 string merKey = PayConfigArr[1]; //商户密钥 string PayWay = PayConfigArr[2]; //绑定通道 decimal money = FastOrder.Amoney * 100; string OrderMoney = money.ToString("F0");//金额,以分为单 string PostJson = "{\"action\":\"" + Action + "\",\"txnamt\":\"" + OrderMoney + "\",\"merid\":\"" + merId + "\",\"payway\":\"" + PayWay + "\",\"orderid\":\"" + FastOrder.TNum + "\",\"backurl\":\"" + NoticeUrl + "\"}"; string DataBase64 = LokFuEncode.Base64Encode(PostJson, "utf-8"); string Sign = (DataBase64 + merKey).GetMD5(); DataBase64 = HttpUtility.UrlEncode(DataBase64); string PostData = string.Format("req={0}&sign={1}", DataBase64, Sign); string HF_Url = "https://api.zhifujiekou.com/api/mpgateway"; string Ret = Utils.PostRequest(HF_Url, PostData, "utf-8"); JObject JS = new JObject(); try { JS = (JObject)JsonConvert.DeserializeObject(Ret); } catch (Exception) { FastOrder.State = 0; FastOrder.Remark = "数据请求出错"; Entity.SaveChanges(); JS = null; } if (JS != null) { string resp = JS["resp"].ToString(); Ret = LokFuEncode.Base64Decode(resp, "utf-8"); try { JS = (JObject)JsonConvert.DeserializeObject(Ret); } catch (Exception Ex) { FastOrder.State = 0; FastOrder.Remark = "JSON加载出错"; Entity.SaveChanges(); JS = null; } if (JS != null) { string respcode = JS["respcode"].ToString(); if (respcode != "00") { string respmsg = JS["respmsg"].ToString(); FastOrder.State = 0; FastOrder.Remark = respmsg; Entity.SaveChanges(); } else { if (JS["formaction"] == null) { FastOrder.State = 0; FastOrder.Remark = "接口没有返回二维码"; Entity.SaveChanges(); } else { string BankNum = JS["queryid"].ToString(); string qr_code = JS["formaction"].ToString(); FastOrder.PayId = qr_code; FastOrder.Trade = BankNum; Entity.SaveChanges(); } } } } #endregion } ViewBag.FastOrder = FastOrder; if (IsAlipayBrowser) { if (!FastOrder.PayId.IsNullOrEmpty()) { Response.Redirect(FastOrder.PayId); return(View("Null")); } } return(View()); }
public void Post() { string Data = DataObj.GetData(); if (Data.IsNullOrEmpty()) { DataObj.OutError("1000"); return; } JObject json = new JObject(); try { json = (JObject)JsonConvert.DeserializeObject(Data); } catch (Exception Ex) { Log.Write("[FastPayWay]:", "【Data】" + Data, Ex); json = null; } if (json == null) { DataObj.OutError("1000"); return; } Users Users = new Users(); Users = JsonToObject.ConvertJsonToModel(Users, json); Users baseUsers = Entity.Users.FirstOrDefault(n => n.Token == Users.Token); if (baseUsers == null)//用户令牌不存在 { DataObj.OutError("2004"); return; } if (baseUsers.State != 1)//用户被锁定 { DataObj.OutError("2003"); return; } if (baseUsers.CardStae != 2)//未实名认证 { DataObj.OutError("2006"); return; } IList <FastPayWay> FastPayWayList = Entity.FastPayWay.Where(n => n.State == 1 && n.ManE == 0).OrderBy(n => n.Sort).ToList(); if (FastPayWayList == null) { DataObj.OutError("2079"); return; } IList <FastPayWay> PayWayList = new List <FastPayWay>(); foreach (var p in FastPayWayList) { if (p.TimeType == 1)//限制时间,模式1 { DateTime STime = p.STime; DateTime ETime = p.ETime; DateTime NowSTime = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd") + " " + STime.ToString("HH:mm:ss")); DateTime NowETime = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd") + " " + ETime.ToString("HH:mm:ss")); if (NowSTime <= DateTime.Now && DateTime.Now <= NowETime) { //当前时间允许交易 PayWayList.Add(p); } } else { PayWayList.Add(p); } } if (PayWayList.Count < 1) { DataObj.OutError("2071"); return; } IList <FastPayWay> WxList = PayWayList.Where(n => n.HasWeiXin == 1).ToList(); IList <FastPayWay> AliList = PayWayList.Where(n => n.HasAliPay == 1).ToList(); //IList<FastPayWay> BankList = PayWayList.Where(n => n.HasBank == 1).ToList(); IList <FastPayWay> List = new List <FastPayWay>(); if (WxList.Count > 0) { FastPayWay Wx = new FastPayWay(); Wx.GroupType = "WeiXin"; Wx.SNum = WxList.OrderBy(n => n.SNum2).FirstOrDefault().SNum2; Wx.ENum = WxList.OrderByDescending(n => n.ENum2).FirstOrDefault().ENum2; List.Add(Wx); } if (AliList.Count > 0) { FastPayWay Ali = new FastPayWay(); Ali.GroupType = "AliPay"; Ali.SNum = AliList.OrderBy(n => n.SNum).FirstOrDefault().SNum; Ali.ENum = AliList.OrderByDescending(n => n.ENum).FirstOrDefault().ENum; List.Add(Ali); } //if (BankList.Count > 0) //{ // FastPayWay Bank = new FastPayWay(); // Bank.GroupType = "Bank"; // Bank.SNum = BankList.OrderBy(n => n.BankSNum).FirstOrDefault().BankSNum; // Bank.ENum = BankList.OrderByDescending(n => n.BankENum).FirstOrDefault().BankENum; // List.Add(Bank); //} DataObj.Data = List.EntityToJson(); DataObj.Code = "0000"; DataObj.OutString(); }
/// <summary> /// 同步重新出款用户结算状态 /// </summary> public ActionResult ResubmitSyncUserState(string STNum) { var FastOrderChange = Entity.FastOrderChange.FirstOrDefault(o => o.STNum == STNum); if (FastOrderChange == null) { ViewBag.ErrorMsg = "重新出款单不存在"; return(View("Error")); } if (FastOrderChange.State != 2) { ViewBag.ErrorMsg = "只有用户结算失败才能使用该功能"; return(View("Error")); } FastOrder FastOrder = Entity.FastOrder.FirstOrDefault(o => o.TNum == FastOrderChange.TNum); if (FastOrder == null) { ViewBag.ErrorMsg = "订单不存在"; return(View("Error")); } string OldUserState = FastOrder.GetUserClearingState(); FastPayWay FastPayWay = Entity.FastPayWay.FirstOrDefault(n => n.Id == FastOrder.PayWay); FastUserPay FastUserPay = Entity.FastUserPay.FirstOrDefault(n => n.PayWay == FastOrder.PayWay && n.UId == FastOrder.UId && n.CardState == 1); if (FastPayWay != null) { string[] PayConfigArr = FastPayWay.QueryArray.Split(','); if (FastPayWay.DllName == "HFPay") { string TNum = FastOrderChange.STNum; #region string HFCash_Url = "https://api.zhifujiekou.com/api/qcashgateway"; //不需要 string PayPath = ConfigurationManager.AppSettings["PayPath"].ToString(); string NoticeUrl = PayPath + "/PayCenter/HFCash/FastNotice.html"; //提交结算中心 string merId = PayConfigArr[0]; //商户号 string merKey = PayConfigArr[1]; //商户密钥 string orderId = TNum; //商户流水号 string OrderMoney = (FastOrder.PayMoney * 100).ToString("F0"); //金额,以分为单 FastUser FastUser = Entity.FastUser.FirstOrNew(n => n.UId == FastOrder.UId); string UserCardId = FastUser.CardId; string PostJson = "{\"action\":\"QCash\",\"txnamt\":\"" + OrderMoney + "\",\"merid\":\"" + merId + "\",\"orderid\":\"" + orderId + "\",\"backurl\":\"" + NoticeUrl + "\",\"bin\":\"" + FastOrder.Bin + "\",\"accno\":\"" + FastOrder.Card + "\",\"accname\":\"" + FastOrder.CardName + "\",\"cardno\":\"" + UserCardId + "\"}"; //传送数据Base64 string DataBase64 = LokFuEncode.Base64Encode(PostJson, "utf-8"); //获得签名 string Sign = (DataBase64 + merKey).GetMD5(); //传送数据UrlEnCode DataBase64 = HttpUtility.UrlEncode(DataBase64); //组装Post数据 string PostData = string.Format("req={0}&sign={1}", DataBase64, Sign); //Post数据,获得结果 string Ret = Utils.PostRequest(HFCash_Url, PostData, "utf-8"); JObject JS = new JObject(); try { JS = (JObject)JsonConvert.DeserializeObject(Ret); } catch (Exception) { Utils.WriteLog("处理代付[" + FastOrder.TNum + "]!" + Ret, "CashPay"); JS = null; } if (JS != null) { string resp = JS["resp"].ToString(); Ret = LokFuEncode.Base64Decode(resp, "utf-8"); try { JS = (JObject)JsonConvert.DeserializeObject(Ret); } catch (Exception Ex) { FastOrder.UserState = 0;//提交的时候报错,可重新提交 JS = null; Utils.WriteLog("[CashPay]:JSON[" + Ret + "]" + Ex.ToString(), "FastOrder"); ViewBag.ErrorMsg = "返回数据错误"; return(View("Error")); } if (JS != null) { string respcode = JS["respcode"].ToString(); if (respcode == "00") { string resultcode = JS["resultcode"].ToString(); if (resultcode == "0000") { FastOrder.UserState = 1; FastOrderChange.State = 1; } else if (resultcode == "2002" || resultcode == "2003") { FastOrder.UserState = 2; FastOrderChange.State = 2; } else { FastOrder.UserState = 3; FastOrderChange.State = 3; } //====================================== PayLog PayLog = new PayLog(); PayLog.PId = FastPayWay.Id; PayLog.OId = TNum; PayLog.TId = ""; PayLog.Amount = 0; PayLog.Way = "FASTDF"; PayLog.AddTime = DateTime.Now; PayLog.Data = Ret; PayLog.State = 1; Entity.PayLog.AddObject(PayLog); //====================================== FastOrderChange.Data = Ret; Entity.FastOrderChange.AddObject(FastOrderChange); Entity.SaveChanges(); } } } #endregion } } if (FastOrder.UserState == 1) { ViewBag.Msg = "订单已成功重新出款"; return(View("Succeed")); } else { string NewUserState = FastOrder.GetUserClearingState(); ViewBag.ErrorMsg = "用户结算状态从" + OldUserState + "->" + NewUserState; return(View("Error")); } }
public void Execute(IJobExecutionContext context) { string JobName = "FastQuery"; string CanRun = ConfigurationManager.AppSettings["Run" + JobName].ToString(); if (CanRun == "true") { if (!IsRun) { LokFuEntity Entity = new LokFuEntity(); IsRun = true; try { Log.Write(JobName + "任务开始执行!"); //------------------------------------------------------- #region 任务主体 //查询所有已支付但未代付订单 DateTime STime = DateTime.Now.AddDays(-1); DateTime ETime = DateTime.Now.AddSeconds(-30); IList <FastOrder> List = Entity.FastOrder.Where(n => n.State == 1 && n.PayState == 1 && n.UserState == 3 && n.UserTime <ETime && n.UserTime> STime).ToList(); //UserState 0未付 1已付 2失败 3结果未明 4付起中 foreach (var p in List) { FastPayWay FastPayWay = Entity.FastPayWay.FirstOrDefault(n => n.Id == p.PayWay && n.State == 1); FastUserPay FastUserPay = Entity.FastUserPay.FirstOrDefault(n => n.PayWay == p.PayWay && n.UId == p.UId); if (FastPayWay != null) { string[] PayConfigArr = FastPayWay.QueryArray.Split(','); if (FastPayWay.DllName == "HFPay") { #region 查代付结果 if (PayConfigArr.Length == 3) { string HF_Url = "https://api.zhifujiekou.com/api/qcashquery"; string MerId = PayConfigArr[0]; string MerKey = PayConfigArr[1]; string orderId = p.TNum;//商户流水号 string PostJson = "{\"merid\":\"" + MerId + "\",\"orderid\":\"" + orderId + "\"}"; string DataBase64 = LokFuEncode.Base64Encode(PostJson, "utf-8"); string Sign = (DataBase64 + MerKey).GetMD5(); DataBase64 = HttpUtility.UrlEncode(DataBase64); string PostData = string.Format("req={0}&sign={1}", DataBase64, Sign); string Ret = Utils.PostRequest(HF_Url, PostData, "utf-8"); JObject JS = new JObject(); try { JS = (JObject)JsonConvert.DeserializeObject(Ret); } catch (Exception) { JS = null; } if (JS != null) { if (JS["resp"] != null) { string resp = JS["resp"].ToString(); Ret = LokFuEncode.Base64Decode(resp, "utf-8"); try { JS = (JObject)JsonConvert.DeserializeObject(Ret); } catch (Exception) { JS = null; } if (JS != null) { string respcode = JS["respcode"].ToString(); if (respcode == "00") { string resultcode = JS["resultcode"].ToString(); if (resultcode == "0000") { p.UserState = 1; } else if (resultcode == "2002" || resultcode == "2003") { p.UserState = 2; } else { } Entity.SaveChanges(); } } } } //================================================ PayLog PayLog = new PayLog(); PayLog.PId = FastPayWay.Id; PayLog.OId = p.TNum; PayLog.TId = ""; PayLog.Amount = 0; PayLog.Way = "FASTDFQ"; PayLog.AddTime = DateTime.Now; PayLog.Data = Ret; PayLog.State = 1; Entity.PayLog.AddObject(PayLog); //================================================ Entity.SaveChanges(); } #endregion } if (FastPayWay.DllName == "HFJSPay") { #region 结算系统 //不需要 fastordersqueryModel fastordersqueryModel = new fastordersqueryModel() { merid = FastUserPay.MerId, orderid = "", queryid = p.TNum }; fastordersqueryResult fastordersqueryResult = HFJSTools.fastordersquery(fastordersqueryModel, FastUserPay.MerKey); //================================================ //记录通知信息 PayLog PayLog = new PayLog(); PayLog.PId = p.PayWay.Value; PayLog.OId = p.TNum; PayLog.TId = fastordersqueryResult.queryid; PayLog.Amount = p.Amoney; PayLog.Way = "FASTDFQ"; PayLog.AddTime = DateTime.Now; PayLog.Data = HFJSTools.MyObjectToJson(fastordersqueryResult); PayLog.State = 1; Entity.PayLog.AddObject(PayLog); Entity.SaveChanges(); //================================================ if (fastordersqueryResult.respcode == "00") { if (fastordersqueryResult.resultcode == "0000") { p.UserState = 1; Entity.SaveChanges(); } if (fastordersqueryResult.resultcode == "1003") { p.UserState = 2; Entity.SaveChanges(); } } else { string resp_desc = fastordersqueryResult.respmsg; Utils.WriteLog("HFJS[Query][" + p.TNum + "]:" + resp_desc, "JobHFJS"); } #endregion } } Log.WriteLog("查询代付[" + p.TNum + "]!", JobName); } #endregion //------------------------------------------------------- Log.Write(JobName + "任务执行结束![共计" + List.Count + "条]"); } catch (Exception Ex) { Log.Write(JobName + "任务执行过程出错!", Ex); } IsRun = false; } else { Log.Write(JobName + "任务还在执行中!"); } } }
public ActionResult Index(Users Users, string SetCashType = "D0") { if (!Users.Id.IsNullOrEmpty()) { Users = Entity.Users.FirstOrNew(n => n.Id == Users.Id); } //if (!IsLokFu && !IsAlipayBrowser && !IsWeiXinBrowser) //{ // ViewBag.ErrorMsg = "请使用微信或支付宝扫码!"; // return View("Error"); //} if (Users == null) { ViewBag.ErrorMsg = "商户信息异常!"; return(View("Error")); } if (Users.Id.IsNullOrEmpty()) { ViewBag.ErrorMsg = "商户信息异常!"; return(View("Error")); } if (Users.State != 1)//用户被锁定 { ViewBag.ErrorMsg = "商户状态异常!"; return(View("Error")); } if (Users.CardStae != 2)//未实名认证 { ViewBag.ErrorMsg = "商户未认证,不能收款!"; return(View("Error")); } ViewBag.Users = Users; FastUser FastUser = Entity.FastUser.FirstOrDefault(n => n.UId == Users.Id); if (FastUser == null) { ViewBag.ErrorMsg = "商户未开通!"; return(View("Error")); } ViewBag.FastUser = FastUser; FastConfig FastConfig = Entity.FastConfig.FirstOrNew(); //=========================================================== //处理有哪些通道 IList <FastPayWay> FastPayWayList = Entity.FastPayWay.Where(n => n.State == 1 && n.ManE == 0).OrderBy(n => n.Sort).ToList(); if (!SetCashType.IsNullOrEmpty()) { FastPayWayList = FastPayWayList.Where(n => n.GroupType == SetCashType).ToList(); } if (FastPayWayList == null) { ViewBag.ErrorMsg = "暂无可用通道!"; return(View("Error")); } IList <FastPayWay> PayWayList = new List <FastPayWay>(); foreach (var p in FastPayWayList) { if (p.TimeType == 1)//限制时间,模式1 { DateTime STime = p.STime; DateTime ETime = p.ETime; DateTime NowSTime = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd") + " " + STime.ToString("HH:mm:ss")); DateTime NowETime = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd") + " " + ETime.ToString("HH:mm:ss")); if (NowSTime <= DateTime.Now && DateTime.Now <= NowETime) { //当前时间允许交易 PayWayList.Add(p); } } else { PayWayList.Add(p); } } if (PayWayList.Count < 1) { ViewBag.ErrorMsg = "暂无可用通道!"; return(View("Error")); } IList <FastPayWay> WxList = PayWayList.Where(n => n.HasWeiXin == 1).ToList(); IList <FastPayWay> AliList = PayWayList.Where(n => n.HasAliPay == 1).ToList(); IList <FastPayWay> BankList = PayWayList.Where(n => n.HasBank == 1).ToList(); IList <FastPayWay> List = new List <FastPayWay>(); if (WxList.Count > 0) { FastPayWay Wx = new FastPayWay(); Wx.Id = 2; Wx.GroupType = "weixin"; Wx.DllName = "微信支付"; Wx.SNum = WxList.OrderBy(n => n.SNum).FirstOrDefault().SNum; Wx.ENum = WxList.OrderByDescending(n => n.ENum).FirstOrDefault().ENum; List.Add(Wx); } if (AliList.Count > 0) { FastPayWay Ali = new FastPayWay(); Ali.Id = 1; Ali.GroupType = "alipay"; Ali.DllName = "支付宝支付"; Ali.SNum = AliList.OrderBy(n => n.SNum2).FirstOrDefault().SNum2; Ali.ENum = AliList.OrderByDescending(n => n.ENum2).FirstOrDefault().ENum2; List.Add(Ali); } if (BankList.Count > 0) { //收银台暂不开放银联 //FastPayWay Bank = new FastPayWay(); //Bank.Id = 3; //Bank.GroupType = "bank"; //Bank.DllName = "银行卡支付"; //Bank.SNum = BankList.OrderBy(n => n.BankSNum).FirstOrDefault().BankSNum; //Bank.ENum = BankList.OrderByDescending(n => n.BankENum).FirstOrDefault().BankENum; //List.Add(Bank); } ViewBag.FastPayWayList = List; //=========================================================== //这里要处理商户入驻 BusFastPay.AddMer(FastUser, FastConfig, this.Entity); //=========================================================== //处理自选商户 //Users.SetPayName = Users.NeekName; //Users.CanOpenMer = 0; return(View()); }
public string PayState(string code) { string TNum = LokFuEncode.Base64Decode(code); FastOrder FastOrder = Entity.FastOrder.FirstOrDefault(n => n.TNum == TNum); if (FastOrder == null) { return("E1"); } if (FastOrder.PayState == 1) { return("S"); } if (FastOrder.State != 1) { return("E0"); } FastPayWay FastPayWay = Entity.FastPayWay.FirstOrNew(n => n.Id == FastOrder.PayWay); if (FastPayWay == null) { return("E2"); } string[] PayConfigArr = FastPayWay.QueryArray.Split(new char[] { ',' });//接口信息 if (FastPayWay.DllName == "HFPay") { #region 结算中心 if (PayConfigArr.Length == 3) { string HF_Url = "https://api.zhifujiekou.com/api/query"; string MerId = PayConfigArr[0]; string MerKey = PayConfigArr[1]; string orderId = FastOrder.TNum;//商户流水号 string PostJson = "{\"merid\":\"" + MerId + "\",\"orderid\":\"" + orderId + "\"}"; string DataBase64 = LokFuEncode.Base64Encode(PostJson, "utf-8"); string Sign = (DataBase64 + MerKey).GetMD5(); DataBase64 = HttpUtility.UrlEncode(DataBase64); string PostData = string.Format("req={0}&sign={1}", DataBase64, Sign); string Ret = Utils.PostRequest(HF_Url, PostData, "utf-8"); JObject JS = new JObject(); try { JS = (JObject)JsonConvert.DeserializeObject(Ret); } catch (Exception) { JS = null; } if (JS != null) { if (JS["resp"] != null) { string resp = JS["resp"].ToString(); Ret = LokFuEncode.Base64Decode(resp, "utf-8"); try { JS = (JObject)JsonConvert.DeserializeObject(Ret); } catch (Exception) { JS = null; } if (JS != null) { string respcode = JS["respcode"].ToString(); if (respcode == "00") { string resultcode = JS["resultcode"].ToString(); if (resultcode == "0000" || resultcode == "1002" || resultcode == "1004") { string queryid = JS["queryid"].ToString(); FastOrder.Trade = queryid; Entity.SaveChanges(); string txnamt = JS["txnamt"].ToString(); int factmoney = int.Parse(txnamt); if (((int)(FastOrder.Amoney * 100)) == factmoney) { FastOrder = FastOrder.PaySuccess(Entity); } } } //================================================ //这里记录日志 PayLog PayLog = new PayLog(); PayLog.PId = (int)FastOrder.PayWay; PayLog.OId = FastOrder.TNum; PayLog.TId = FastOrder.Trade; PayLog.Amount = FastOrder.Amoney; PayLog.Way = "Query"; PayLog.AddTime = DateTime.Now; PayLog.Data = Ret; PayLog.State = 1; Entity.PayLog.AddObject(PayLog); Entity.SaveChanges(); //================================================ } } } } #endregion } if (FastOrder.PayState == 1) { return("S"); } if (FastOrder.State == 0) { return("E100"); } return("G"); }
public string SetBank(int bankid) { if (!IsLokFu) { return("请在钱包中打开链接!"); } if (BasicUsers == null)//用户令牌不存在 { return("您未登录或已在其它手机登录!"); } if (BasicUsers.Id.IsNullOrEmpty())//用户令牌不存在 { return("您未登录或已在其它手机登录!"); } if (BasicUsers.State != 1)//用户被锁定 { return("您的帐户被锁定!"); } if (BasicUsers.CardStae != 2)//未实名认证 { return("您未实名认证!"); } FastUser FastUser = Entity.FastUser.FirstOrDefault(n => n.UId == BasicUsers.Id); if (FastUser == null) { return("用户信息有误!"); } UserCard UserCard = Entity.UserCard.FirstOrDefault(n => n.UId == BasicUsers.Id && n.Type == 1 && n.Id == bankid && n.State == 1); if (UserCard == null) { return("银行卡信息有误!"); } if (FastUser.Card == UserCard.Card) { return("没有变更!"); } FastUser.Card = UserCard.Card; FastUser.Bank = UserCard.Bank; FastUser.Bin = UserCard.Bin; Entity.SaveChanges(); //这里要增加所有通道的商户注册及绑卡操作 //============================================================= IList <FastPayWay> FastPayWayList = Entity.FastPayWay.OrderBy(n => n.Sort).ToList(); IList <FastUserPay> FastUserPayList = Entity.FastUserPay.Where(n => n.UId == FastUser.UId).OrderBy(n => n.PayWay).ToList(); foreach (var p in FastUserPayList) { FastPayWay FastPayWay = FastPayWayList.FirstOrDefault(n => n.Id == p.PayWay); if (FastPayWay != null) { if (FastPayWay.DllName == "HFPay") { p.CardState = 1;//不需要验卡 } else { p.CardState = 2;//重新标识状态为待提交 } p.Bank = FastUser.Bank; p.Card = FastUser.Card; p.Bin = FastUser.Bin; BusFastPay.AddCard(FastUser, p, FastPayWay, Entity); } } Entity.SaveChanges(); //============================================================= return("ok"); }
private List <FinFlowMode> FlowQuery(DateTime STime, DateTime ETime) { var FastPayWayList = this.Entity.FastPayWay.ToList(); var PayConfigList = this.Entity.PayConfig.ToList(); var FinFlowModeList = new List <FinFlowMode>(); var args_FO = new DbParameter[] { new SqlParameter { ParameterName = "STime", Value = STime.ToString("yyyy-MM-dd HH:mm:ss") }, new SqlParameter { ParameterName = "ETime", Value = ETime.ToString("yyyy-MM-dd HH:mm:ss.fff") } }; var args_VO = new DbParameter[] { new SqlParameter { ParameterName = "STime", Value = STime.ToString("yyyy-MM-dd HH:mm:ss") }, new SqlParameter { ParameterName = "ETime", Value = ETime.ToString("yyyy-MM-dd HH:mm:ss.fff") } }; var args_UC = new DbParameter[] { new SqlParameter { ParameterName = "STime", Value = STime.ToString("yyyy-MM-dd HH:mm:ss") }, new SqlParameter { ParameterName = "ETime", Value = ETime.ToString("yyyy-MM-dd HH:mm:ss.fff") } }; string FastOrderSQL = @";with a as (Select PayWay,COUNT(1) as PayCounts, Sum(Amoney) AS Amoney , Sum(PayMoney) AS PayMoney, Sum(Poundage) AS Poundage, Sum(HFGet) AS Profit, SUM(ROUND(sysrate*amoney,2,1)) AS Cost, Sum(SysCash) as SysCash, Sum(AgentPayGet) AS AgentPayGet From FastOrder (nolock) Where PayTime > @STime AND PayTime <= @ETime GROUP BY PayWay ) , c as (select PayWay,ISNULL(COUNT(PayState),0) NoPayCounts from FastOrder where AddTime > @STime AND AddTime <= @ETime and PayState = 0 GROUP BY PayWay ) select b.id as payway,isnull(a.PayCounts,0) as PayCounts,isnull(c.NoPayCounts,0) as NoPayCounts, isnull(a.amoney,0) amoney, isnull(a.paymoney,0) paymoney, isnull(a.Poundage,0) Poundage, isnull(a.Profit,0) Profit, isnull(a.Cost,0) Cost, isnull(a.SysCash,0) SysCash, isnull(a.AgentPayGet,0) AgentPayGet, 1 AS FlowType,'FastOrder' AS OrderType from FastPayWay b left join a on a.PayWay = b.Id left join c on c.PayWay = b.Id where b.State = 1 or PayCounts is not null order by b.State desc,PayCounts desc"; var FinFlowMode_FO = this.Entity.ExecuteStoreQuery <FinFlowMode>(FastOrderSQL, args_FO).ToList(); FinFlowMode_FO.ForEach(o => { FastPayWay FastPayWay = FastPayWayList.FirstOrNew(x => x.Id == o.PayWay); o.PayWayName = FastPayWay.ShowName + "(" + FastPayWay.Title + ")"; }); FinFlowModeList.AddRange(FinFlowMode_FO); return(FinFlowModeList); }
public ActionResult Index(string etnum) { if (etnum.IsNullOrEmpty()) { ViewBag.ErrorMsg = "Some Error[00]"; return(View("Error")); } string tnum = LokFuEncode.LokFuAPIDecode(etnum, DllName); FastOrder FastOrder = Entity.FastOrder.FirstOrDefault(n => n.TNum == tnum); if (FastOrder == null) { ViewBag.ErrorMsg = "Some Error[02]"; return(View("Error")); } FastPayWay FastPayWay = Entity.FastPayWay.FirstOrDefault(n => n.Id == FastOrder.PayWay); if (FastPayWay == null) { ViewBag.ErrorMsg = "Some Error[03]"; return(View("Error")); } if (FastPayWay.DllName != DllName) { ViewBag.ErrorMsg = "Some Error[04]"; return(View("Error")); } string[] PayConfigArr = FastPayWay.QueryArray.Split(','); if (PayConfigArr.Length != 3) { ViewBag.ErrorMsg = "Some Error[05]"; return(View("Error")); } FastUser FastUser = Entity.FastUser.FirstOrNew(n => n.UId == FastOrder.UId); string merId = PayConfigArr[0]; //商户号 string merKey = PayConfigArr[1]; //商户密钥 string PayWay = PayConfigArr[2]; //绑定通道 string orderId = FastOrder.TNum; //商户流水号 string OrderMoney = (FastOrder.Amoney * 100).ToString("F0"); //金额,以分为单 string TrueName = FastUser.TrueName; string CardId = FastUser.CardId; //填写参数 string ReturnUrl = PayPath + "/PayCenter/HFPay/FastResult.html"; //支付成功跳转页 string BackUrl = NoticePath + "/PayCenter/HFPay/FastNotice.html"; //后台通过地址 if (TrueName.IsNullOrEmpty() || CardId.IsNullOrEmpty()) { ViewBag.ErrorMsg = "TrueName IsNull"; return(View("Error")); } if (FastPayWay.Id == 8) { PayWay = "3855"; } //if (FastPayWay.Id == 13) //{ // PayWay = "3852"; //} string Data = "{\"action\":\"goAndPay\",\"txnamt\":\"" + OrderMoney + "\",\"merid\":\"" + merId + "\",\"payway\":\"" + PayWay + "\",\"orderid\":\"" + orderId + "\",\"backurl\":\"" + BackUrl + "\",\"fronturl\":\"" + ReturnUrl + "\",\"accname\":\"" + TrueName + "\",\"accno\":\"" + CardId + "\"}"; string DataBase64 = LokFuEncode.Base64Encode(Data, "utf-8"); string Sign = (DataBase64 + merKey).GetMD5(); string GoUrl = "https://api.zhifujiekou.com/apis/gateway?"; GoUrl += "req=" + HttpUtility.UrlEncode(DataBase64); GoUrl += "&sign=" + Sign; Response.Redirect(GoUrl); return(View("Null")); }
public void Post() { string Data = DataObj.GetData(); if (Data.IsNullOrEmpty()) { DataObj.OutError("1000"); return; } JObject json = new JObject(); try { json = (JObject)JsonConvert.DeserializeObject(Data); } catch (Exception Ex) { Log.Write("[FastSetBankController]:", "【Data】" + Data, Ex); json = null; } if (json == null) { DataObj.OutError("1000"); return; } UserCard UserCard = new UserCard(); UserCard = JsonToObject.ConvertJsonToModel(UserCard, json); UserTrack UserTrack = new UserTrack(); UserTrack = JsonToObject.ConvertJsonToModel(UserTrack, json); Users baseUsers = Entity.Users.FirstOrDefault(n => n.Token == UserCard.Token); if (baseUsers == null)//用户令牌不存在 { DataObj.OutError("2004"); return; } if (baseUsers.State != 1)//用户被锁定 { DataObj.OutError("2003"); return; } if (baseUsers.CardStae != 2)//未实名认证 { DataObj.OutError("2006"); return; } FastUser FastUser = Entity.FastUser.FirstOrDefault(n => n.UId == baseUsers.Id); if (FastUser == null) { DataObj.OutError("2035"); return; } UserCard UC = Entity.UserCard.FirstOrDefault(n => n.UId == baseUsers.Id && n.Type == 1 && n.Id == UserCard.Id && n.State == 1); if (UC == null) { DataObj.OutError("1001"); return; } if (FastUser.Card == UC.Card) { DataObj.OutError("2080"); return; } string GPSRemark = "旧默认结算卡:" + FastUser.Card + " 新默认结算卡:" + UC.Card; FastUser.Card = UC.Card; FastUser.Bank = UC.Bank; FastUser.Bin = UC.Bin; Entity.SaveChanges(); //这里要增加所有通道的商户注册及绑卡操作 //============================================================= IList <FastPayWay> FastPayWayList = Entity.FastPayWay.OrderBy(n => n.Sort).ToList(); //购买商户与默认商户都需要改卡 IList <FastUserPay> FastUserPayList = Entity.FastUserPay.Where(n => n.UId == baseUsers.Id).OrderBy(n => n.PayWay).ToList(); foreach (var p in FastUserPayList) { FastPayWay FastPayWay = FastPayWayList.FirstOrDefault(n => n.Id == p.PayWay); if (FastPayWay != null) { if (FastPayWay.DllName == "MiBank" || FastPayWay.DllName == "HFPay" || FastPayWay.DllName == "ZBLHPay" || FastPayWay.DllName == "JiFuJFPay") { p.CardState = 1;//不需要验卡 } else { p.CardState = 2;//重新标识状态为待提交 } p.Bank = FastUser.Bank; p.Card = FastUser.Card; p.Bin = FastUser.Bin; BusFastPay.AddCard(FastUser, p, FastPayWay, Entity); } } Entity.SaveChanges(); //======================================= UserTrack.ENo = DataObj.ENo; UserTrack.OPType = "更换默认结算卡"; UserTrack.UserName = ""; UserTrack.Remark = GPSRemark; UserTrack.UId = FastUser.UId; UserTrack.SeavGPSLog(Entity); //======================================= FastUser.Cols = "Card,Bank,Bin"; DataObj.Data = FastUser.OutJson(); DataObj.Code = "0000"; DataObj.OutString(); }
public ActionResult FastResult() { string Resp = Request.QueryString["resp"]; string Sign = Request.QueryString["sign"]; string SignStr = Resp; Resp = LokFuEncode.Base64Decode(Resp, "utf-8"); JObject json = new JObject(); try { json = (JObject)JsonConvert.DeserializeObject(Resp); } catch (Exception Ex) { ViewBag.ErrorMsg = Ex.ToString(); return(View("Error")); } if (json == null) { ViewBag.ErrorMsg = "数据处理出错"; return(View("Error")); } string resultcode = json["resultcode"].ToString(); //交易结果码 string resultmsg = json["resultmsg"].ToString(); //交易结果信息 string queryid = json["queryid"].ToString(); //交易流水号 string txnamt = json["txnamt"].ToString(); //交易金额 string merid = json["merid"].ToString(); //商户号 string orderid = json["orderid"].ToString(); //交易单号 FastOrder FastOrder = Entity.FastOrder.FirstOrDefault(n => n.TNum == orderid); if (FastOrder == null) { ViewBag.ErrorMsg = "交易不存在!"; return(View("Error")); } if (FastOrder.State != 1) { ViewBag.ErrorMsg = "交易异常!"; return(View("Error")); } FastPayWay FastPayWay = Entity.FastPayWay.FirstOrDefault(n => n.Id == FastOrder.PayWay); if (FastPayWay == null) { ViewBag.ErrorMsg = "支付通道不存在!"; return(View("Error")); } if (FastPayWay.State != 1) { ViewBag.ErrorMsg = "支付通道已关闭!"; return(View("Error")); } if (FastPayWay.DllName != "HFPay") { ViewBag.ErrorMsg = "支付通道异常!"; return(View("Error")); } string[] PayConfigArr = FastPayWay.QueryArray.Split(','); if (PayConfigArr.Length != 3) { ViewBag.ErrorMsg = "支付通道配置异常!"; return(View("Error")); } string MerId = PayConfigArr[0]; string MerKey = PayConfigArr[1]; string MD5Str = SignStr + MerKey; string sign = MD5Str.GetMD5(); //================================================ //这里记录日志 PayLog PayLog = new PayLog(); PayLog.PId = (int)FastOrder.PayWay; PayLog.OId = FastOrder.TNum; PayLog.TId = FastOrder.Trade; PayLog.Amount = decimal.Parse(txnamt) / 100; PayLog.Way = "POST"; PayLog.AddTime = DateTime.Now; PayLog.Data = Request.Form.ToString(); PayLog.State = 1; Entity.PayLog.AddObject(PayLog); Entity.SaveChanges(); //================================================ if (Sign != sign) { ViewBag.ErrorMsg = "签名错误!"; return(View("Error")); } if (MerId != merid) { ViewBag.ErrorMsg = "商户号不一置!"; return(View("Error")); } if (resultcode != "0000" && resultcode != "1002") { ViewBag.ErrorMsg = "支付失败![" + resultcode + "]" + resultmsg; return(View("Error")); } int factmoney = int.Parse(txnamt); if (((int)(FastOrder.Amoney * 100)) != factmoney) { ViewBag.ErrorMsg = "支付金额与交易金额不符!"; return(View("Error")); } FastOrder.Trade = queryid; Entity.SaveChanges(); FastOrder = FastOrder.PaySuccess(Entity); ViewBag.FastOrder = FastOrder; return(View("FastSuccess")); }
public ActionResult Save(FastPayWay FastPayWay, string[] queryArray, int STimeHH, int STimemm, int ETimeHH, int ETimemm) { FastPayWay.Cost = FastPayWay.Cost / 1000; FastPayWay.Cost2 = FastPayWay.Cost2 / 1000; FastPayWay.Cost3 = FastPayWay.Cost3 / 1000; FastPayWay.BankCost = FastPayWay.BankCost / 1000; FastPayWay.BankCost2 = FastPayWay.BankCost2 / 1000; FastPayWay.BankCost3 = FastPayWay.BankCost3 / 1000; FastPayWay.InCost = FastPayWay.InCost / 1000; FastPayWay.InCost2 = FastPayWay.InCost2 / 1000; FastPayWay.InCost3 = FastPayWay.InCost3 / 1000; if (FastPayWay.Cost < 0 || FastPayWay.BankCost < 0 || FastPayWay.Cost >= 1) { ViewBag.ErrorMsg = "费率设置有误"; return(View("Error")); } FastPayWay baseFastPayWay = Entity.FastPayWay.FirstOrDefault(n => n.Id == FastPayWay.Id); if (baseFastPayWay != null)//修改直通车通道 { //如果是微信支付配置的子商户号没有填写的话,去掉这个元素 if (baseFastPayWay.DllName == "WeiXin") { if (queryArray[4].IsNullOrEmpty()) { var temp = new ArrayList(queryArray); temp.RemoveAt(4); queryArray = (string[])temp.ToArray(typeof(string)); } } if (queryArray != null) { baseFastPayWay.QueryArray = string.Join(",", queryArray); } baseFastPayWay = Request.ConvertRequestToModel <FastPayWay>(baseFastPayWay, FastPayWay); baseFastPayWay.HasAliPay = FastPayWay.HasAliPay; baseFastPayWay.HasBank = FastPayWay.HasBank; baseFastPayWay.HasWeiXin = FastPayWay.HasWeiXin; DateTime STime = DateTime.Parse("1990-01-01 " + STimeHH + ":" + STimemm + ":00"); DateTime ETime = DateTime.Parse("1990-01-01 " + ETimeHH + ":" + ETimemm + ":" + (ETimeHH == 23 && ETimemm == 59 ? "59" : "00")); baseFastPayWay.STime = STime; baseFastPayWay.ETime = ETime; } else//添加直通车通道 { FastPayWay.Title = "测试名称"; FastPayWay.DllName = "HFJSPay"; FastPayWay.AddTime = DateTime.Now; FastPayWay.GroupType = "D0"; FastPayWay.Version = "V1.0.0"; FastPayWay.CanOpenBank = 1; DateTime STime = DateTime.Parse("1990-01-01 " + STimeHH + ":" + STimemm + ":00"); DateTime ETime = DateTime.Parse("1990-01-01 " + ETimeHH + ":" + ETimemm + ":" + (ETimeHH == 23 && ETimemm == 59 ? "59" : "00")); FastPayWay.STime = STime; FastPayWay.ETime = ETime; Entity.FastPayWay.AddObject(FastPayWay); } Entity.SaveChanges(); APIExtensions.ClearCacheAll(); ViewBag.Msg = "操作成功"; return(View("Succeed")); }
public void Post() { string Data = DataObj.GetData(); if (Data.IsNullOrEmpty()) { DataObj.OutError("1000"); return; } JObject json = new JObject(); try { json = (JObject)JsonConvert.DeserializeObject(Data); } catch (Exception Ex) { Log.Write("[FastOrderQueryController]:", "【Data】" + Data, Ex); json = null; } if (json == null) { DataObj.OutError("1000"); return; } FastOrder InFastOrder = new FastOrder(); InFastOrder = JsonToObject.ConvertJsonToModel(InFastOrder, json); if (InFastOrder.TNum.IsNullOrEmpty() || InFastOrder.Token.IsNullOrEmpty()) { DataObj.OutError("1000"); return; } Users baseUsers = Entity.Users.FirstOrDefault(n => n.Token == InFastOrder.Token); if (baseUsers == null)//用户令牌不存在 { DataObj.OutError("2004"); return; } if (baseUsers.State != 1)//用户被锁定 { DataObj.OutError("2003"); return; } if (baseUsers.CardStae != 2)//未实名认证 { DataObj.OutError("2006"); return; } FastOrder FastOrder = Entity.FastOrder.FirstOrDefault(n => n.TNum == InFastOrder.TNum && n.UId == baseUsers.Id); if (FastOrder == null) { DataObj.OutError("1000"); return; } if (FastOrder.State == 1 && FastOrder.PayState == 0) { FastPayWay FastPayWay = Entity.FastPayWay.FirstOrNew(n => n.Id == FastOrder.PayWay); if (FastPayWay == null) { DataObj.OutError("2079"); return; } string[] PayConfigArr = FastPayWay.QueryArray.Split(new char[] { ',' });//接口信息 if (FastPayWay.DllName == "HFPay") { #region 结算中心 if (PayConfigArr.Length == 3) { string HF_Url = "https://api.zhifujiekou.com/api/query"; string MerId = PayConfigArr[0]; string MerKey = PayConfigArr[1]; string orderId = FastOrder.TNum;//商户流水号 string PostJson = "{\"merid\":\"" + MerId + "\",\"orderid\":\"" + orderId + "\"}"; string DataBase64 = LokFuEncode.Base64Encode(PostJson, "utf-8"); string Sign = (DataBase64 + MerKey).GetMD5(); DataBase64 = HttpUtility.UrlEncode(DataBase64); string PostData = string.Format("req={0}&sign={1}", DataBase64, Sign); string Ret = Utils.PostRequest(HF_Url, PostData, "utf-8"); JObject JS = new JObject(); try { JS = (JObject)JsonConvert.DeserializeObject(Ret); } catch (Exception) { JS = null; } if (JS != null) { if (JS["resp"] != null) { string resp = JS["resp"].ToString(); Ret = LokFuEncode.Base64Decode(resp, "utf-8"); try { JS = (JObject)JsonConvert.DeserializeObject(Ret); } catch (Exception) { JS = null; } if (JS != null) { string respcode = JS["respcode"].ToString(); if (respcode == "00") { string resultcode = JS["resultcode"].ToString(); if (resultcode == "0000" || resultcode == "1002" || resultcode == "1004") { string queryid = JS["queryid"].ToString(); FastOrder.Trade = queryid; Entity.SaveChanges(); string txnamt = JS["txnamt"].ToString(); int factmoney = int.Parse(txnamt); if (((int)(FastOrder.Amoney * 100)) == factmoney) { FastOrder = FastOrder.PaySuccess(Entity); } } } //================================================ //这里记录日志 PayLog PayLog = new PayLog(); PayLog.PId = (int)FastOrder.PayWay; PayLog.OId = FastOrder.TNum; PayLog.TId = FastOrder.Trade; PayLog.Amount = FastOrder.Amoney; PayLog.Way = "Query"; PayLog.AddTime = DateTime.Now; PayLog.Data = Ret; PayLog.State = 1; Entity.PayLog.AddObject(PayLog); Entity.SaveChanges(); //================================================ } } } } #endregion } if (FastPayWay.DllName == "HFJSPay") { #region 结算中心 if (PayConfigArr.Length == 3) { FastUserPay FastUserPay = Entity.FastUserPay.FirstOrDefault(n => n.PayWay == FastOrder.PayWay && n.UId == baseUsers.Id && n.MerState == 1); fastordersqueryModel fastordersqueryModel = new fastordersqueryModel() { merid = FastUserPay.MerId, orderid = "", queryid = FastOrder.TNum }; fastordersqueryResult fastordersqueryResult = HFJSTools.fastordersquery(fastordersqueryModel, FastUserPay.MerKey); //================================================ //记录通知信息 PayLog PayLog = new PayLog(); PayLog.PId = FastOrder.PayWay.Value; PayLog.OId = FastOrder.TNum; PayLog.TId = fastordersqueryResult.queryid; PayLog.Amount = FastOrder.Amoney; PayLog.Way = "Query"; PayLog.AddTime = DateTime.Now; PayLog.Data = HFJSTools.MyObjectToJson(fastordersqueryResult); PayLog.State = 1; Entity.PayLog.AddObject(PayLog); Entity.SaveChanges(); //================================================ if (fastordersqueryResult.respcode == "00") { if (fastordersqueryResult.resultcode == "0000" || fastordersqueryResult.resultcode == "1002") { FastOrder.Trade = fastordersqueryResult.queryid; Entity.SaveChanges(); FastOrder = FastOrder.PaySuccess(Entity); if (FastOrder.PayState == 1) { if (fastordersqueryResult.resultcode == "0000") { FastOrder.UserState = 1; } if (fastordersqueryResult.resultcode == "1002") { FastOrder.UserState = 3; } FastOrder.UserTime = DateTime.Now; Entity.SaveChanges(); } } else if (fastordersqueryResult.resultcode == "1004") { FastOrder.State = 0; Entity.SaveChanges(); } else { } Entity.SaveChanges(); } else { string resp_desc = fastordersqueryResult.respmsg; Utils.WriteLog("HFJS[Query][" + FastOrder.TNum + "]:" + resp_desc, "JobHFJS"); } } #endregion } } if (FastOrder.State == 1) { if (FastOrder.PayState == 1) { if (FastOrder.UserState == 1) { FastOrder.State = 3; } else { FastOrder.State = 2; } } else { FastOrder.State = 1; } } else { FastOrder.State = 0; } FastOrder.Cols = "TNum,PayId,Amoney,Poundage,State"; DataObj.Data = FastOrder.OutJson(); DataObj.Code = "0000"; DataObj.OutString(); }