protected void btn_Click(object sender, EventArgs e) { string ip = common.GetIP.getIPAddress(); if (isRightUser(tbuser.Text.ToString(), tbpwd.Text.ToString())) { UserTrack userinfo = new UserTrack(tbuser.Text.ToString(), tbpwd.Text.ToString(), ip.ToString(), "", 0); Context.Session["userInfo"] = userinfo; Log log = new Log(); log.InsertUserTrack(0); Response.Write("<script>alert('登陆成功! IP:" + userinfo.Ip.ToString() + "');window.location='Default.aspx'</script>"); } else if (isAdmin(tbuser.Text.ToString(), tbpwd.Text.ToString())) { UserTrack userinfo = new UserTrack(tbuser.Text.ToString(), tbpwd.Text.ToString(), ip.ToString(), "", 0); Context.Session["userInfo"] = userinfo; Log log = new Log(); log.InsertUserTrack(0); Response.Write("<script>alert('欢迎管理员!');window.location='/admin/Default.aspx'</script>"); } else { Response.Write("<script>alert('登陆失败,请重新登陆');window.location='/Login.aspx'</script>"); } Response.End(); }
public async Task <UserTrack> Update(UserTrack userTrack) { var result = dataContext.UserTracks.Update(userTrack); await dataContext.SaveChangesAsync(); return(result.Entity); }
public void InsertUserTrack(int operation) { SqlParameter[] para = new SqlParameter[] { }; string kw = Session["kword"] as string; UserTrack userinfo = (UserTrack)Session["userInfo"]; string sql = string.Format("INSERT INTO News_UserTracks(UserName ,IPAdress,LoginTime,Keyword ,Operation) VALUES ('{0}', '{1}', '{2}', '{3}',{4})", userinfo.Username.ToString(), userinfo.Ip.ToString(), DateTime.Now.ToString("G"), kw, operation); int i = DBHelper.UpDeInstu(sql, para, System.Data.CommandType.Text); DBHelper.close(); }
public UserTrack TryParse(byte[] buffers, out int index) { index = 0; try { if (buffers == null) { return(null); } index = 0; if (buffers.Length < 20) { return(null); } byte[] imsiBytes = ByteUtil.InterceptByteArray(buffers, index, 20); index += 20; long imsi = BitConverter.ToInt64(imsiBytes, 0); byte devByte = buffers[index++]; int dev = Convert.ToInt16(devByte); byte portByte = buffers[index++]; int port = Convert.ToInt16(portByte); byte[] arfcnBytes = ByteUtil.InterceptByteArray(buffers, index, 2); index += 2; short arfcn = BitConverter.ToInt16(arfcnBytes, 0); byte chanNumByte = buffers[index++]; int chanNum = Convert.ToInt16(chanNumByte); byte[] crcBytes = ByteUtil.InterceptByteArray(buffers, index, 2); short crc = BitConverter.ToInt16(crcBytes, 0); var userId = new UserId { IMSI = imsi, Device = dev, Port = port, ARFCN = arfcn, ChanNum = chanNum }; var userTrack = new UserTrack { UserId = userId, CRC = crc, }; return(userTrack); } catch (Exception ex) { Log.Error("userTraced parse error", ex); return(null); } }
public ActionResult GPS(UserTrack UserTrack) { if (UserTrack.Id != 0) { UserTrack = Entity.UserTrack.FirstOrDefault(n => n.Id == UserTrack.Id); } if (UserTrack == null) { ViewBag.ErrorMsg = "数据不存在"; return(View("Error")); } ViewBag.UserTrack = UserTrack; return(View()); }
public ResultViewModel <FinishedCourseEditViewModel> FinishCourse(int CourseID, int TrackID) { ResultViewModel <FinishedCourseEditViewModel> result = new ResultViewModel <FinishedCourseEditViewModel>(); try { string Token = Request.Headers.Authorization? .Parameter; Dictionary <string, string> cliams = SecurityHelper.Validate(Token); int UserID = int.Parse(cliams.First(i => i.Key == "ID").Value); UserTrack T = userTrackService.Get(UserID, TrackID); if (T != null) { int UserTrackID = T.ID; //Check If User Finshed Previous Courses var FinedCourses = finishedCourseService.Get(i => i.UserTrackID == UserTrackID).Select(i => i.course).ToList(); //html var TrackCourses = T.Track.Courses.Select(i => i.Course).ToList(); //html css js var lastFinshedCourse = FinedCourses.LastOrDefault(); //html var Course = courseService.GetByID(CourseID); //js if (TrackCourses.IndexOf(Course) == TrackCourses.IndexOf(lastFinshedCourse) + 1) { FinishedCourseEditViewModel F = finishedCourseService.Add(new FinishedCourseEditViewModel() { ID = 0, CourseID = CourseID, TrackID = TrackID, UserID = UserID, UserTrackID = UserTrackID }); result.Data = F; result.Successed = true; } else { result.Successed = false; result.Message = "User Not Finshed Prequest Courses"; } } } catch (Exception e) { result.Successed = false; result.Message = "Error"; } return(result); }
public void CountItem_UserTrackFromRepository_AreNotEqual() { var stubUserTrackForTest = new UserTrack() { UserId = 4, Task = new EF.DAL.Data.Task(), TaskId = 3, TaskName = "FooTaskName", TaskTrack = new TaskTrack(), TaskTrackId = 5, TrackDate = new DateTime().Date, TrackNote = "FooSomeNote" }; stubUserTrackRepository.Create(stubUserTrackForTest); Assert.AreNotEqual(2, stubUserTrackRepository.GetAll().Count()); }
public void Create_UserTrackFromRepository_IsNotNull() { var result = new UserTrack() { UserId = 3, Task = new EF.DAL.Data.Task(), TaskId = 1, TaskName = "Foo", TaskTrack = new TaskTrack(), TaskTrackId = 1, TrackDate = new DateTime(), TrackNote = "SomeNote" }; stubUserTrackRepository.Create(result); Assert.IsNotNull(stubUserTrackRepository.Get(3)); }
public async Task <bool> AddTrack(string userId, int trackId) { var userTrack = userTrackRepository.GetAll() .FirstOrDefault(t => t.UserId == userId && t.TrackId == trackId); if (userTrack == null) { userTrack = new UserTrack { UserId = userId, TrackId = trackId }; await userTrackRepository.Create(userTrack); return(true); } return(false); }
public ActionResult Index(UserTrack UserTrack, EFPagingInfo <UserTrack> p) { if (UserTrack.UId.IsNullOrEmpty()) { UserTrack.UId = 0; } p.SqlWhere.Add(f => f.UId == UserTrack.UId); p.OrderByList.Add("Id", "DESC"); IPageOfItems <UserTrack> UserTrackList = Entity.Selects <UserTrack>(p); ViewBag.UserTrackList = UserTrackList; Users Users = Entity.Users.FirstOrDefault(n => n.Id == UserTrack.UId); if (Users == null) { ViewBag.ErrorMsg = "数据不存在"; return(View("Error")); } ViewBag.Users = Users; return(View()); }
// POST: Users/Create // To protect from overposting attacks, enable the specific properties you want to bind to, for // more details, see http://go.microsoft.com/fwlink/?LinkId=317598. public async Task <IActionResult> Build() { var spotify = await _spotifyClientBuilder.CreateClient(); if (spotify == null) { return(RedirectToAction("Index", "Home")); } PrivateUser me = await spotify.UserProfile.Current(); _user.UserId = me.Id; _user.UserName = me.DisplayName; if (me.Images.Any()) { _user.UserProfilePicture = me.Images[0].Url; } else { _user.UserProfilePicture = ""; } var user = await _context.Users .FirstOrDefaultAsync(m => m.UserId == me.Id); var userNum = _context.Users.Count() + 1; _user.UserCode = GenerateUserCode(me.Id) + userNum.ToString(); if (user == null) { PersonalizationTopRequest request = new PersonalizationTopRequest(); request.Limit = 50; var tracks = await spotify.Personalization.GetTopTracks(request); List <FullTrack> .Enumerator tracksEnumerator = tracks.Items.GetEnumerator(); var trackNumbers = tracks.Items.Count; for (int i = 0; i < trackNumbers; i++) { tracksEnumerator.MoveNext(); if (tracksEnumerator.Current != null) { //creating a new track and userTracks to map tracks and users Track newTrack = new Track(); UserTrack userTracks = new UserTrack(); //initializing tracks one bu one newTrack.TrackId = tracksEnumerator.Current.Id; newTrack.TrackName = tracksEnumerator.Current.Name; if (tracksEnumerator.Current.Album.Images.Any()) { newTrack.TrackAlbumPicture = tracksEnumerator.Current.Album.Images[0].Url; } else { newTrack.TrackAlbumPicture = ""; } newTrack.TrackAlbumPicture = tracksEnumerator.Current.Album.Images[0].Url; //adding track and user to UserTracks model initializing userTracks userTracks.Track = newTrack; userTracks.User = _user; //adding userTracks to User model _user.UsersTracks.Add(userTracks); //adding userTracks to Track model newTrack.UsersTracks.Add(userTracks); //check if artist exists in db var trackExists = _context.Tracks.Count(a => a.TrackId == newTrack.TrackId); if (trackExists == 0) { await _context.Tracks.AddAsync(newTrack); } else { _context.Tracks.Update(newTrack); } } } //now put top artist to database var artists = await spotify.Personalization.GetTopArtists(request); List <FullArtist> .Enumerator artistsEnumerator = artists.Items.GetEnumerator(); var artistCount = artists.Items.Count; for (int i = 0; i < artistCount; i++) { artistsEnumerator.MoveNext(); if (artistsEnumerator.Current != null) { //creating a new track and userTracks to map tracks and users Artist newArtist = new Artist(); UserArtist userArtist = new UserArtist(); //initializing tracks one bu one newArtist.ArtistId = artistsEnumerator.Current.Id; newArtist.ArtistName = artistsEnumerator.Current.Name; if (artistsEnumerator.Current.Images.Any()) { newArtist.ArtistPicture = artistsEnumerator.Current.Images[0].Url; } else { newArtist.ArtistPicture = ""; } //adding track and user to UserTracks model initializing userTracks userArtist.Artist = newArtist; userArtist.User = _user; //adding userTracks to User model _user.UsersArtists.Add(userArtist); //adding userTracks to Track model newArtist.UsersArtists.Add(userArtist); //check if artist exists in db var artistExists = _context.Artists.Count(a => a.ArtistId == newArtist.ArtistId); if (artistExists == 0) { await _context.Artists.AddAsync(newArtist); } else { _context.Artists.Update(newArtist); } } } await _context.Users.AddAsync(_user); await _context.SaveChangesAsync(); return(RedirectToAction(actionName: "Home", "Users", new { id = _user.UserId })); } return(RedirectToAction(actionName: "Home", "Users", new { id = _user.UserId })); }
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 void AddUserTrack(UserTrack usertrack) { UserTrackQueue.Add(usertrack); }
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("[OrderPayConfig]:", "【Data】" + Data, Ex); } if (json == null) { DataObj.OutError("1000"); return; } VIPOrder VIPOrder = new VIPOrder(); VIPOrder = JsonToObject.ConvertJsonToModel(VIPOrder, json); UserTrack UserTrack = new UserTrack(); UserTrack = JsonToObject.ConvertJsonToModel(UserTrack, json); if (VIPOrder.X.IsNullOrEmpty() || VIPOrder.Y.IsNullOrEmpty()) { DataObj.OutError("1000"); return; } //获取用户信息 Users baseUsers = Entity.Users.FirstOrDefault(n => n.Token == VIPOrder.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; } //获取分支机构信息 SysAgent SysAgent = new SysAgent(); if (!baseUsers.Agent.IsNullOrEmpty()) { SysAgent = Entity.SysAgent.FirstOrNew(n => n.Id == baseUsers.Agent); } VIPOrder.UId = baseUsers.Id; //VIPOrder.Agent = baseUsers.Agent; //PayConfigOrder.AId = baseUsers.AId; SysMoneySet SysMoneySet = Entity.SysMoneySet.FirstOrNew(); VIPOrder.Amoney = SysMoneySet.VipPrice; VIPOrder.VName = "升级VIP"; VIPOrder.State = 1; VIPOrder.PayState = 0; VIPOrder.AddTime = DateTime.Now; //这里是利润计算========== //利润舍位 VIPOrder.SplitMoney = 0; VIPOrder.SplitState = 0; VIPOrder.Poundage = 0; VIPOrder.HFGet = 0; VIPOrder.PayWay = 15; VIPOrder.Days = 99999999; VIPOrder.UserState = 0; VIPOrder.Agent = baseUsers.Agent; VIPOrder.SameGet = 0; //写入订单总表 Orders Orders = new Orders(); Orders.UId = VIPOrder.UId; Orders.TName = "VIP升级"; Orders.PayType = 0; Orders.PayName = "升级VIP"; Orders.RUId = 0; Orders.RName = string.Empty; Orders.TType = 6; Orders.TState = 1; Orders.Amoney = VIPOrder.Amoney; Orders.Poundage = VIPOrder.Poundage; Orders.AddTime = DateTime.Now; Orders.PayState = 0; Orders.PayWay = 15; Orders.Agent = baseUsers.Agent; Orders.AgentState = 0; Orders.AId = baseUsers.AId; Orders.FId = 0; string OrderAddress = VIPOrder.OrderAddress; if (OrderAddress.IsNullOrEmpty()) { OrderAddress = Utils.GetAddressByGPS(VIPOrder.X, VIPOrder.Y); } Orders.OrderAddress = OrderAddress; Orders.X = VIPOrder.X; Orders.Y = VIPOrder.Y; Entity.Orders.AddObject(Orders); Entity.SaveChanges(); Entity.Refresh(RefreshMode.StoreWins, Orders); VIPOrder.TNum = Orders.TNum; Entity.VIPOrder.AddObject(VIPOrder); Entity.SaveChanges(); //======================================= UserTrack.ENo = DataObj.ENo; UserTrack.OPType = Orders.PayName; UserTrack.UserName = Orders.TNum; UserTrack.GPSAddress = Orders.OrderAddress; UserTrack.GPSX = Orders.X; UserTrack.GPSY = Orders.Y; Orders.SeavGPSLog(UserTrack, Entity); //======================================= Orders.SendMsg(Entity);//发送消息类 //======================================= Orders.Cols = "TNum,PayId,Amoney,PayState"; string TNum = Orders.TNum; string Sign = (TNum + "NewPay").GetMD5().Substring(8, 8); //Orders.PayId = PayPath + "/pay/" + TNum + ".html?sign=" + Sign; Orders.PayId = PayPath + "/mobile/orders/GoPay.html?sign=" + Sign + "&tnum=" + TNum; //======================================= #region 走结算中心 //获取最佳支付通道 //IList<PayConfig> PayConfigList = Entity.PayConfig.Where(n => n.State == 1).OrderBy(n => n.Cost).ToList(); //IList<SysControl> SysControlList = Entity.SysControl.OrderBy(n => n.Sort).ToList();//SysControl //IList<SysControl> SCList = new List<SysControl>(); //IList<PayConfig> PCList = new List<PayConfig>(); //foreach (var p in SysControlList) //{ // SysControl T = p.ChkState(); // if (T.State == 1) // { // SCList.Add(p); // } //} //foreach (var p in PayConfigList) //{ // SysControl T = SCList.FirstOrDefault(n => n.PayWay == p.Id); // if (T != null) // { // if (VIPOrder.Amoney >= (decimal)T.SNum && VIPOrder.Amoney <= (decimal)T.ENum) // { // PCList.Add(p); // } // } //} //IList<PayConfig> CashList = PCList.Where(n => n.GroupType == "Cash").OrderBy(n => n.Cost).ToList(); //IList<PayConfig> BankList = PCList.Where(n => n.GroupType == "Bank").OrderBy(n => n.Cost).ToList(); //IList<PayConfig> WxList = PCList.Where(n => n.GroupType == "WeiXin").OrderBy(n => n.Cost).ToList(); //IList<PayConfig> AliList = PCList.Where(n => n.GroupType == "AliPay").OrderBy(n => n.Cost).ToList(); //IList<PayConfig> List = new List<PayConfig>(); //if (CashList.Count > 0) //{ // PayConfig Cash = new PayConfig(); // Cash.GroupType = "Cash"; // Cash.Name = "余额支付"; // Cash.State = 1; // Cash.Cols = "Name,GroupType,State"; // List.Add(Cash); //} //if (BankList.Count > 0) //{ // PayConfig Bank = new PayConfig(); // Bank.GroupType = "Bank"; // Bank.Name = "银联支付"; // Bank.State = 1; // Bank.Cols = "Name,GroupType,State"; // List.Add(Bank); //} //if (WxList.Count > 0) //{ // PayConfig Wx = new PayConfig(); // Wx.GroupType = "WeiXin"; // Wx.Name = "微信支付"; // Wx.State = 0; // Wx.Cols = "Name,GroupType,State"; // List.Add(Wx); //} //if (AliList.Count > 0) //{ // PayConfig Ali = new PayConfig(); // Ali.GroupType = "AliPay"; // Ali.Name = "支付宝支付"; // Ali.State = 1; // Ali.Cols = "Name,GroupType,State"; // List.Add(Ali); //} //string PCString = List.EntityToJson(); //JArray PCJson = (JArray)JsonConvert.DeserializeObject(PCString); //Orders.PayConfig = PCJson; //Orders.Cols += ",PayConfig"; #endregion //Orders.paycon DataObj.Data = Orders.OutJson(); DataObj.Code = "0000"; DataObj.OutString(); }
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 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("[UsersGetPayPassSet]:", "【Data】" + Data, Ex); } if (json == null) { DataObj.OutError("1000"); return; } //JObject pp = (JObject)p; Users Users = new Users(); Users = JsonToObject.ConvertJsonToModel(Users, json); UserTrack UserTrack = new UserTrack(); UserTrack = JsonToObject.ConvertJsonToModel(UserTrack, json); string trueToken = string.Empty; if (!Users.PToken.IsNullOrEmpty()) { trueToken = Users.PToken; } else { if (!Users.Token.IsNullOrEmpty()) { trueToken = Users.Token; } else { DataObj.OutError("1000"); return; } } if (Users.UserName.IsNullOrEmpty() || Users.PassWord.IsNullOrEmpty()) { DataObj.OutError("1000"); return; } if (Users.X.IsNullOrEmpty() || Users.Y.IsNullOrEmpty()) { DataObj.OutError("1000"); return; } ////手机号码黑名单验证 //if (Entity.UserBlackList.FirstOrDefault(UBL => UBL.CardNumber == Users.UserName && UBL.State == 1) != null) //{ // //提示暂不支持您手机号入网 // DataObj.OutError("2026"); // return; //} if (trueToken.Substring(0, 4) != "pppp") { DataObj.OutError("9999"); return; } Users BaseUsers = Entity.Users.Where(n => n.Token == trueToken && n.UserName == Users.UserName).FirstOrDefault(); if (BaseUsers == null)//令牌错误 { DataObj.OutError("2014"); 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; } BaseUsers.PayLock = 0; //解除锁定 BaseUsers.PayErr = 0; //解除锁定 BaseUsers.PayPwd = Users.PassWord.GetPayMD5(); Entity.SaveChanges(); //======================================= UserTrack.ENo = DataObj.ENo; UserTrack.OPType = "重设支付密码"; UserTrack.GPSAddress = Users.RegAddress; UserTrack.GPSX = Users.X; UserTrack.GPSY = Users.Y; BaseUsers.SeavGPSLog(UserTrack, Entity); //======================================= DataObj.Data = ""; DataObj.Code = "0000"; DataObj.OutString(); }
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("[CreditCardAdd]:", "【Data】" + Data, Ex); } 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); if (UserTrack.X.IsNullOrEmpty() || UserTrack.Y.IsNullOrEmpty()) { DataObj.OutError("1000"); return; } #region 基础验证 //获取用户信息 string Token = UserCard.Token; Users baseUsers = Entity.Users.FirstOrDefault(n => n.Token == Token); if (baseUsers == null)//用户令牌不存在 { DataObj.OutError("2004"); return; } if (baseUsers.State != 1)//用户被锁定 { DataObj.OutError("2003"); return; } if (baseUsers.CardStae != 2)//未实名认证 { DataObj.OutError("2006"); return; } string cardbin = UserCard.Card.Substring(0, 6); BasicCardBin BasicCardBin = this.Entity.BasicCardBin.Where(o => o.BIN == cardbin).FirstOrDefault(); if (BasicCardBin != null) { if (BasicCardBin.CardType != 2) { DataObj.Msg = "请使用信用卡绑定"; DataObj.OutError("1000"); return; } } else { DataObj.OutError("1103"); return; } #endregion //======================================= UserTrack.ENo = DataObj.ENo; UserTrack.OPType = "信用卡验证码"; UserTrack.GPSAddress = UserTrack.GPSAddress; UserTrack.GPSX = UserTrack.X; UserTrack.GPSY = UserTrack.Y; baseUsers.SeavGPSLog(UserTrack, Entity); //======================================= JobPayWay JobPayWay = Entity.JobPayWay.Where(n => n.State == 1 && n.GroupType == "Pay").OrderBy(n => n.Sort).FirstOrDefault();//目前只支持一条 if (JobPayWay == null) { DataObj.Msg = "暂无可用通道"; DataObj.OutError("1000"); return; } if (UserCard.ValidYear.Length == 4) { UserCard.ValidYear = UserCard.ValidYear.Substring(2, 2); } #region 第三方接口 string[] JobPayWayArr = JobPayWay.QueryArray.Split(','); bool Result = false; string RetMsg = ""; if (JobPayWay.DllName == "HLBPay" && JobPayWayArr.Length == 2) { #region 合利宝 string MerId = JobPayWayArr[0]; string MerKey = JobPayWayArr[1]; string postUrl = "http://pay.trx.helipay.com/trx/quickPayApi/interface.action"; string orderId = Guid.NewGuid().ToString("N"); Dictionary <string, string> map = new Dictionary <string, string>(); map.Add("P1_bizType", "QuickPayBindCardValidateCode"); map.Add("P2_customerNumber", MerId); map.Add("P3_userId", "HF_" + baseUsers.Id.ToString()); map.Add("P4_orderId", orderId); map.Add("P5_timestamp", DateTime.Now.ToString("yyyyMMddHHmmss")); map.Add("P6_cardNo", UserCard.Card); map.Add("P7_phone", UserCard.Mobile); //签名串,把参数值拼接 string data = Utils.CreateLinkString(map, false); //MD5签名KEY string sign = ("&" + data + "&" + MerKey).GetMD5(); map.Add("sign", sign); string send_data = Utils.CreateLinkString(map); string RetString = Utils.PostRequest(postUrl, send_data, "utf-8"); //================================================ //这里记录日志 JobLog JobLog = new JobLog(); JobLog.PayWay = JobPayWay.Id; JobLog.ReqNo = orderId; JobLog.TNum = ""; JobLog.Trade = ""; JobLog.Amount = 0; JobLog.Way = "SendCode"; JobLog.AddTime = DateTime.Now; JobLog.Data = RetString; JobLog.State = 1; Entity.JobLog.AddObject(JobLog); Entity.SaveChanges(); //================================================ JObject obj = new JObject(); try { obj = (JObject)JsonConvert.DeserializeObject(RetString); } catch (Exception) { Utils.WriteLog("[CreditCardAddCode]:" + RetString, "HLBPayError"); DataObj.OutError("1000"); return; } string rt2_retCode = obj["rt2_retCode"].ToString(); string rt3_retMsg = obj["rt3_retMsg"].ToString(); if (rt2_retCode == "0000") { Result = true; } else { Result = false; RetMsg = rt3_retMsg; Utils.WriteLog("[CreditCardAddCode]:" + RetString + "【" + send_data + "】", "HLBPayError"); } #endregion } else if (JobPayWay.DllName == "GHTPay" && JobPayWayArr.Length == 3) { #region //检测是否已开通商户 DateTime Today = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd")); SysSet SysSet = Entity.SysSet.FirstOrNew(); //统计今天已经发送注册验证码次数 int Times = Entity.SMSCode.Count(n => n.UId == baseUsers.Id && n.Mobile == UserCard.Mobile && n.CType == 31 && n.AddTime >= Today); if (Times >= SysSet.SMSTimes) { DataObj.Msg = "获取验证码超过" + SysSet.SMSTimes + "次,请明天再试。"; DataObj.OutError("1000"); return; } if (Times > 0) { //第一次发送不获取,以节少系统资源 SMSCode SMSCode = Entity.SMSCode.Where(n => n.UId == baseUsers.Id && n.Mobile == UserCard.Mobile && n.CType == 31 && n.AddTime >= Today).OrderByDescending(n => n.Id).FirstOrDefault(); if (SMSCode.AddTime.AddMinutes(1) >= DateTime.Now) { //最后一次发送到现在不足1分钟 DataObj.Msg = "您操作太快了。"; DataObj.OutError("1000");; return; } } //失效之前获取验证码 IList <SMSCode> List = Entity.SMSCode.Where(n => n.UId == baseUsers.Id && n.Mobile == UserCard.Mobile && n.CType == 31 && n.State == 1).ToList(); foreach (var p in List) { p.State = 0; } Entity.SaveChanges(); //生成验证码 string Code = Utils.RandomSMSCode(4); SMSCode SSC = new SMSCode(); SSC.CType = 31; SSC.UId = baseUsers.Id; SSC.Mobile = UserCard.Mobile; SSC.Code = Code; SSC.AddTime = DateTime.Now; SSC.State = 1; Entity.SMSCode.AddObject(SSC); Entity.SaveChanges(); string Info = "您正在授权尾号{2}开通授权交易,验证码为{0},为了保护您的账户安全,验证码请勿转发他人,有效时间{1}分钟。"; Info = string.Format(Info, Code, SysSet.SMSActives, UserCard.Card.Substring(UserCard.Card.Length - 4, 4)); Info += "【好支付】"; SMSLog SMSLog = new SMSLog(); SMSLog.UId = baseUsers.Id; SMSLog.Mobile = UserCard.Mobile; SMSLog.SendText = Info; SMSLog.State = 1; SMSLog.AddTime = DateTime.Now; Entity.SMSLog.AddObject(SMSLog); Entity.SaveChanges(); Result = true; #endregion } else if (JobPayWay.DllName == "HFJSPay" && JobPayWayArr.Length == 3) { #region 结算系统 string Code = JobPayWayArr[0]; string CodeKey = JobPayWayArr[1]; string PayWayCode = JobPayWayArr[2]; #region 进件 JobUserPay JobUserPay = Entity.JobUserPay.FirstOrDefault(n => n.UId == baseUsers.Id && n.PayWay == JobPayWay.Id); if (JobUserPay == null) { JobUserPay = new JobUserPay(); JobUserPay.UId = baseUsers.Id; JobUserPay.PayWay = JobPayWay.Id; JobUserPay.AddTime = DateTime.Now; JobUserPay.MerState = 2; //状态 0锁定 1正常 2待提交 3审核中 4审核失败 JobUserPay.CardState = 2; //状态 0锁定 1正常 2待提交 3审核中 4审核失败 JobUserPay.BusiState = 2; //状态 1正常 2待提交 3审核中 4审核失败 Entity.JobUserPay.AddObject(JobUserPay); Entity.SaveChanges(); } if (JobUserPay.MerState == 2 || JobUserPay.MerState == 4) { fastuseraddModel model = new fastuseraddModel() { code = Code, mchid = "HF" + baseUsers.Id.ToString(), mchname = baseUsers.NeekName, truename = baseUsers.TrueName, cardno = baseUsers.CardId, accountcard = UserCard.Card, accountbin = BasicCardBin.BankCode, accountmobile = UserCard.Mobile }; fastuserResult fastuserResult = HFJSTools.fastuseradd(model, CodeKey); if (fastuserResult.respcode == "00") { if (fastuserResult.state == 1) { JobUserPay.MerState = 1; JobUserPay.CardState = 1;//这里已绑定结算卡 JobUserPay.MerId = fastuserResult.merid; JobUserPay.MerKey = fastuserResult.merkey; } else if (fastuserResult.state == 2) { JobUserPay.MerId = fastuserResult.merid; JobUserPay.MerKey = fastuserResult.merkey; JobUserPay.MerState = 3; } else { JobUserPay.MerState = 4; } } else { JobUserPay.MerState = 4; JobUserPay.MerMsg = fastuserResult.respcode + "[" + fastuserResult.respmsg + "]"; } Entity.SaveChanges(); } #endregion #region 开通道 if (JobUserPay.MerState == 1 && (JobUserPay.BusiState == 2 || JobUserPay.BusiState == 4)) { JobSet JobSet = Entity.JobSet.FirstOrNew(); //获取配置 decimal Cost = JobSet.Cost; //刷卡手续费 decimal Cash = JobSet.Cash; //还款手续费 userspayopenbModel userspayopenbModel = new userspayopenbModel() { merid = JobUserPay.MerId, paywaycode = PayWayCode, code = Code, bankcost = Cost, surcharge = Cash, cash = 0, bankcostmin = 1.2M, bankcostmax = 9999999 }; fastuserResult fastuserResult = HFJSTools.userspayopen(userspayopenbModel, CodeKey); if (fastuserResult.respcode == "00") { if (fastuserResult.state == 1) { JobUserPay.BusiState = 1; } else { JobUserPay.BusiState = 4; } } else { JobUserPay.BusiMsg = fastuserResult.respcode + "[" + fastuserResult.respmsg + "]"; } Entity.SaveChanges(); } #endregion #region 绑卡 if (JobUserPay.MerState == 1 && JobUserPay.CardState == 1 && JobUserPay.BusiState == 1) { fastcardbindModel fastcardbindModel = new fastcardbindModel() { action = "Add", merid = JobUserPay.MerId, bankcard = UserCard.Card, cvv2 = UserCard.CVV, mobile = UserCard.Mobile, month = UserCard.ValidMonth, year = UserCard.ValidYear }; ErrorCode errorCode = HFJSTools.fastcardbind(fastcardbindModel, JobUserPay.MerKey); if (errorCode.respcode == "00") { #region 发验证码 if (JobUserPay.MerState == 1 && JobUserPay.BusiState == 1 && JobUserPay.CardState == 1) { fastcardcodeModel fastcardcodeModel = new fastcardcodeModel() { bankcard = UserCard.Card, merid = JobUserPay.MerId, paywaycode = PayWayCode }; ErrorCode errorcode = HFJSTools.fastcardcode(fastcardcodeModel, JobUserPay.MerKey); if (errorcode.respcode == "00") { Result = true; } else { Result = false; RetMsg = errorcode.respmsg; } } else { Result = false; RetMsg = errorCode.respmsg; } #endregion } else { Result = false; RetMsg = errorCode.respmsg; } Entity.SaveChanges(); } else { Result = false; RetMsg = "商户入驻失败"; } #endregion #endregion } #endregion if (Result) { DataObj.OutError("0000"); } else { DataObj.Msg = RetMsg; DataObj.OutError("1010"); } }
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("[UsersPayPwdEdit]:", "【Data】" + Data, Ex); } if (json == null) { DataObj.OutError("1000"); return; } Users Users = new Users(); Users = JsonToObject.ConvertJsonToModel(Users, json); UserTrack UserTrack = new UserTrack(); UserTrack = JsonToObject.ConvertJsonToModel(UserTrack, json); if (Users.PassWord.IsNullOrEmpty() || Users.NewPWD.IsNullOrEmpty())//使用PassWord字段 { DataObj.OutError("1000"); return; } if (Users.X.IsNullOrEmpty() || Users.Y.IsNullOrEmpty()) { DataObj.OutError("1000"); return; } if (Users.PassWord.Length < 6 || Users.NewPWD.Length < 6)//6位及以上 { DataObj.OutError("1000"); return; } 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; } if (baseUsers.MiBao != 1) { //未设置支付密码 DataObj.OutError("2008"); return; } if (baseUsers.PayLock == 1)//密码错误太多次锁定 { DataObj.OutError("2050"); return; } //这里是执行指纹解锁 bool IfCheckOk = true; if (Users.PassWord.Substring(0, 3) == "HF_") { string PassWord = Users.PassWord; PassWord = PassWord.Replace("HF_", ""); string Token = baseUsers.Token; Token = Token + "GoodPay"; string Md5Token = Token.GetMD5().ToUpper(); string Pass = Md5Token.Substring(0, 4) + Md5Token.Substring(Md5Token.Length - 4, 4); if (Pass != PassWord) { IfCheckOk = false; } } else if (baseUsers.PayPwd != Users.PassWord.GetPayMD5()) { //原支付密码错误 IfCheckOk = false; } if (!IfCheckOk) { //付密码错误 SysSet SysSet = Entity.SysSet.FirstOrNew(); //系统统一修改标识SAME002 baseUsers.PayErr++; if (baseUsers.PayErr >= SysSet.PayLock) { baseUsers.PayLock = 1; } Entity.SaveChanges(); Users Out = new Users(); Out.PayErr = SysSet.PayLock - baseUsers.PayErr; Out.Cols = "PayErr"; DataObj.Data = Out.OutJson(); DataObj.Code = "2002"; if (Out.LoginErr == 0) { DataObj.Msg = "帐号或密码不正确,请明日再试或取回登录密码"; } else { DataObj.Msg = "帐号或密码不正确,您还可以尝试" + Out.LoginErr + "次"; } DataObj.OutString(); return; } baseUsers.PayErr = 0; baseUsers.PayPwd = Users.NewPWD.GetPayMD5(); Entity.SaveChanges(); //======================================= UserTrack.ENo = DataObj.ENo; UserTrack.OPType = "修改支付密码"; UserTrack.GPSAddress = Users.RegAddress; UserTrack.GPSX = Users.X; UserTrack.GPSY = Users.Y; baseUsers.SeavGPSLog(UserTrack, Entity); //======================================= DataObj.Data = ""; DataObj.Code = "0000"; DataObj.OutString(); }
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("[OrderPayConfig]:", "【Data】" + Data, Ex); } if (json == null) { DataObj.OutError("1000"); return; } PayConfigOrder PayConfigOrder = new PayConfigOrder(); PayConfigOrder = JsonToObject.ConvertJsonToModel(PayConfigOrder, json); UserTrack UserTrack = new UserTrack(); UserTrack = JsonToObject.ConvertJsonToModel(UserTrack, json); if (PayConfigOrder.PCCId.IsNullOrEmpty()) { DataObj.OutError("1000"); return; } if (PayConfigOrder.X.IsNullOrEmpty() || PayConfigOrder.Y.IsNullOrEmpty()) { DataObj.OutError("1000"); return; } //获取用户信息 Users baseUsers = Entity.Users.FirstOrDefault(n => n.Token == PayConfigOrder.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; } //获取分支机构信息 SysAgent SysAgent = new SysAgent(); if (!baseUsers.Agent.IsNullOrEmpty()) { SysAgent = Entity.SysAgent.FirstOrNew(n => n.Id == baseUsers.Agent); } //获取系统配置 //SysSet SysSet = Entity.SysSet.FirstOrDefault(); PayConfigChange PCC = Entity.PayConfigChange.FirstOrDefault(n => n.Id == PayConfigOrder.PCCId); if (PCC == null) { DataObj.OutError("1001"); return; } PayConfigOrder.UId = baseUsers.Id; PayConfigOrder.Agent = baseUsers.Agent; PayConfigOrder.AId = baseUsers.AId; PayConfigOrder.Amoney = PCC.BPrice.GetValueOrDefault(); PayConfigOrder.OrderState = 1; PayConfigOrder.PayState = 0; PayConfigOrder.AddTime = DateTime.Now; //这里是利润计算========== //分支机构提成=产品价格-代理商价格 decimal GetAll = PCC.BPrice.GetValueOrDefault() - PCC.CPrice.GetValueOrDefault(); //利润舍位 GetAll = GetAll.Floor(); //总利润 PayConfigOrder.AIdGet = (double)GetAll; //分支机构佣金设置为0,待分润计算后再写入 PayConfigOrder.AgentGet = 0; PayConfigOrder.AgentState = 0; //这里暂时写0,等后面支付再重新计算 PayConfigOrder.SysRate = 0; PayConfigOrder.Poundage = PayConfigOrder.Amoney * (decimal)PayConfigOrder.SysRate; //写入订单总表 Orders Orders = new Orders(); Orders.UId = PayConfigOrder.UId; Orders.TName = PCC.Title; Orders.PayType = 0; Orders.PayName = "升级费率"; Orders.RUId = 0; Orders.RName = string.Empty; Orders.TType = 6; Orders.TState = 1; Orders.Amoney = PayConfigOrder.Amoney; Orders.Poundage = PayConfigOrder.Poundage; Orders.AddTime = DateTime.Now; Orders.PayState = 0; Orders.PayWay = 0; Orders.Agent = PayConfigOrder.Agent; Orders.AgentState = 0; Orders.AId = PayConfigOrder.AId; Orders.FId = 0; string OrderAddress = PayConfigOrder.OrderAddress; if (OrderAddress.IsNullOrEmpty()) { OrderAddress = Utils.GetAddressByGPS(PayConfigOrder.X, PayConfigOrder.Y); } Orders.OrderAddress = OrderAddress; Orders.X = PayConfigOrder.X; Orders.Y = PayConfigOrder.Y; Entity.Orders.AddObject(Orders); Entity.SaveChanges(); Entity.Refresh(RefreshMode.StoreWins, Orders); PayConfigOrder.OId = Orders.TNum; Entity.PayConfigOrder.AddObject(PayConfigOrder); Entity.SaveChanges(); //======================================= UserTrack.ENo = DataObj.ENo; UserTrack.OPType = Orders.PayName; UserTrack.UserName = Orders.TNum; UserTrack.GPSAddress = Orders.OrderAddress; UserTrack.GPSX = Orders.X; UserTrack.GPSY = Orders.Y; Orders.SeavGPSLog(UserTrack, Entity); //======================================= Orders.SendMsg(Entity);//发送消息类 //======================================= Orders.Cols = "TNum,PayId,Amount,PayState"; string TNum = Orders.TNum; string Sign = (TNum + "NewPay").GetMD5().Substring(8, 8); Orders.PayId = PayPath + "/pay/" + TNum + ".html?sign=" + Sign; //======================================= //获取最佳支付通道 IList <PayConfig> PayConfigList = Entity.PayConfig.Where(n => n.State == 1).OrderBy(n => n.Cost).ToList(); IList <SysControl> SysControlList = Entity.SysControl.OrderBy(n => n.Sort).ToList();//SysControl IList <SysControl> SCList = new List <SysControl>(); IList <PayConfig> PCList = new List <PayConfig>(); foreach (var p in SysControlList) { SysControl T = p.ChkState(); if (T.State == 1) { SCList.Add(p); } } foreach (var p in PayConfigList) { SysControl T = SCList.FirstOrDefault(n => n.PayWay == p.Id); if (T != null) { if (PayConfigOrder.Amoney >= (decimal)T.SNum && PayConfigOrder.Amoney <= (decimal)T.ENum) { PCList.Add(p); } } } IList <PayConfig> CashList = PCList.Where(n => n.GroupType == "Cash").OrderBy(n => n.Cost).ToList(); IList <PayConfig> BankList = PCList.Where(n => n.GroupType == "Bank").OrderBy(n => n.Cost).ToList(); IList <PayConfig> WxList = PCList.Where(n => n.GroupType == "WeiXin").OrderBy(n => n.Cost).ToList(); IList <PayConfig> AliList = PCList.Where(n => n.GroupType == "AliPay").OrderBy(n => n.Cost).ToList(); IList <PayConfig> List = new List <PayConfig>(); if (CashList.Count > 0) { PayConfig Cash = new PayConfig(); Cash.GroupType = "Cash"; Cash.Name = "余额支付"; Cash.State = 1; Cash.Cols = "Name,GroupType,State"; List.Add(Cash); } if (BankList.Count > 0) { PayConfig Bank = new PayConfig(); Bank.GroupType = "Bank"; Bank.Name = "银联支付"; Bank.State = 1; Bank.Cols = "Name,GroupType,State"; List.Add(Bank); } //if (WxList.Count > 0) //{ // PayConfig Wx = new PayConfig(); // Wx.GroupType = "WeiXin"; // Wx.Name = "微信支付"; // Wx.State = 0; // Wx.Cols = "Name,GroupType,State"; // List.Add(Wx); //} if (AliList.Count > 0) { PayConfig Ali = new PayConfig(); Ali.GroupType = "AliPay"; Ali.Name = "支付宝支付"; Ali.State = 1; Ali.Cols = "Name,GroupType,State"; List.Add(Ali); } string PCString = List.EntityToJson(); JArray PCJson = (JArray)JsonConvert.DeserializeObject(PCString); Orders.PayConfig = PCJson; Orders.Cols += ",PayConfig"; //Orders.paycon DataObj.Data = Orders.OutJson(); DataObj.Code = "0000"; DataObj.OutString(); }
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("[OrderQC]:", "【Data】" + Data, Ex); json = null; } if (json == null) { DataObj.OutError("1000"); return; } OrderF2F OrderF2F = new OrderF2F(); OrderF2F = JsonToObject.ConvertJsonToModel(OrderF2F, json); UserTrack UserTrack = new UserTrack(); UserTrack = JsonToObject.ConvertJsonToModel(UserTrack, json); #region 获取并处理用户信息 Users baseUsers = Entity.Users.FirstOrDefault(n => n.Token == OrderF2F.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; } string NeekName = baseUsers.NeekName; if (NeekName.IsNullOrEmpty()) { NeekName = baseUsers.TrueName; } if (NeekName.IsNullOrEmpty()) { NeekName = "货款"; } #endregion #region 创建交易 if (OrderF2F.Action == "Create") { #region 处理选择通道 int PayWay = OrderF2F.PayWay; string Tag = ""; byte PayType = 1; string PayName = ""; string OpenId = ""; //微信JSAPI专用 if (OrderF2F.OType == 7) { //支付宝 Tag = "AliPay"; } if (OrderF2F.OType == 8) {//微信 Tag = "WeiXin"; } if (PayWay.IsNullOrEmpty()) { if (Tag == "AliPay") { PayWay = 5;//兼容老版本 } if (Tag == "WeiXin") { PayWay = 6;//兼容老版本 } } PayConfig PayConfig = Entity.PayConfig.FirstOrDefault(n => n.Id == PayWay && n.State == 1); //获取系统支付配置 if (PayConfig == null) { DataObj.OutError("1000"); return; } if (PayConfig.GroupType != Tag) { DataObj.OutError("1000"); return; } PayName = "扫码付-" + PayConfig.Name; byte ComeWay = 1; if (!OrderF2F.PayId.IsNullOrEmpty()) { if (OrderF2F.PayId == "shop") { ComeWay = 2; } PayName = "收银台-" + PayConfig.Name; if (OrderF2F.OType == 7) { if (OrderF2F.PayId == "shop") { OrderF2F.PayId = string.Empty; PayType = 2; } } if (OrderF2F.OType == 8) { OpenId = OrderF2F.PayId; OrderF2F.PayId = string.Empty; PayType = 2; } } int InType = 0; if (!OrderF2F.InType.IsNullOrEmpty()) { InType = 1; } SysControl SysControl = new SysControl(); bool IsNew = true; if (OrderF2F.Id.IsNullOrEmpty()) { //这是旧逻辑,有一些旧版还在用 #region 版本比较 升级之后比较长时间后可以考滤删除版本判断代码 var vSysAgent = this.Entity.SysAgent.FirstOrDefault(o => o.Id == baseUsers.Agent); if (vSysAgent == null) { DataObj.OutError("1000"); return; } IsNew = BizExt.NewOrOldVersion(vSysAgent, Equipment, this.Entity); #endregion if (IsNew)//新版 { if (InType == 1) { SysControl = Entity.SysControl.FirstOrDefault(n => n.Tag == Tag && n.PayWay == PayWay && n.LagEntryDay > 0); } else { SysControl = Entity.SysControl.FirstOrDefault(n => n.Tag == Tag && n.PayWay == PayWay && n.LagEntryDay == 0); } } else//旧版 { SysControl = Entity.SysControl.FirstOrDefault(n => n.Tag == Tag && n.PayWay == PayWay); } } else { SysControl = Entity.SysControl.FirstOrDefault(n => n.Id == OrderF2F.Id); if (SysControl.LagEntryDay > 0) { InType = 1; } else { InType = 0; } } //获取系统支付配置 if (SysControl == null) { DataObj.OutError("1005"); return; } if (InType == 1 && (SysControl.LagEntryDay.IsNullOrEmpty() || SysControl.LagEntryNum.IsNullOrEmpty())) { DataObj.Msg = "请升级到最新版再发起Tn到帐交易!"; DataObj.OutError("1005"); return; } SysControl syscontrol = SysControl.ChkState(); if (syscontrol.State != 1) { DataObj.OutError("1005"); return; } #endregion #region 订单生成 //处理交易地点 if (OrderF2F.X.IsNullOrEmpty() || OrderF2F.Y.IsNullOrEmpty()) { DataObj.OutError("1000"); return; } //开始处理参数 OType通道,7支付宝,8微信 if (OrderF2F.Amoney.IsNullOrEmpty() || OrderF2F.OType.IsNullOrEmpty()) { DataObj.OutError("1000"); return; } OrderF2F.Amoney = OrderF2F.Amoney.FormatMoney(); //获取用户支付配置 UserPay UserPay = Entity.UserPay.FirstOrDefault(n => n.UId == baseUsers.Id && n.PId == PayWay); if (UserPay == null) { DataObj.OutError("1000"); return; } //获取分支机构信息 SysAgent SysAgent = new SysAgent(); if (!baseUsers.Agent.IsNullOrEmpty()) { SysAgent = Entity.SysAgent.FirstOrNew(n => n.Id == baseUsers.Agent); } OrderF2F.PayWay = PayWay; //获取系统配置 SysSet SysSet = Entity.SysSet.FirstOrDefault(); if (InType == 1) {//客户端传来T+N但是系统没开启时无效 if (SysSet.LagEntry == 0) { InType = 0; } } if (InType == 1) { //手续费 OrderF2F.Poundage = 0; //商户费率 OrderF2F.UserRate = 0; //T+n时,代理佣金为 交易金额*费率 decimal AgentPayGet = OrderF2F.Amoney * SysSet.AgentGet; OrderF2F.AgentPayGet = (Double)AgentPayGet; //佣金舍位 OrderF2F.AgentPayGet = OrderF2F.AgentPayGet.Floor(); } else { //手续费 OrderF2F.Poundage = OrderF2F.Amoney * (decimal)UserPay.Cost; //手续费取进 OrderF2F.Poundage = OrderF2F.Poundage.Ceiling(); //商户费率 OrderF2F.UserRate = UserPay.Cost; //分支机构佣金设置为0,待分润计算后再写入 OrderF2F.AgentPayGet = 0; } OrderF2F.UId = baseUsers.Id; //到帐金额=支付金额-手续费 OrderF2F.PayMoney = OrderF2F.Amoney - OrderF2F.Poundage; //第三方支付通道率 OrderF2F.SysRate = (double)PayConfig.Cost; //这里是利润计算========== //利润=总金额-到帐-支付手续费 decimal GetAll = OrderF2F.Amoney - OrderF2F.PayMoney - OrderF2F.Amoney * (decimal)OrderF2F.SysRate; //利润舍位 GetAll = GetAll.Floor(); //总利润 OrderF2F.AIdPayGet = (double)GetAll; OrderF2F.Agent = SysAgent.Id;//分支机构Id OrderF2F.AId = baseUsers.AId; OrderF2F.FId = 0; OrderF2F.OrderState = 1; OrderF2F.PayState = 0; OrderF2F.AgentState = 0; OrderF2F.AddTime = DateTime.Now; OrderF2F.PayId = string.Empty; OrderF2F.PayType = PayType; //写入前,判断交易金额限制 if (OrderF2F.Amoney < syscontrol.SNum || OrderF2F.Amoney > syscontrol.ENum) { DataObj.OutError("1006"); return; } //写入订单总表 Orders Orders = new Orders(); Orders.UId = OrderF2F.UId; Orders.TName = NeekName; Orders.PayType = PayType; Orders.PayName = PayName; Orders.RUId = 0; Orders.RName = string.Empty; Orders.TType = OrderF2F.OType; Orders.TState = 1; Orders.Amoney = OrderF2F.Amoney; Orders.Poundage = OrderF2F.Poundage; Orders.AddTime = DateTime.Now; Orders.PayState = 0; Orders.PayWay = PayConfig.Id; Orders.Agent = OrderF2F.Agent; Orders.AgentState = 0; Orders.AId = OrderF2F.AId; Orders.FId = 0; Orders.ComeWay = ComeWay; string OrderAddress = OrderF2F.OrderAddress; if (OrderAddress.IsNullOrEmpty()) { OrderAddress = Utils.GetAddressByGPS(OrderF2F.X, OrderF2F.Y); } Orders.OrderAddress = OrderAddress; Orders.X = OrderF2F.X; Orders.Y = OrderF2F.Y; if (InType == 1) { if (IsNew)//新版 { Orders.LagEntryDay = SysControl.LagEntryDay; Orders.LagEntryNum = SysControl.LagEntryNum; } else { Orders.LagEntryDay = SysSet.LagEntryDay; Orders.LagEntryNum = SysSet.LagEntryNum; } } else { Orders.LagEntryDay = 0; Orders.LagEntryNum = 0; } Entity.Orders.AddObject(Orders); Entity.SaveChanges(); Entity.Refresh(RefreshMode.StoreWins, Orders); OrderF2F.OId = Orders.TNum; Entity.OrderF2F.AddObject(OrderF2F); Entity.SaveChanges(); //======================================= UserTrack.ENo = DataObj.ENo; UserTrack.OPType = Orders.PayName; UserTrack.UserName = Orders.TNum; UserTrack.GPSAddress = Orders.OrderAddress; UserTrack.GPSX = Orders.X; UserTrack.GPSY = Orders.Y; if (!OrderF2F.IP.IsNullOrEmpty()) { UserTrack.IP = OrderF2F.IP; } Orders.SeavGPSLog(UserTrack, Entity); //======================================= #endregion if (PayConfig.DllName == "AliPay") { #region 提交支付宝 string[] PayConfigArr = PayConfig.QueryArray.Split(new char[] { ',' }); //接口信息 商户号,密钥,支付宝号 if (PayConfigArr.Length != 3) { DataObj.OutError("9999"); return; } if (AlipayVer == "1.0") { #region 1.0老接口 Submit Submit = new Submit(); Submit.pid = PayConfigArr[0]; Submit.key = PayConfigArr[1]; //卖家支付宝帐户 string seller_email = PayConfigArr[2]; //订单业务类型 string product_code = "QR_CODE_OFFLINE"; //SOUNDWAVE_PAY_OFFLINE:声波支付,FINGERPRINT_FAST_PAY:指纹支付,BARCODE_PAY_OFFLINE:条码支付 //////////////////////////////////////////////////////////////////////////////////////////////// //把请求参数打包成数组 SortedDictionary <string, string> sParaTemp = new SortedDictionary <string, string>(); sParaTemp.Add("partner", Submit.pid); sParaTemp.Add("_input_charset", "utf-8"); sParaTemp.Add("service", "alipay.acquire.precreate"); sParaTemp.Add("out_trade_no", OrderF2F.OId); sParaTemp.Add("subject", Orders.TName + ":" + OrderF2F.OId); sParaTemp.Add("product_code", product_code); sParaTemp.Add("total_fee", OrderF2F.Amoney.ToString("F2")); sParaTemp.Add("seller_email", seller_email); sParaTemp.Add("notify_url", NoticePath + "/PayCenter/AliPay/Notice.html"); //建立请求 string sHtmlText = Submit.BuildRequest(sParaTemp); Utils.WriteLog(sHtmlText, "orderface"); try { XmlDocument xmlDoc = new XmlDocument(); xmlDoc.LoadXml(sHtmlText); string is_success = xmlDoc.SelectSingleNode("/alipay/is_success").InnerText; if (is_success == "T") { string result_code = xmlDoc.SelectSingleNode("/alipay/response/alipay/result_code").InnerText; if (result_code == "SUCCESS") { //成功 string qr_code = xmlDoc.SelectSingleNode("/alipay/response/alipay/qr_code").InnerText; /* * voucher_type 凭证类型 * qr_code 二维码码串 * pic_url 二维码图片地址 * small_pic_ur 二维码小图地址 */ OrderF2F.PayId = qr_code; Entity.SaveChanges(); Orders.PayId = qr_code; } else { Orders.TState = 0; OrderF2F.OrderState = 0; Entity.SaveChanges(); } } else { Orders.TState = 0; OrderF2F.OrderState = 0; Entity.SaveChanges(); } } catch (Exception) { //Utils.WriteLog(Ex.ToString()); Orders.TState = 0; OrderF2F.OrderState = 0; Entity.SaveChanges(); } #endregion } if (AlipayVer == "2.0") { #region 2.0新接口 ALF2FPAY ALF2FPAY = new ALF2FPAY(); ALF2FPAY.pid = PayConfigArr[0]; ALF2FPAY.appId = PayConfigArr[2]; IAopClient client = new DefaultAopClient(ALF2FPAY.serverUrl, ALF2FPAY.appId, ALF2FPAY.merchant_private_key, "json", ALF2FPAY.version, ALF2FPAY.sign_type, ALF2FPAY.alipay_public_key, ALF2FPAY.charset); StringBuilder sb = new StringBuilder(); sb.Append("{"); sb.Append("\"out_trade_no\":\"" + OrderF2F.OId + "\","); sb.Append("\"total_amount\":\"" + OrderF2F.Amoney.ToMoney() + "\","); sb.Append("\"timeout_express\":\"30m\","); sb.Append("\"subject\":\"" + OrderF2F.OId + "\""); sb.Append("}"); AlipayTradePrecreateRequest payRequst = new AlipayTradePrecreateRequest(); string notify_url = NoticePath + "/PayCenter/AliPay/Notice.html"; payRequst.SetNotifyUrl(notify_url); payRequst.BizContent = sb.ToString(); Dictionary <string, string> paramsDict = (Dictionary <string, string>)payRequst.GetParameters(); AlipayTradePrecreateResponse payResponse = client.Execute(payRequst); if (payResponse != null) { payResponse.SaveLog(Entity); //保存记录 if (payResponse.Code == "10000") { OrderF2F.PayId = payResponse.QrCode; Entity.SaveChanges(); Orders.PayId = payResponse.QrCode; } else { Orders.TState = 0; OrderF2F.OrderState = 0; Entity.SaveChanges(); } } else { Orders.TState = 0; OrderF2F.OrderState = 0; Entity.SaveChanges(); } #endregion } #endregion } if (PayConfig.DllName == "WeiXin") { #region 提交微信 //初始化支付配置 WxPayConfig WxPayConfig = new WxPayConfig(); string[] PayConfigArr = PayConfig.QueryArray.Split(new char[] { ',' }); //接口信息 appid,mchid,key,appsecret if (PayConfigArr.Length != 4 && PayConfigArr.Length != 5) { DataObj.OutError("9999"); return; } string ServerIp = ConfigurationManager.AppSettings["ServerIp"].ToString(); string Wx_Cert_Path = ConfigurationManager.AppSettings["Wx_Cert_Path"].ToString(); string Wx_Cert_PWD = ConfigurationManager.AppSettings["Wx_Cert_PWD"].ToString(); WxPayConfig.IP = ServerIp; WxPayConfig.APPID = PayConfigArr[0]; WxPayConfig.MCHID = PayConfigArr[1]; WxPayConfig.KEY = PayConfigArr[2]; WxPayConfig.APPSECRET = PayConfigArr[3]; if (PayConfigArr.Length == 5) { WxPayConfig.SubMCHID = PayConfigArr[4]; } WxPayConfig.SSLCERT_PATH = Wx_Cert_Path; WxPayConfig.SSLCERT_PASSWORD = Wx_Cert_PWD; //支付配置结束 WxPayData data = new WxPayData(); //data.SetValue("auth_code", OrderF2F.PayId);//授权码 data.SetValue("body", Orders.TName + ":" + OrderF2F.OId); //商品描述 string total_fee = (OrderF2F.Amoney * 100).ToString("F0"); data.SetValue("total_fee", total_fee); //总金额 data.SetValue("out_trade_no", OrderF2F.OId); //产生随机的商户订单号 if (PayType == 2) { data.SetValue("trade_type", "JSAPI"); //交易类型 if (PayConfigArr.Length == 5) { //子商户模式 data.SetValue("sub_openid", OpenId); //用户OpenId } else { data.SetValue("openid", OpenId); //用户OpenId } } else { data.SetValue("trade_type", "NATIVE"); //交易类型 } data.SetValue("notify_url", NoticePath + "/PayCenter/WeiXinPay/Notice.html"); //异步通知地址 WxPayData result = WxPayApi.UnifiedOrder(data, WxPayConfig, 10); //调用统一下单接口 result.SaveLog(Entity); if (!result.IsSet("return_code") || result.GetValue("return_code").ToString() == "FAIL") { //支付失败 Orders.TState = 0; OrderF2F.OrderState = 0; Entity.SaveChanges(); } else { if (!result.CheckSign(WxPayConfig.KEY)) { //签名失败,取消订单 Orders.TState = 0; OrderF2F.OrderState = 0; Entity.SaveChanges(); } else { if (result.GetValue("return_code").ToString() == "SUCCESS" && result.GetValue("result_code").ToString() == "SUCCESS") { //获取支付字符串 if (PayType == 2) //JSAPI { string PayId = result.GetValue("prepay_id").ToString(); OrderF2F.PayId = PayId; } else { string PayId = result.GetValue("code_url").ToString(); OrderF2F.PayId = PayId; } Entity.SaveChanges(); Orders.PayId = OrderF2F.PayId; } else { //业务明确失败 Orders.TState = 0; OrderF2F.OrderState = 0; Entity.SaveChanges(); } } } #endregion } #region 提交好付 if (PayConfig.DllName == "HFAliPay" || PayConfig.DllName == "HFWeiXin") { string NoticeUrl = ""; string Action = ""; if (PayConfig.DllName == "HFAliPay") { NoticeUrl = NoticePath + "/PayCenter/HFAliPay/Notice.html"; Action = "AliSao"; } if (PayConfig.DllName == "HFWeiXin") { NoticeUrl = NoticePath + "/PayCenter/HFWeiXin/Notice.html"; if (PayType == 2) { Action = "WxJsApi"; } else { Action = "WxSao"; } } string[] PayConfigArr = PayConfig.QueryArray.Split(','); if (PayConfigArr.Length != 3) { DataObj.OutError("1000"); return; } //提交结算中心 string merId = PayConfigArr[0]; //商户号 string merKey = PayConfigArr[1]; //商户密钥 string JsPayWay = PayConfigArr[2]; //绑定通道 string orderId = Orders.TNum; //商户流水号 decimal money = Orders.Amoney * 100; long intmoney = Int64.Parse(money.ToString("F0")); string OrderMoney = intmoney.ToString();//金额,以分为单 string OpenIdStr = ""; if (PayConfig.Id == 13) { //特殊处理通道 Action = "WxJsApi"; OpenId = "OpenId"; } if (Action == "WxJsApi") { OpenIdStr = ",\"openid\":\"" + OpenId + "\""; } string PostJson = "{\"action\":\"" + Action + "\",\"txnamt\":\"" + OrderMoney + "\",\"merid\":\"" + merId + "\",\"payway\":\"" + JsPayWay + "\",\"orderid\":\"" + orderId + "\",\"backurl\":\"" + NoticeUrl + "\"" + OpenIdStr + "}"; 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 Ex) { Log.Write("[Order_HF]:", "【PostData】" + PostData + "\n【Ret】" + Ret, Ex); json = null; } if (JS == null) { DataObj.OutError("1000"); return; } string resp = JS["resp"].ToString(); Ret = LokFuEncode.Base64Decode(resp, "utf-8"); try { JS = (JObject)JsonConvert.DeserializeObject(Ret); } catch (Exception Ex) { Log.Write("[Order_HF]:", "【Ret2】" + Ret, Ex); JS = null; } if (JS == null) { DataObj.OutError("1000"); return; } string respcode = JS["respcode"].ToString(); if (respcode != "00") { string respmsg = JS["respmsg"].ToString(); DataObj.OutError("1000"); Utils.WriteLog("[Order_HF_Err]:【" + respcode + "】" + respmsg, "orderface"); return; } if (JS["formaction"] == null) { Utils.WriteLog("[Order_HF_Err]:【formaction NULL】" + Ret, "orderface"); DataObj.OutError("2096"); return; } Orders.PayId = JS["formaction"].ToString(); if (PayConfig.Id == 13) { string myData = "{\"merid\":\"" + merId + "\",\"orderid\":\"" + orderId + "\",\"code\":\"" + Orders.PayId + "\"}"; DataBase64 = LokFuEncode.Base64Encode(myData, "utf-8"); Sign = (DataBase64 + merKey).GetMD5(); DataBase64 = HttpUtility.UrlEncode(DataBase64); string myUrl = string.Format("req={0}&sign={1}", DataBase64, Sign); string Url = "https://api.zhifujiekou.com/wxjsapi/gopay.html?" + myUrl; OrderF2F.PayId = Url; Entity.SaveChanges(); Orders.PayId = "http://api.kkapay.com/home/jump?tnum=" + Orders.TNum; } } #endregion Orders.Cols = "Id,TNum,PayId"; DataObj.Data = Orders.OutJson(); DataObj.Code = "0000"; DataObj.OutString(); } #endregion if (OrderF2F.Action == "GET")//获取订交易信息 { //开始处理参数 if (OrderF2F.OId.IsNullOrEmpty()) { DataObj.OutError("1000"); return; } Orders Orders = Entity.Orders.FirstOrDefault(n => n.TNum == OrderF2F.OId && n.UId == baseUsers.Id); if (Orders == null) { DataObj.OutError("1000"); return; } OrderF2F Orderf2f = Entity.OrderF2F.FirstOrDefault(n => n.OId == OrderF2F.OId && n.UId == baseUsers.Id); if (Orders.TState == 1 && Orders.PayState == 0) { PayConfig PayConfig = Entity.PayConfig.FirstOrNew(n => n.Id == Orders.PayWay); if (PayConfig.DllName == "AliPay") { #region 支付宝处理 string[] PayConfigArr = PayConfig.QueryArray.Split(new char[] { ',' }); //接口信息 商户号,密钥,支付宝号 if (PayConfigArr.Length != 3) { DataObj.OutError("9999"); return; } if (AlipayVer == "1.0") { #region 1.0老接口 string pid = PayConfigArr[0]; string key = PayConfigArr[1]; int queryTimes = 10; //查询次数计数器 int Run = 0; while (queryTimes > 0 && Run != 1) { AliPayApi Api = new AliPayApi(); int succResult = Api.AliPayQuery(Orderf2f.OId, pid, key); //如果需要继续查询,则等待2s后继续 if (succResult == 2) { //Thread.Sleep(5000); //continue; Run = 1; //跳出循环,20160420 } //查询成功,返回订单查询接口返回的数据 else if (succResult == 1) { //Orders.PayState = 1;//此处不保存支付状态,由通知返回再操作 Orders = Orders.PaySuccess(Entity); Run = 1; } //订单交易失败 else { Orders.TState = 0; Orderf2f.OrderState = 0; Entity.SaveChanges(); } queryTimes--; } #endregion } if (AlipayVer == "2.0") { #region 2.0新接口 ALF2FPAY ALF2FPAY = new ALF2FPAY(); ALF2FPAY.pid = PayConfigArr[0]; ALF2FPAY.appId = PayConfigArr[2]; IAopClient client = new DefaultAopClient(ALF2FPAY.serverUrl, ALF2FPAY.appId, ALF2FPAY.merchant_private_key, "json", ALF2FPAY.version, ALF2FPAY.sign_type, ALF2FPAY.alipay_public_key, ALF2FPAY.charset); string QueryStr = "{\"out_trade_no\":\"" + Orders.TNum + "\"}"; ALF2FPAYObj ObjQuery = new ALF2FPAYObj(); ObjQuery.BizCode = QueryStr; ObjQuery.Client = client; ObjQuery.Entity = Entity; AliPayApi Api = new AliPayApi(); AlipayTradeQueryResponse queryResponse = Api.LoopAlipayQuery(ObjQuery, 1); if (queryResponse != null) { if (queryResponse.Code == "10000") { if (queryResponse.TradeStatus == "TRADE_FINISHED" || queryResponse.TradeStatus == "TRADE_SUCCESS") { //Orders.PayState = 1;//此处不保存支付状态,由通知返回再操作 Orders = Orders.PaySuccess(Entity); } } } #endregion } #endregion } if (PayConfig.DllName == "WeiXin") { #region 微信处理 //初始化支付配置 WxPayConfig WxPayConfig = new WxPayConfig(); string[] PayConfigArr = PayConfig.QueryArray.Split(new char[] { ',' }); //接口信息 appid,mchid,key,appsecret if (PayConfigArr.Length != 4 && PayConfigArr.Length != 5) { DataObj.OutError("9999"); return; } string ServerIp = ConfigurationManager.AppSettings["ServerIp"].ToString(); string Wx_Cert_Path = ConfigurationManager.AppSettings["Wx_Cert_Path"].ToString(); string Wx_Cert_PWD = ConfigurationManager.AppSettings["Wx_Cert_PWD"].ToString(); WxPayConfig.IP = ServerIp; WxPayConfig.APPID = PayConfigArr[0]; WxPayConfig.MCHID = PayConfigArr[1]; WxPayConfig.KEY = PayConfigArr[2]; WxPayConfig.APPSECRET = PayConfigArr[3]; if (PayConfigArr.Length == 5) { WxPayConfig.SubMCHID = PayConfigArr[4]; } WxPayConfig.SSLCERT_PATH = Wx_Cert_Path; WxPayConfig.SSLCERT_PASSWORD = Wx_Cert_PWD; //支付配置结束 int queryTimes = 10; //查询次数计数器 int Run = 0; while (queryTimes > 0 && Run != 1) { int succResult = 0;//查询结果 MicroPay MicroPay = new MicroPay(); WxPayData queryResult = MicroPay.WXQuery(Orderf2f.OId, WxPayConfig, Entity, out succResult); //如果需要继续查询,则等待2s后继续 if (succResult == 2) { //Thread.Sleep(5000); //continue; Run = 1; //跳出循环,20160420 } //查询成功,返回订单查询接口返回的数据 else if (succResult == 1) { Orderf2f.Trade_no = queryResult.GetValue("transaction_id").ToString(); int ret = Entity.SaveChanges(); //Orders.PayState = 1;//此处不保存支付状态,由通知返回再操作 Orders = Orders.PaySuccess(Entity); Run = 1; } //订单交易失败 else { Orders.TState = 0; Orderf2f.OrderState = 0; Entity.SaveChanges(); } queryTimes--; } #endregion } if (PayConfig.DllName == "HFAliPay" || PayConfig.DllName == "HFWeiXin") { #region 好付处理 string[] QueryArr = PayConfig.QueryArray.Split(','); if (QueryArr.Length == 3) { //提交结算中心 string merId = QueryArr[0]; //商户号 string merKey = QueryArr[1]; //商户密钥 string orderId = Orders.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 HF_Url = "https://api.zhifujiekou.com/api/query"; string Ret = Utils.PostRequest(HF_Url, PostData, "utf-8"); JObject JS = new JObject(); try { JS = (JObject)JsonConvert.DeserializeObject(Ret); } catch (Exception Ex) { Log.Write("[Order_HFQuery]:", "【PostData】" + PostData + "\n【Ret】" + Ret, Ex); JS = null; } if (JS == null) { DataObj.OutError("1000"); return; } if (JS["resp"] == null) { Utils.WriteLog("【Ret】" + Ret, "OrderQC_HFQuery"); DataObj.OutError("1000"); return; } string resp = JS["resp"].ToString(); Ret = LokFuEncode.Base64Decode(resp, "utf-8"); try { JS = (JObject)JsonConvert.DeserializeObject(Ret); } catch (Exception Ex) { Log.Write("[Order_HFQuery]:", "【Ret2】" + Ret, Ex); JS = null; } if (JS == null) { DataObj.OutError("1000"); return; } string respcode = JS["respcode"].ToString(); if (respcode != "00") { string respmsg = JS["respmsg"].ToString(); DataObj.OutError("1000"); Utils.WriteLog("[Order_HFQuery_Err]:【" + respcode + "】" + respmsg, "orderface"); return; } string resultcode = JS["resultcode"].ToString(); if (resultcode == "0000" || resultcode == "1002" || resultcode == "1004") { string txnamt = JS["txnamt"].ToString(); int factmoney = int.Parse(txnamt); if (((int)(Orders.Amoney * 100)) == factmoney) { //Orders.PayState = 1;//此处不保存支付状态,由通知返回再操作 Orders = Orders.PaySuccess(Entity); } } } #endregion } } DataObj.Data = Orders.OutJson(); DataObj.Code = "0000"; DataObj.OutString(); } }
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("[UsersPassWrod]:", "【Data】" + Data, Ex); } if (json == null) { DataObj.OutError("1000"); return; } //JObject pp = (JObject)p; Users Users = new Users(); Users = JsonToObject.ConvertJsonToModel(Users, json); UserTrack UserTrack = new UserTrack(); UserTrack = JsonToObject.ConvertJsonToModel(UserTrack, json); if (Users.Token.IsNullOrEmpty()) { DataObj.OutError("1000"); return; } if (Users.X.IsNullOrEmpty() || Users.Y.IsNullOrEmpty()) { DataObj.OutError("1000"); return; } 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.PassWord != Users.PassWord.GetMD5()) //{ // DataObj.OutError("2002"); // return; //} if (baseUsers.LoginLock == 1)//临时锁定 { DataObj.OutError("2103"); return; } if (baseUsers.PassWord != Users.PassWord.GetMD5()) { SysSet SysSet = Entity.SysSet.FirstOrNew(); //系统统一修改标识SAME001 baseUsers.LoginErr++; if (baseUsers.LoginErr >= SysSet.LoginLock) { baseUsers.Token = "Lock";//锁定退出 baseUsers.LoginLock = 1; } Entity.SaveChanges(); Users Out = new Users(); Out.LoginErr = SysSet.LoginLock - baseUsers.LoginErr; Out.Cols = "LoginErr"; DataObj.Data = Out.OutJson(); DataObj.Code = "2002"; if (Out.LoginErr == 0) { DataObj.Msg = "帐号或密码不正确,请明日再试或取回登录密码"; } else { DataObj.Msg = "帐号或密码不正确,您还可以尝试" + Out.LoginErr + "次"; } DataObj.OutString(); return; } baseUsers.PassWord = Users.NewPWD.GetMD5(); baseUsers.LoginErr = 0; Entity.SaveChanges(); //======================================= UserTrack.ENo = DataObj.ENo; UserTrack.OPType = "修改密码"; UserTrack.GPSAddress = Users.RegAddress; UserTrack.GPSX = Users.X; UserTrack.GPSY = Users.Y; baseUsers.SeavGPSLog(UserTrack, Entity); //======================================= DataObj.Data = ""; DataObj.Code = "0000"; DataObj.OutString(); //Tools.OutString(ErrInfo.Return("0000")); }
public void OpenOrBindUser(int id, string PowerID = "") { SysAgent SysAgent = Entity.SysAgent.FirstOrDefault(n => n.Id == id); if (!SysAgent.MyUId.IsNullOrEmpty()) { //已绑定 return; } SysAdmin SysAdmin = new SysAdmin(); SysSet ss = new SysSet(); ss.SMSEnd = BasicSet.SMSEnd; if (SysAgent.AdminId.IsNullOrEmpty()) { //未绑定管理员 SysAdmin = Entity.SysAdmin.Where(n => n.UserName == SysAgent.LinkMobile).OrderBy(n => n.Id).FirstOrDefault(); if (SysAdmin == null) { //获取是否开通过管理员 SysAdmin = Entity.SysAdmin.Where(n => n.AgentId == SysAgent.Id).FirstOrDefault(); if (SysAdmin == null) { //开通管理员帐号 SysAdmin = new SysAdmin(); SysAdmin.UserName = SysAgent.LinkMobile; SysAdmin.TrueName = SysAgent.Linker; SysAdmin.Mobile = SysAgent.LinkMobile; SysAdmin.Email = ""; SysAdmin.State = SysAgent.State; SysAdmin.LoginTimes = 0; SysAdmin.AddTime = DateTime.Now; SysAdmin.AgentId = SysAgent.Id; SysAdmin.PowerID = PowerID; string PassWord = Utils.GetCode(); SysAdmin.PassWord = PassWord.GetAdminMD5(); Entity.SysAdmin.AddObject(SysAdmin); Entity.SaveChanges(); SysAgent.AdminId = SysAdmin.Id; Entity.SaveChanges(); if (SysAgent.AdminId.IsNullOrEmpty()) { //绑定第一个管理员 SysAgent.AdminId = SysAdmin.Id; } Entity.SaveChanges(); //开通后发送短信 string SendText = "您的服务商管理账户已经开通,帐号:{0},密码:{1}。"; SendText = string.Format(SendText, SysAdmin.UserName, PassWord); this.SendSMS(SendText, SysAdmin.Mobile, ss); } } if (SysAdmin.AgentId.IsNullOrEmpty()) { //所属手机号是管理员 return; } if (SysAdmin.AgentId != SysAgent.Id) { //手机号所属于管理员不属于本代理商 return; } SysAgent.AdminId = SysAdmin.Id; Entity.SaveChanges(); } Users Users = Entity.Users.FirstOrDefault(n => n.UserName == SysAgent.LinkMobile); if (Users == null) { //注册用户 Users = new Users(); Users.UserName = SysAgent.LinkMobile; Users.Mobile = SysAgent.LinkMobile; string PassWord = Utils.GetCode(); Users.PassWord = PassWord.GetMD5(); Users.RegAddress = "下级代理自动开通"; Users.X = "0"; Users.Y = "0"; Users.MobileState = 2; Users.EmailState = 0; Users.CardStae = 0; Users.State = 0; Users.Amount = 0; Users.Frozen = 0; Users.AddTime = DateTime.Now; Users.PayPwd = ""; Users.Agent = SysAgent.Id;//默认指定 Users.SAId = SysAgent.Id; //Users.SALevel = SysAgent.Levels; Users.AId = SysAdmin.Id;//默认指定 Entity.Users.AddObject(Users); Entity.SaveChanges(); //======================================= UserTrack UserTrack = new UserTrack(); UserTrack.ENo = string.Empty; UserTrack.OPType = "下级代理开通"; UserTrack.IfYY = string.Empty; UserTrack.EqMobile = string.Empty; UserTrack.SysVer = string.Empty; UserTrack.SoftVer = string.Empty; UserTrack.SignalType = string.Empty; UserTrack.GPSAddress = string.Empty; UserTrack.GPSX = "0"; UserTrack.GPSY = "0"; Users.SeavGPSLog(UserTrack, Entity); //======================================= SysAgent.MyUId = Users.Id; Entity.SaveChanges(); //自动开通 //IList<PayConfig> PCList = Entity.PayConfig.Where(n => n.State == 1).ToList(); //foreach (var PC in PCList) //{ // UserPay UserPay = new UserPay(); // UserPay.UId = Users.Id; // UserPay.PId = PC.Id; // UserPay.Cost = (double)PC.CostUser; // Entity.UserPay.AddObject(UserPay); //} //使用代理配置 IList <UserPayAgent> UPAList = Entity.UserPayAgent.Where(n => n.AId == SysAgent.Id).OrderBy(n => n.PId).ToList(); foreach (var p in UPAList) { UserPay UserPay = new UserPay(); UserPay.UId = Users.Id; UserPay.PId = p.PId; UserPay.Cost = p.Cost; Entity.UserPay.AddObject(UserPay); } SysSet Sys = Entity.SysSet.FirstOrDefault(); //Users.Cash0 = Sys.Cash0; //Users.ECash0 = Sys.ECash0; //Users.Cash1 = Sys.Cash1; //Users.ECash1 = Sys.ECash1; //使用代理配置 Users.Cash0 = SysAgent.Cash0; Users.Cash1 = SysAgent.Cash1; Users.ECash0 = SysAgent.ECash0; Users.ECash1 = SysAgent.ECash1; Users.State = 1; Entity.SaveChanges(); //自动开通End //开通后发送短信 string SendText = "您的钱包账户已经开通,帐号:{0},密码:{1}。"; SendText = string.Format(SendText, Users.UserName, PassWord); this.SendSMS(SendText, Users.UserName, ss); } else { SysAgent.MyUId = Users.Id; //钱包帐户所属于代理商改成自己,避免推广用户属于原代理商 Users.Agent = SysAgent.Id; //默认指定 Users.SAId = SysAgent.Id; Users.AId = SysAdmin.Id; //默认指定 Users.MyPId = 0; Entity.SaveChanges(); string SendText = "您的钱包账户“{0}”,绑定成为{1}的结算帐户。"; SendText = string.Format(SendText, Users.UserName, SysAgent.Name); this.SendSMS(SendText, Users.UserName, ss); } }
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("[OrderCash]:", "【Data】" + Data, Ex); } if (json == null) { DataObj.OutError("1000"); return; } //System.Threading.Thread.Sleep(60000 * 60 * 24); OrderCash OrderCash = new OrderCash(); OrderCash = JsonToObject.ConvertJsonToModel(OrderCash, json); UserTrack UserTrack = new UserTrack(); UserTrack = JsonToObject.ConvertJsonToModel(UserTrack, json); if (OrderCash.TrunType.IsNullOrEmpty()) { OrderCash.TrunType = 0; } if (OrderCash.TrunType != 0) { OrderCash.TrunType = 1; } string Tag = "Cash"; if (OrderCash.TrunType == 0) { Tag = "CashT0"; } if (OrderCash.TrunType == 1) { Tag = "CashT1"; } SysControl SysControl = Entity.SysControl.FirstOrDefault(n => n.Tag == Tag); SysControl syscontrol = SysControl.ChkState(); if (syscontrol.State != 1) { DataObj.OutError("1005"); return; } if (OrderCash.PayPwd.IsNullOrEmpty()) { DataObj.OutError("1000"); return; } if (OrderCash.PayPwd.Length < 6)//6位及以上 { DataObj.OutError("1000"); return; } //获取用户信息 Users baseUsers = Entity.Users.FirstOrDefault(n => n.Token == OrderCash.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.PayLock == 1)//密码错误太多次锁定 { DataObj.OutError("2050"); return; } if (baseUsers.StopPayState == 2)//禁止支付 { DataObj.OutError("6060"); return; } //获取系统配置 SysSet SysSet = Entity.SysSet.FirstOrDefault(); //这里是执行指纹解锁 bool IfCheckOk = true; if (OrderCash.PayPwd.Substring(0, 3) == "HF_") { string PassWord = OrderCash.PayPwd; PassWord = PassWord.Replace("HF_", ""); string Token = baseUsers.Token; Token = Token + "GoodPay"; string Md5Token = Token.GetMD5().ToUpper(); string Pass = Md5Token.Substring(0, 4) + Md5Token.Substring(Md5Token.Length - 4, 4); if (Pass != PassWord) { IfCheckOk = false; } } else if (baseUsers.PayPwd != OrderCash.PayPwd.GetPayMD5()) { //原支付密码错误 IfCheckOk = false; } if (!IfCheckOk) { //付密码错误 baseUsers.PayErr++; if (baseUsers.PayErr >= SysSet.PayLock) { baseUsers.PayLock = 1; } Entity.SaveChanges(); Users Out = new Users(); Out.PayErr = SysSet.PayLock - baseUsers.PayErr; Out.Cols = "PayErr"; DataObj.Data = Out.OutJson(); //DataObj.Code = "2010"; DataObj.Code = "2002"; if (Out.PayErr == 0) { DataObj.Msg = "用户支付密码不正确,请明日再试或取回支付密码"; } else { DataObj.Msg = "用户支付密码不正确,您还可以尝试" + Out.PayErr + "次"; } DataObj.OutString(); return; } baseUsers.PayErr = 0; Entity.SaveChanges(); //开始处理参数 if (OrderCash.Amoney.IsNullOrEmpty()) { DataObj.OutError("1000"); return; } OrderCash.Amoney = OrderCash.Amoney.FormatMoney(); //提现金额大于余额 if (OrderCash.Amoney > baseUsers.Amount) { DataObj.OutError("6001"); return; } //冻结金额小于0不能提现 if (baseUsers.Frozen < 0) { DataObj.OutError("6001"); return; } if (OrderCash.X.IsNullOrEmpty() || OrderCash.Y.IsNullOrEmpty()) { DataObj.OutError("1000"); return; } if (OrderCash.Owner.IsNullOrEmpty() || OrderCash.Bank.IsNullOrEmpty() || OrderCash.CardNum.IsNullOrEmpty() || OrderCash.Deposit.IsNullOrEmpty() || OrderCash.Mobile.IsNullOrEmpty()) { DataObj.OutError("1000"); return; } UserBlackList UserBlackList = Entity.UserBlackList.FirstOrDefault(UBL => UBL.CardNumber == OrderCash.CardNum && UBL.State == 3); if (UserBlackList != null) { //提示暂不支持该卡提现 DataObj.OutError("2017"); return; } //获取分支机构信息 SysAgent SysAgent = new SysAgent(); if (!baseUsers.Agent.IsNullOrEmpty()) { SysAgent = Entity.SysAgent.FirstOrNew(n => n.Id == baseUsers.Agent); } if (SysAgent.Id.IsNullOrEmpty()) { SysAgent.Cash0Times = 0; SysAgent.Cash1Times = 0; } decimal Peier = 0; if (OrderCash.TrunType == 0) { if (baseUsers.HasT0 != 1) { //T0黑名单 DataObj.OutError("6020"); return; } //验证是否满足T0 int Day = (DateTime.Now - baseUsers.AddTime).Days; int OrderCount = Entity.Orders.Count(n => (n.TType == 2 || n.TType == 5) && n.PayState == 2 && n.UId == baseUsers.Id); decimal?OrderMoney = Entity.Orders.Where(n => (n.TType == 2 || n.TType == 5) && n.PayState == 2 && n.UId == baseUsers.Id).Sum(n => (decimal?)n.Amoney); if (OrderMoney.IsNullOrEmpty()) { OrderMoney = 0; } if (Day >= SysSet.CashDay && OrderCount >= SysSet.CashNum && OrderMoney >= SysSet.CashMoney) { } else { DataObj.OutError("6020"); return; } //验证是否在快速提现时段内 TaskTimeSet TaskTimeSet = Entity.TaskTimeSet.FirstOrDefault(n => n.STime <= DateTime.Now && n.ETime >= DateTime.Now && n.TId == 1); if (TaskTimeSet == null) { DataObj.OutError("6018"); return; } Peier = TaskTimeSet.AllMoney - TaskTimeSet.UsedMoney; } OrderCash.UId = baseUsers.Id; if (OrderCash.TrunType == 0)//加急提现 { if (baseUsers.T0Times < SysAgent.Cash0Times) { //用户提现服务费 OrderCash.UserRate = 0; //加急费用 OrderCash.Cash = 0; //提现服务费 OrderCash.ECash = 0; } else { //用户提现服务费=提现金额*加急费率+提现服务费 OrderCash.UserRate = (double)(OrderCash.Amoney * baseUsers.Cash0 + baseUsers.ECash0); //提现服务费进位 OrderCash.UserRate = OrderCash.UserRate.Ceiling(); //加急费用 OrderCash.Cash = baseUsers.Cash0; //提现服务费 OrderCash.ECash = baseUsers.ECash0; } //系统提现费成本 OrderCash.CashRate = OrderCash.Amoney * SysSet.SysCash0 + SysSet.SysECash0; //系统手续费进位 OrderCash.CashRate = OrderCash.CashRate.Ceiling(); //这里是利润计算========== //代理商分润 double GetAgent = OrderCash.UserRate - (double)(OrderCash.Amoney * SysSet.AgentCash0 + SysSet.AgentECash0); if (GetAgent < 0) { GetAgent = 0; } //利润=收取用户手续费-系统支出手续费 double GetAll = OrderCash.UserRate - (double)OrderCash.CashRate - GetAgent; //利润舍位 GetAll = GetAll.Floor(); //总利润 OrderCash.AIdCashGet = (double)GetAll; //分支机构佣金设置为0,待分润计算后再写入 OrderCash.AgentCashGet = GetAgent; } else { if (baseUsers.T1Times < SysAgent.Cash1Times) { //用户提现服务费 OrderCash.UserRate = 0; //加急费用 OrderCash.Cash = 0; //提现服务费 OrderCash.ECash = 0; } else { //用户提现服务费=提现金额*加急费率+提现服务费 OrderCash.UserRate = (double)(OrderCash.Amoney * baseUsers.Cash1 + baseUsers.ECash1); //提现服务费进位 OrderCash.UserRate = OrderCash.UserRate.Ceiling(); //加急费用 OrderCash.Cash = baseUsers.Cash1; //提现服务费 OrderCash.ECash = baseUsers.ECash1; } //系统提现费成本 OrderCash.CashRate = OrderCash.Amoney * SysSet.SysCash1 + SysSet.SysECash1; //系统手续费进位 OrderCash.CashRate = OrderCash.CashRate.Ceiling(); //这里是利润计算========== //代理商分润 double GetAgent = OrderCash.UserRate - (double)(OrderCash.Amoney * SysSet.AgentCash1 + SysSet.AgentECash1); if (GetAgent < 0) { GetAgent = 0; } //利润=收取用户手续费-系统支出手续费 double GetAll = OrderCash.UserRate - (double)OrderCash.CashRate - GetAgent; //利润舍位 GetAll = GetAll.Floor(); //总利润 OrderCash.AIdCashGet = (double)GetAll; //分支机构佣金 OrderCash.AgentCashGet = GetAgent; } decimal Money = OrderCash.Amoney - (decimal)OrderCash.UserRate; if (Money < 0) { DataObj.OutError("1006"); return; } if (OrderCash.TrunType == 0)//T0时才验证 { //付款金额 //验证是否配额充足 if (Peier < Money) { DataObj.OutError("6019"); return; } } OrderCash.Agent = SysAgent.Id;//分支机构Id OrderCash.AId = baseUsers.AId; OrderCash.FId = 0; OrderCash.OrderState = 1; OrderCash.PayState = 1; OrderCash.AgentState = 0; OrderCash.FState = 0; OrderCash.AddTime = DateTime.Now; //写入前,判断交易金额限制 if (OrderCash.Amoney < syscontrol.SNum || OrderCash.Amoney > syscontrol.ENum) { DataObj.OutError("1006"); return; } //写入订单总表 Orders Orders = new Orders(); Orders.UId = OrderCash.UId; Orders.TName = baseUsers.TrueName; Orders.PayType = 0; Orders.PayName = "提现"; Orders.RUId = 0; Orders.RName = string.Empty; Orders.TType = 2; Orders.TState = 1; Orders.Amoney = OrderCash.Amoney; Orders.Poundage = (decimal)OrderCash.UserRate; Orders.AddTime = DateTime.Now; Orders.PayState = 1;//提现为余额支付的一种特殊形式。 Orders.PayWay = 4; Orders.PayTime = DateTime.Now; Orders.Agent = OrderCash.Agent; Orders.AgentState = 0; Orders.AId = OrderCash.AId; Orders.FId = 0; Orders.UserCardId = baseUsers.CardId; string OrderAddress = OrderCash.OrderAddress; if (OrderAddress.IsNullOrEmpty()) { OrderAddress = Utils.GetAddressByGPS(OrderCash.X, OrderCash.Y); } Orders.OrderAddress = OrderAddress; Orders.X = OrderCash.X; Orders.Y = OrderCash.Y; Orders.TrunType = OrderCash.TrunType; Entity.Orders.AddObject(Orders); Entity.SaveChanges(); Entity.Refresh(RefreshMode.StoreWins, Orders); OrderCash.OId = Orders.TNum; Entity.OrderCash.AddObject(OrderCash); Entity.SaveChanges(); //帐户变动记录 int USERSID = baseUsers.Id; string TNUM = OrderCash.OId; decimal PAYMONEY = Orders.Amoney; string SP_Ret = Entity.SP_UsersMoney(USERSID, TNUM, PAYMONEY, 3, ""); if (SP_Ret != "3") { Utils.WriteLog(string.Format("U{0},O{1},T{2}:{3}【{4}】", USERSID, TNUM, 3, PAYMONEY, SP_Ret), "SP_UsersMoney"); Orders.TState = 0; Orders.PayState = 0; OrderCash.OrderState = 0; OrderCash.PayState = 0; Entity.SaveChanges(); DataObj.OutError("8888"); return; } if (OrderCash.TrunType == 0)//T0时减少配额 { DateTime Today = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd")); TaskTimeSet TaskTimeSet = Entity.TaskTimeSet.FirstOrDefault(n => n.ODate == Today); if (TaskTimeSet != null) { TaskTimeSet.UsedMoney += Money; Entity.SaveChanges(); } baseUsers.T0Times = baseUsers.T0Times + 1; } else { baseUsers.T1Times = baseUsers.T1Times + 1; } if (SysSet.CashChecked == 1) { bool IsAuto = true; if (SysSet.EveryDayMaxCash > 0)//超出规定额度,变成人工审核。规定是0刚不执行 { DateTime Today = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd")); var todaymoney = this.Entity.OrderCash.Where(o => (o.OrderState == 2 || o.OrderState == 1) && o.AddTime > Today && (o.PayState == 1 || o.PayState == 2) && o.UId == baseUsers.Id).Sum(o => (decimal?)o.Amoney) ?? 0m; if (todaymoney > SysSet.EveryDayMaxCash)//当天累加提现 > 规定额度 { IsAuto = false; } } if (IsAuto) { //帐户变动记录 string SP_Ret2 = Entity.SP_UsersMoney(USERSID, TNUM, PAYMONEY, 4, ""); if (SP_Ret2 != "3") { Utils.WriteLog(string.Format("U{0},O{1},T{2}:{3}【{4}】", USERSID, TNUM, 4, PAYMONEY, SP_Ret2), "SP_UsersMoney"); DataObj.OutError("8888"); return; } else { //自动审核 Orders.TState = 2; OrderCash.OrderState = 2; OrderCash.AuditTime = DateTime.Now; Entity.SaveChanges(); } if (SysSet.CashPayWay == 1) //开启自动结算时执行 { if (OrderCash.TrunType == 0) //T0时自动出款 { if (OrderCash.Amoney <= SysSet.QCash0) { Utils.WriteLog("[S]" + Orders.TNum, "CashAuto"); OrderCash.PayCash(Orders, Entity);//去付款 Utils.WriteLog("[E]" + Orders.TNum, "CashAuto"); } else { Utils.WriteLog("结算金额超出自动出款金额" + OrderCash.OId + ":提现金额[" + OrderCash.Amoney + "]自动出款金额[" + SysSet.QCash0 + "]", "OrderCash"); } } //else //{ // Utils.WriteLog("T0时自动出款没开启" + OrderCash.OId, "OrderCash"); //} } else { Utils.WriteLog("自动结算没开启" + OrderCash.OId, "OrderCash"); } } else { Utils.WriteLog("单卡超过限定金额" + OrderCash.OId, "OrderCash"); } } else { Utils.WriteLog("自动审核没开启" + OrderCash.OId, "OrderCash"); } Entity.Refresh(RefreshMode.StoreWins, Orders); //======================================= UserTrack.ENo = DataObj.ENo; UserTrack.OPType = Orders.PayName; UserTrack.UserName = Orders.TNum; UserTrack.GPSAddress = Orders.OrderAddress; UserTrack.GPSX = Orders.X; UserTrack.GPSY = Orders.Y; Orders.SeavGPSLog(UserTrack, Entity); //======================================= Orders.SendMsg(Entity);//发送消息类 if (Orders.PayState == 3 && Orders.Remark == "本银行卡今日提交超过限额!") { DataObj.OutError("1016"); return; } //超过单日单卡(10W)到账限额 DataObj.Data = Orders.OutJson(); DataObj.Code = "0000"; DataObj.OutString(); }
public void Save(Users Users) { if (Users.UserName.IsNullOrEmpty() || Users.PassWord.IsNullOrEmpty() || Users.Code.IsNullOrEmpty()) { Response.Write("0"); return; } //验证是否重复 Users Old = Entity.Users.FirstOrDefault(n => n.UserName == Users.UserName); if (Old != null) { Response.Write("1"); return; } if (Entity.UserBlackList.FirstOrDefault(UBL => UBL.CardNumber == Users.UserName && UBL.State == 1) != null) { Response.Write("6"); return; } //手机验证码 //失效之前获取验证码 SMSCode SMSCode = Entity.SMSCode.OrderByDescending(n => n.Id).FirstOrDefault(n => n.UId == 0 && n.Mobile == Users.UserName && n.CType == 1 && n.Code == Users.Code); if (SMSCode == null) { Response.Write("2"); return; } SysSet SysSet = Entity.SysSet.FirstOrNew(); if (SMSCode.State != 1) { Response.Write("3"); return; } if (SMSCode.AddTime.AddMinutes(SysSet.SMSActives) < DateTime.Now) { Response.Write("4"); return; } Users.Agent = 1; //默认指定 Users.AId = 2; //默认指定 if (!Users.MyPId.IsNullOrEmpty()) { Users U = Entity.Users.FirstOrDefault(n => n.Id == Users.MyPId && n.State == 1); if (U == null) { Users.MyPId = 0; Utils.WriteLog("Users.MyPId=" + Users.MyPId + "Is Null!", "UsersRegAgent" + DateTime.Now.ToString("yyyy-MM-dd")); } else { Users.Agent = U.Agent; //默认指定 Users.AId = U.AId; //默认指定 } } else { Users.MyPId = 0; } if (!Users.PayConfigId.IsNullOrEmpty()) { PayConfigChange PCC = Entity.PayConfigChange.FirstOrDefault(n => n.Id == Users.PayConfigId && n.State == 1 && n.ShareNumber > 0); if (PCC == null) { Users.PayConfigId = 0; } Users.ShareType = 2; } else { Users.PayConfigId = 0; } if (Users.ShareType == 2) { if (Users.PayConfigId.IsNullOrEmpty() || Users.MyPId.IsNullOrEmpty()) { //Users.MyPId = 0; Users.PayConfigId = 0; } } else { if (Users.MyPId.IsNullOrEmpty()) { Users.MyPId = 0; } Users.PayConfigId = 0; } if (Users.MyPId == 0) { Response.Write("5"); return; } Users.PassWord = Users.PassWord.GetMD5(); Users.Mobile = Users.UserName; Users.EmailState = 0; Users.CardStae = 0; Users.State = 0; Users.Amount = 0; Users.Frozen = 0; Users.AddTime = DateTime.Now; Users.PayPwd = ""; //Users.Agent = 1;//默认指定 //Users.AId = 2;//默认指定 Users.MobileState = 2; Users.RegAddress = "网页注册," + Utils.GetAddressAndIp(); Users.X = "0"; Users.Y = "0"; Entity.Users.AddObject(Users); Entity.SaveChanges(); //======================================= UserTrack UserTrack = new UserTrack(); UserTrack.ENo = string.Empty; UserTrack.OPType = "网页注册"; UserTrack.IfYY = string.Empty; UserTrack.EqMobile = string.Empty; UserTrack.SysVer = Utils.GetCustomOS(); //操作系统版本 UserTrack.SoftVer = Utils.GetCustomBrowser(); //软件版本 UserTrack.SignalType = string.Empty; UserTrack.GPSAddress = string.Empty; UserTrack.GPSX = "0"; UserTrack.GPSY = "0"; Users.SeavGPSLog(UserTrack, Entity); //======================================= SMSCode.State = 2; SMSCode.UId = Users.Id; Entity.SaveChanges(); //自动开通 //IList<PayConfig> PCList = Entity.PayConfig.Where(n => n.State == 1).ToList(); //foreach (var PC in PCList) //{ // UserPay UserPay = new UserPay(); // UserPay.UId = Users.Id; // UserPay.PId = PC.Id; // UserPay.Cost = (double)PC.CostUser; // Entity.UserPay.AddObject(UserPay); //} SysAgent SysAgent = Entity.SysAgent.FirstOrDefault(n => n.Id == Users.Agent && n.State == 1); if (SysAgent == null) { Utils.WriteLog("Users.Id=" + Users.Id + "Read Agent Null Users.Agent=" + Users.Agent + "!", "UsersRegAgent" + DateTime.Now.ToString("yyyy-MM-dd")); SysAgent = Entity.SysAgent.FirstOrDefault(n => n.Id == 1 && n.State == 1); Users.Agent = SysAgent.Id; Users.AId = SysAgent.AdminId.GetValueOrDefault(); } //使用代理配置 IList <UserPayAgent> UPAList = Entity.UserPayAgent.Where(n => n.AId == SysAgent.Id).OrderBy(n => n.PId).ToList(); foreach (var p in UPAList) { UserPay UserPay = new UserPay(); UserPay.UId = Users.Id; UserPay.PId = p.PId; UserPay.Cost = p.Cost; Entity.UserPay.AddObject(UserPay); } //SysSet Sys = Entity.SysSet.FirstOrDefault(); //Users.Cash0 = Sys.Cash0; //Users.ECash0 = Sys.ECash0; //Users.Cash1 = Sys.Cash1; //Users.ECash1 = Sys.ECash1; //使用代理配置 Users.Cash0 = SysAgent.Cash0; Users.Cash1 = SysAgent.Cash1; Users.ECash0 = SysAgent.ECash0; Users.ECash1 = SysAgent.ECash1; Users.State = 1; Entity.SaveChanges(); //自动开通End Response.Write("OK"); }
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("[OrderTransfer]:", "【Data】" + Data, Ex); } if (json == null) { DataObj.OutError("1000"); return; } OrderTransfer OrderTransfer = new OrderTransfer(); OrderTransfer = JsonToObject.ConvertJsonToModel(OrderTransfer, json); UserTrack UserTrack = new UserTrack(); UserTrack = JsonToObject.ConvertJsonToModel(UserTrack, json); string Tag = "Transfer"; SysControl SysControl = Entity.SysControl.FirstOrDefault(n => n.Tag == Tag); SysControl syscontrol = SysControl.ChkState(); if (syscontrol.State != 1) { DataObj.OutError("1005"); return; } //获取用户信息 Users baseUsers = Entity.Users.FirstOrDefault(n => n.Token == OrderTransfer.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.UserName == OrderTransfer.ToUserName)//不能给自己转帐 { DataObj.OutError("6031"); return; } if (baseUsers.Amount < OrderTransfer.PayMoney)//余额不足 { DataObj.OutError("6001"); return; } //获取收款用户信息 Users ToUsers = Entity.Users.FirstOrDefault(n => n.UserName == OrderTransfer.ToUserName); if (ToUsers == null)//用户不存在 { DataObj.OutError("6004"); return; } if (ToUsers.State != 1)//用户被锁定 { DataObj.OutError("6003"); return; } //if (ToUsers.CardStae != 2)//未实名认证 //{ // DataObj.OutError("6006"); // return; //} //开始处理参数 if (OrderTransfer.PayMoney.IsNullOrEmpty())//转帐金额 { DataObj.OutError("1000"); return; } OrderTransfer.PayMoney = OrderTransfer.PayMoney.FormatMoney(); if (OrderTransfer.PayType.IsNullOrEmpty()) { OrderTransfer.PayType = 0; } if (OrderTransfer.X.IsNullOrEmpty() || OrderTransfer.Y.IsNullOrEmpty()) { DataObj.OutError("1000"); return; } if (OrderTransfer.AId.IsNullOrEmpty()) { //支付方式,用于取出支付费率信息,计算各接口金额 DataObj.OutError("1000"); return; } //获取系统支付配置 PayConfig PayConfig = Entity.PayConfig.FirstOrDefault(n => n.Id == OrderTransfer.AId && n.State == 1); if (PayConfig == null) { DataObj.OutError("1000"); return; } //转帐目前只支持余额 if (PayConfig.DllName != "Cash") { DataObj.OutError("1000"); return; } //获取分支机构信息 SysAgent SysAgent = new SysAgent(); //获取系统配置 //SysSet SysSet = Entity.SysSet.FirstOrDefault(); OrderTransfer.UId = baseUsers.Id; OrderTransfer.RUId = ToUsers.Id; if (OrderTransfer.IsMe == 1)//付方出手续费 { //获取付方支付配置 UserPay UserPay = Entity.UserPay.FirstOrDefault(n => n.UId == baseUsers.Id && n.PId == OrderTransfer.AId); if (UserPay == null) { DataObj.OutError("1000"); return; } //获取付方机构信息 if (!baseUsers.Agent.IsNullOrEmpty()) { SysAgent = Entity.SysAgent.FirstOrNew(n => n.Id == baseUsers.Agent); } //手续费 OrderTransfer.Poundage = OrderTransfer.PayMoney * (decimal)UserPay.Cost; //手续费进位 OrderTransfer.Poundage = OrderTransfer.Poundage.Ceiling(); //总金额=转帐金额+手续费 OrderTransfer.Amoney = OrderTransfer.PayMoney + OrderTransfer.Poundage; //第三方支付通道率 OrderTransfer.SysRate = (double)PayConfig.Cost; //商户费率 OrderTransfer.UserRate = UserPay.Cost; //这里是利润计算========== //利润=总金额-转到帐-支付手续费 decimal GetAll = OrderTransfer.Amoney - OrderTransfer.PayMoney - OrderTransfer.Amoney * (decimal)OrderTransfer.SysRate; //利润舍位 GetAll = GetAll.Floor(); //总利润 OrderTransfer.AIdPayGet = (double)GetAll; //分支机构佣金设置为0,待分润计算后再写入 OrderTransfer.AgentPayGet = 0; } else //收方出手续费 //获取收方支付配置 { UserPay UserPay = Entity.UserPay.FirstOrDefault(n => n.UId == ToUsers.Id && n.PId == OrderTransfer.AId); if (UserPay == null) { DataObj.OutError("1000"); return; } //获取收方机构信息 if (!ToUsers.Agent.IsNullOrEmpty()) { SysAgent = Entity.SysAgent.FirstOrNew(n => n.Id == ToUsers.Agent); } //总金额=转帐金额+手续费 OrderTransfer.Amoney = OrderTransfer.PayMoney; //手续费 OrderTransfer.Poundage = OrderTransfer.Amoney * (decimal)UserPay.Cost; //手续费进位 OrderTransfer.Poundage = OrderTransfer.Poundage.Ceiling(); //到帐金额 OrderTransfer.PayMoney = OrderTransfer.Amoney - OrderTransfer.Poundage; //第三方支付通道率 OrderTransfer.SysRate = (double)PayConfig.Cost; //商户费率 OrderTransfer.UserRate = UserPay.Cost; //这里是利润计算========== //利润=总金额-转到帐-支付手续费 decimal GetAll = OrderTransfer.Amoney - OrderTransfer.PayMoney - OrderTransfer.Amoney * (decimal)OrderTransfer.SysRate; //利润舍位 GetAll = GetAll.Floor(); //总利润 OrderTransfer.AIdPayGet = (double)GetAll; //分支机构佣金设置为0,待分润计算后再写入 OrderTransfer.AgentPayGet = 0; } OrderTransfer.Agent = SysAgent.Id;//分支机构Id OrderTransfer.AId = baseUsers.AId; OrderTransfer.FId = 0; OrderTransfer.OrderState = 1; OrderTransfer.PayState = 0; OrderTransfer.AgentState = 0; OrderTransfer.AddTime = DateTime.Now; //写入前,判断交易金额限制 if (OrderTransfer.Amoney < syscontrol.SNum || OrderTransfer.Amoney > syscontrol.ENum) { DataObj.OutError("1006"); return; } //写入订单总表 Orders Orders = new Orders(); Orders.UId = OrderTransfer.UId; Orders.TName = "自 " + baseUsers.TrueName + " To " + ToUsers.TrueName; Orders.PayType = OrderTransfer.PayType; switch (Orders.PayType) { case 0: Orders.PayName = "转帐"; break; case 1: Orders.PayName = "当面付"; break; case 2: Orders.PayName = "收银台-钱包"; break; } Orders.RUId = ToUsers.Id; Orders.RName = ToUsers.TrueName; Orders.TType = 3; Orders.TState = 1; Orders.Amoney = OrderTransfer.Amoney; Orders.Poundage = OrderTransfer.Poundage; Orders.AddTime = DateTime.Now; Orders.PayState = 0; Orders.PayWay = PayConfig.Id; Orders.Agent = OrderTransfer.Agent; Orders.AgentState = 0; Orders.AId = OrderTransfer.AId; Orders.FId = 0; string OrderAddress = OrderTransfer.OrderAddress; if (OrderAddress.IsNullOrEmpty()) { OrderAddress = Utils.GetAddressByGPS(OrderTransfer.X, OrderTransfer.Y); } Orders.OrderAddress = OrderAddress; Orders.X = OrderTransfer.X; Orders.Y = OrderTransfer.Y; Orders.Remark = OrderTransfer.Remark; Entity.Orders.AddObject(Orders); Entity.SaveChanges(); Entity.Refresh(RefreshMode.StoreWins, Orders); OrderTransfer.OId = Orders.TNum; Entity.OrderTransfer.AddObject(OrderTransfer); Entity.SaveChanges(); //======================================= UserTrack.ENo = DataObj.ENo; UserTrack.OPType = Orders.PayName; UserTrack.UserName = Orders.TNum; UserTrack.GPSAddress = Orders.OrderAddress; UserTrack.GPSX = Orders.X; UserTrack.GPSY = Orders.Y; Orders.SeavGPSLog(UserTrack, Entity); //======================================= Orders.SendMsg(Entity);//发送消息类 DataObj.Data = Orders.OutJson(); DataObj.Code = "0000"; DataObj.OutString(); }
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("[OrderHouse]:", "【Data】" + Data, Ex); } if (json == null) { DataObj.OutError("1000"); return; } OrderHouse OrderHouse = new OrderHouse(); OrderHouse = JsonToObject.ConvertJsonToModel(OrderHouse, json); UserTrack UserTrack = new UserTrack(); UserTrack = JsonToObject.ConvertJsonToModel(UserTrack, json); string Tag = "House"; SysControl SysControl = Entity.SysControl.FirstOrDefault(n => n.Tag == Tag); SysControl syscontrol = SysControl.ChkState(); if (syscontrol.State != 1) { DataObj.OutError("1005"); return; } //获取用户信息 Users baseUsers = Entity.Users.FirstOrDefault(n => n.Token == OrderHouse.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 (OrderHouse.HouseOwner.IsNullOrEmpty() || OrderHouse.Bank.IsNullOrEmpty() || OrderHouse.Deposit.IsNullOrEmpty() || OrderHouse.CardNum.IsNullOrEmpty() || OrderHouse.Mobile.IsNullOrEmpty()) { DataObj.OutError("1000"); return; } if (OrderHouse.MonthRent.IsNullOrEmpty() || OrderHouse.PayMonth.IsNullOrEmpty()) { DataObj.OutError("1000"); return; } if (OrderHouse.X.IsNullOrEmpty() || OrderHouse.Y.IsNullOrEmpty()) { DataObj.OutError("1000"); return; } if (OrderHouse.AId.IsNullOrEmpty()) {//支付方式,用于取出支付费率信息,计算各接口金额 DataObj.OutError("1000"); return; } if (OrderHouse.AId == 4) {//支付方式,用于取出支付费率信息,计算各接口金额 DataObj.OutError("6022"); return; } if (OrderHouse.SecurityMoney.IsNullOrEmpty()) { OrderHouse.SecurityMoney = 0; } //获取用户支付配置 //UserPay UserPay = Entity.UserPay.FirstOrDefault(n => n.UId == baseUsers.Id && n.PId == OrderHouse.AId); //if (UserPay == null) { // DataObj.OutError("1000"); // return; //} OrderHouse.SecurityMoney = OrderHouse.SecurityMoney.FormatMoney(); OrderHouse.MonthRent = OrderHouse.MonthRent.FormatMoney(); //获取系统支付配置 PayConfig PayConfig = Entity.PayConfig.FirstOrDefault(n => n.Id == OrderHouse.AId && n.State == 1); if (PayConfig == null) { DataObj.OutError("1000"); return; } //获取分支机构信息 SysAgent SysAgent = new SysAgent(); if (!baseUsers.Agent.IsNullOrEmpty()) { SysAgent = Entity.SysAgent.FirstOrNew(n => n.Id == baseUsers.Agent); } //获取系统配置 SysSet SysSet = Entity.SysSet.FirstOrDefault(); if (OrderHouse.TrunType.IsNullOrEmpty()) { OrderHouse.TrunType = 0; } if (OrderHouse.TrunType != 0) { OrderHouse.TrunType = 1; } decimal Peier = 0; if (OrderHouse.TrunType == 0) { if (baseUsers.HasT0 != 1) { //T0黑名单 DataObj.OutError("6020"); return; } //验证是否满足T0 int Day = (DateTime.Now - baseUsers.AddTime).Days; int OrderCount = Entity.Orders.Count(n => (n.TType == 2 || n.TType == 5) && n.PayState == 2 && n.UId == baseUsers.Id); decimal?OrderMoney = Entity.Orders.Where(n => (n.TType == 2 || n.TType == 5) && n.PayState == 2 && n.UId == baseUsers.Id).Sum(n => (decimal?)n.Amoney); if (OrderMoney.IsNullOrEmpty()) { OrderMoney = 0; } if (Day >= SysSet.CashDay && OrderCount >= SysSet.CashNum && OrderMoney >= SysSet.CashMoney) { } else { DataObj.OutError("6020"); return; } //验证是否在快速提现时段内 TaskTimeSet TaskTimeSet = Entity.TaskTimeSet.FirstOrDefault(n => n.STime <= DateTime.Now && n.ETime >= DateTime.Now && n.TId == 1); if (TaskTimeSet == null) { DataObj.OutError("6018"); return; } Peier = TaskTimeSet.AllMoney - TaskTimeSet.UsedMoney; } OrderHouse.UId = baseUsers.Id; double House = SysSet.House; double Cost = (double)PayConfig.Cost; //余额支付不收手续费 if (PayConfig.DllName == "Cash") { House = 0; Cost = 0; } if (OrderHouse.TrunType == 0) { //总房租=月租金*月数+压金 OrderHouse.PayMoney = OrderHouse.MonthRent * OrderHouse.PayMonth + OrderHouse.SecurityMoney; //手续费=总房租*(付房租系统费率+加急费率)+提现服务费 OrderHouse.Poundage = OrderHouse.PayMoney * ((decimal)House + baseUsers.Cash0) + baseUsers.ECash0; //手续费进位 OrderHouse.Poundage = OrderHouse.Poundage.Ceiling(); //总付款金额=房租+手续费 OrderHouse.Amoney = OrderHouse.PayMoney + OrderHouse.Poundage; //第三方支付通道率 OrderHouse.SysRate = Cost; //商户费率 OrderHouse.UserRate = House; //提现费率 OrderHouse.CashRate = OrderHouse.PayMoney * SysSet.Cash0 + SysSet.ECash0; //这里是利润计算========== //利润=总支付金额-房租-支付手续费-提现服务费 decimal GetAll = OrderHouse.Poundage - OrderHouse.PayMoney * ((decimal)Cost + SysSet.Cash0) - baseUsers.ECash0; //利润舍位 GetAll = GetAll.Floor(); //总利润 OrderHouse.AIdPayGet = (double)GetAll; //分支机构佣金设置为0,待分润计算后再写入 OrderHouse.AgentPayGet = 0; } else { //总房租=月租金*月数+压金 OrderHouse.PayMoney = OrderHouse.MonthRent * OrderHouse.PayMonth + OrderHouse.SecurityMoney; //手续费=总房租*付房租系统费率 OrderHouse.Poundage = OrderHouse.PayMoney * ((decimal)House + baseUsers.Cash1) + baseUsers.ECash1; //总付款金额=房租+手续费 OrderHouse.Amoney = OrderHouse.PayMoney + OrderHouse.Poundage; //第三方支付通道率 OrderHouse.SysRate = Cost; //商户费率 OrderHouse.UserRate = House; //提现服务费--T+1无手续费 OrderHouse.CashRate = OrderHouse.PayMoney * SysSet.Cash1 + SysSet.ECash1; //这里是利润计算========== //利润=总支付金额-房租-支付手续费 decimal GetAll = OrderHouse.Poundage - OrderHouse.Amoney * ((decimal)Cost + SysSet.Cash1) - baseUsers.ECash1; //总利润 OrderHouse.AIdPayGet = (double)GetAll; //分支机构佣金设置为0,待分润计算后再写入 OrderHouse.AgentPayGet = 0; } if (OrderHouse.TrunType == 0)//T0时才验证 { //需要支付房东金额 decimal TotalPrice = OrderHouse.PayMoney; //验证是否配额充足 if (Peier < TotalPrice) { DataObj.OutError("6019"); return; } } OrderHouse.Agent = SysAgent.Id;//分支机构Id OrderHouse.AId = baseUsers.AId; OrderHouse.FId = 0; OrderHouse.OrderState = 1; OrderHouse.PayState = 0; OrderHouse.AgentState = 0; OrderHouse.FState = 0; OrderHouse.AddTime = DateTime.Now; //写入前,判断交易金额限制 if (OrderHouse.Amoney < syscontrol.SNum || OrderHouse.Amoney > syscontrol.ENum) { DataObj.OutError("1006"); return; } //写入订单总表 Orders Orders = new Orders(); Orders.Remark = OrderHouse.Remark; Orders.UId = OrderHouse.UId; Orders.TName = OrderHouse.HouseOwner + "的房租"; Orders.PayType = 0; Orders.PayName = "房租"; Orders.RUId = 0; Orders.RName = string.Empty; Orders.TType = 5; Orders.TState = 1; Orders.Amoney = OrderHouse.Amoney; Orders.Poundage = OrderHouse.Poundage; Orders.AddTime = DateTime.Now; Orders.PayState = 0; Orders.PayWay = PayConfig.Id; Orders.Agent = OrderHouse.Agent; Orders.AgentState = 0; Orders.AId = OrderHouse.AId; Orders.FId = 0; string OrderAddress = OrderHouse.OrderAddress; if (OrderAddress.IsNullOrEmpty()) { OrderAddress = Utils.GetAddressByGPS(OrderHouse.X, OrderHouse.Y); } Orders.OrderAddress = OrderAddress; Orders.X = OrderHouse.X; Orders.Y = OrderHouse.Y; Orders.TrunType = OrderHouse.TrunType; Entity.Orders.AddObject(Orders); Entity.SaveChanges(); Entity.Refresh(RefreshMode.StoreWins, Orders); OrderHouse.OId = Orders.TNum; Entity.OrderHouse.AddObject(OrderHouse); Entity.SaveChanges(); //======================================= UserTrack.ENo = DataObj.ENo; UserTrack.OPType = Orders.PayName; UserTrack.UserName = Orders.TNum; UserTrack.GPSAddress = Orders.OrderAddress; UserTrack.GPSX = Orders.X; UserTrack.GPSY = Orders.Y; Orders.SeavGPSLog(UserTrack, Entity); //======================================= Orders.SendMsg(Entity);//发送消息类 DataObj.Data = Orders.OutJson(); DataObj.Code = "0000"; DataObj.OutString(); }
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("[UsersTrueNameByAPI]:", "【Data】" + Data, Ex); } if (json == null) { DataObj.OutError("1000"); return; } UserAuth UserAuth = new UserAuth(); UserAuth = JsonToObject.ConvertJsonToModel(UserAuth, json); SysSet SysSet = this.Entity.SysSet.FirstOrNew(); if (!UserAuth.IdentityCode.IsNullOrEmpty()) { var y = UserAuth.IdentityCode.Substring(6, 4); var m = UserAuth.IdentityCode.Substring(10, 2); var d = UserAuth.IdentityCode.Substring(12, 2); var birthday = new DateTime(int.Parse(y), int.Parse(m), int.Parse(d)); var now = DateTime.Now; int age = now.Year - birthday.Year; if (now.Month < birthday.Month || (now.Month == birthday.Month && now.Day < birthday.Day)) { age--; } if (age > SysSet.AuthMaxAge || age < SysSet.AuthMinAge) { DataObj.OutError("1104"); return; } } Users Users = new Users(); Users = JsonToObject.ConvertJsonToModel(Users, json); UserTrack UserTrack = new UserTrack(); UserTrack = JsonToObject.ConvertJsonToModel(UserTrack, json); if (UserAuth.Token.IsNullOrEmpty()) { DataObj.OutError("1000"); return; } if (UserAuth.NeekName.IsNullOrEmpty()) { DataObj.OutError("1000"); return; } if (Users.X.IsNullOrEmpty() || Users.Y.IsNullOrEmpty()) { DataObj.OutError("1000"); return; } string HaoFu_Auth_Open = ConfigurationManager.AppSettings["HaoFu_Auth_Open"].ToString(); //SysSet SysSet = Entity.SysSet.FirstOrNew(); byte CardItemNum = 0; byte CardType = 0; byte UsedCardType = 0; if (Equipment.RqType == "Apple") { CardItemNum = SysSet.IosSet10; if (SysSet.IosSet11 == 0) { CardType = 0; } if (SysSet.IosSet11 == 1) { CardType = 2; } if (SysSet.IosSet11 == 2) { CardType = 1; } } else { CardItemNum = SysSet.ApkSet10; if (SysSet.ApkSet11 == 0) { CardType = 0; } if (SysSet.ApkSet11 == 1) { CardType = 2; } if (SysSet.ApkSet11 == 2) { CardType = 1; } } if (HaoFu_Auth_Open != "true") { CardItemNum = 6;//兼容直连六要素接口 } if (CardItemNum == 6) { if (UserAuth.BankAccount.IsNullOrEmpty() || UserAuth.AccountName.IsNullOrEmpty() || UserAuth.IdentityCode.IsNullOrEmpty() || UserAuth.Mobile.IsNullOrEmpty() || UserAuth.CVV.IsNullOrEmpty() || UserAuth.EndDate.IsNullOrEmpty()) { DataObj.OutError("1000"); return; } CardType = 2;//六要素一定是信用卡 } else if (CardItemNum == 4) { if (UserAuth.BankAccount.IsNullOrEmpty() || UserAuth.AccountName.IsNullOrEmpty() || UserAuth.IdentityCode.IsNullOrEmpty() || UserAuth.Mobile.IsNullOrEmpty()) { DataObj.OutError("1000"); return; } } else if (CardItemNum == 3) { if (UserAuth.BankAccount.IsNullOrEmpty() || UserAuth.AccountName.IsNullOrEmpty() || UserAuth.IdentityCode.IsNullOrEmpty()) { DataObj.OutError("1000"); return; } } else { DataObj.OutError("1000"); return; } Users baseUsers = Entity.Users.FirstOrDefault(n => n.Token == UserAuth.Token); if (baseUsers == null)//用户令牌不存在 { DataObj.OutError("2004"); return; } if (baseUsers.State != 1) { DataObj.OutError("2003"); return; } if (baseUsers.CardStae == 2) //已实名认证 { DataObj.OutError("2007"); return; } int CardIdCount = Entity.Users.Count(n => n.CardId == UserAuth.IdentityCode && n.CardStae == 2); if (CardIdCount > 0) //身份证已用过 { DataObj.OutError("2020"); return; } //验证账号是否被限制 if (Entity.UserBlackList.FirstOrDefault(UBL => UBL.CardNumber == baseUsers.UserName && UBL.State == 1) != null) { //提示暂不支持您入网 DataObj.OutError("2027"); return; } //验证身份证是否被限制 if (Entity.UserBlackList.FirstOrDefault(UBL => UBL.CardNumber == UserAuth.IdentityCode && UBL.State == 2) != null) { //提示暂不支持您入网 DataObj.OutError("2027"); return; } //验证银行卡是否被限制 if (Entity.UserBlackList.FirstOrDefault(UBL => UBL.CardNumber == UserAuth.BankAccount && UBL.State == 3) != null) { //提示暂不支持您入网 DataObj.OutError("2027"); return; } //2016-10-07 非法关键词限制 if (!SysSet.NoWord.IsNullOrEmpty()) { string NeekName = Users.NeekName; NeekName = NeekName.Replace(" ", "").Replace(" ", ""); string[] NoWord = SysSet.NoWord.Split('|'); bool hasNoWord = false; string noword = ""; foreach (var p in NoWord) { if (NeekName.Contains(p)) { hasNoWord = true; noword = p; break; } } if (hasNoWord) { DataObj.Msg = "禁止使用关键词“" + noword + "”"; DataObj.OutError("2025"); return; } } //2016-09-30 限制重名提交 Users tempUsers = Entity.Users.FirstOrDefault(n => n.NeekName == Users.NeekName && n.State == 1 && (n.CardStae == 2 || n.CardStae == 1)); if (tempUsers != null) { DataObj.OutError("2024"); return; } int Count = Entity.UserAuth.Count(n => n.UId == baseUsers.Id && n.IsCharge == 1); if (Count >= SysSet.AuthTimes) { DataObj.OutError("2022"); return; } if (!UserAuth.EndDate.IsNullOrEmpty()) { //处理年月问题传上来是MMYY //20151112调整成YYMM if (UserAuth.EndDate.Length == 4) { string MM = UserAuth.EndDate.Substring(0, 2); string YY = UserAuth.EndDate.Substring(2, 2); UserAuth.EndDate = YY + MM; } } UserAuth.AddTime = DateTime.Now; UserAuth.UId = baseUsers.Id; UserAuth.IsCharge = 0; Entity.UserAuth.AddObject(UserAuth); Entity.SaveChanges(); Entity.Refresh(RefreshMode.StoreWins, UserAuth); #region 贴牌配置 int ApkSet3 = SysSet.ApkSet3; int IosSet3 = SysSet.IosSet3; var vSysAgent = Entity.SysAgent.FirstOrDefault(o => o.Id == baseUsers.Agent); if (vSysAgent == null) { DataObj.OutError("1000"); return; } var topSysAgent = vSysAgent.GetTopAgent(Entity); if (topSysAgent != null && topSysAgent.IsTeiPai == 1) { ApkSet3 = topSysAgent.Set3; IosSet3 = topSysAgent.Set3; } #endregion #region 激活码逻辑 Card Card = null; bool IsCheckCard = false; //必填 if ((ApkSet3 == 1 && this.Equipment.RqType == "Android") || (IosSet3 == 1 && this.Equipment.RqType == "Apple")) { IsCheckCard = true; if (UserAuth.CardNum.IsNullOrEmpty() || UserAuth.CardPWD.IsNullOrEmpty()) { DataObj.OutError("1000"); return; } } //选填 if ((ApkSet3 == 3 && this.Equipment.RqType == "Android") || (IosSet3 == 3 && this.Equipment.RqType == "Apple")) { if (!UserAuth.CardNum.IsNullOrEmpty() && !UserAuth.CardPWD.IsNullOrEmpty()) { IsCheckCard = true; } } if (IsCheckCard) { Card = Entity.Card.FirstOrDefault(n => n.Code == UserAuth.CardNum && n.PasWd == UserAuth.CardPWD && n.Auto == 1); if (Card == null) { DataObj.OutError("5001"); 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("5001"); return; } if (Card.AId.IsNullOrEmpty()) { DataObj.OutError("5002"); return; } if (Card.AdminId.IsNullOrEmpty()) { DataObj.OutError("5002"); return; } Card.State = 3;//使用中 baseUsers.CardNum = Card.Code; } #endregion string ret_code = ""; string ret_msg = ""; string isCharge = ""; string CONTENT = ""; #region 第三方接口查询 if (HaoFu_Auth_Open == "true") { if (CardItemNum != 6) { UsedCardType = GetCardType(UserAuth.BankAccount); if (CardType == 1)//要求借记卡 { if (UsedCardType != 1) { DataObj.OutError("2023"); Utils.WriteLog(CardType + "===" + UsedCardType + "无法查询的卡:" + UserAuth.BankAccount, "bankcard"); return; } } if (CardType == 2)//要求信用卡 { if (UsedCardType != 2) { DataObj.OutError("2023"); Utils.WriteLog(CardType + "===" + UsedCardType + "无法查询的卡:" + UserAuth.BankAccount, "bankcard"); return; } } } else { UsedCardType = 2; } string HaoFu_Auth_MerId = ConfigurationManager.AppSettings["HaoFu_Auth_MerId"].ToString(); string HaoFu_Auth_MerKey = ConfigurationManager.AppSettings["HaoFu_Auth_MerKey"].ToString(); string HaoFu_Auth_Url = ConfigurationManager.AppSettings["HaoFu_Auth_Url"].ToString(); string data = "{\"action\":\"authuser\",\"merid\":\"" + HaoFu_Auth_MerId + "\",\"orderid\":\"" + UserAuth.OId + "\",\"bankaccount\":\"" + UserAuth.BankAccount + "\",\"accountname\":\"" + UserAuth.AccountName + "\",\"identitycode\":\"" + UserAuth.IdentityCode + "\",\"mobile\":\"" + UserAuth.Mobile + "\",\"cvv\":\"" + UserAuth.CVV + "\",\"enddate\":\"" + UserAuth.EndDate + "\"}"; string DataBase64 = LokFuEncode.Base64Encode(data, "utf-8"); string Sign = (DataBase64 + HaoFu_Auth_MerKey).GetMD5(); DataBase64 = HttpUtility.UrlEncode(DataBase64, Encoding.UTF8); string postdata = "req=" + DataBase64 + "&sign=" + Sign; CONTENT = Utils.PostRequest(HaoFu_Auth_Url, postdata, "utf-8"); JObject JS = new JObject(); try { JS = (JObject)JsonConvert.DeserializeObject(CONTENT); } catch (Exception Ex) { Log.Write("[UsersTrueNameByAPI]:", "【CONTENT】" + CONTENT, Ex); } if (JS == null) { DataObj.OutError("2021"); return; } string resp = JS["resp"].ToString(); CONTENT = LokFuEncode.Base64Decode(resp, "utf-8"); try { JS = (JObject)JsonConvert.DeserializeObject(CONTENT); } catch (Exception Ex) { Log.Write("[UsersTrueNameByAPI]:", "【CONTENT2】" + CONTENT, Ex); } if (JS == null) { DataObj.OutError("2021"); return; } ret_code = JS["respcode"].ToString(); ret_msg = JS["respmsg"].ToString(); if (JS["ischarge"] != null) { isCharge = JS["ischarge"].ToString(); } if (isCharge == "1") { UserAuth.IsCharge = 1; } else { UserAuth.IsCharge = 0; } } #endregion #region 审核处理 UserAuth.RetCode = ret_code; UserAuth.RetMsg = ret_msg; UserAuth.RetLog = CONTENT; baseUsers.TrueName = UserAuth.AccountName; baseUsers.NeekName = UserAuth.NeekName; baseUsers.CardId = UserAuth.IdentityCode; baseUsers.CardFace = ""; baseUsers.CardType = 1; if (UsedCardType == 2) { baseUsers.HasT0 = 1; } else { baseUsers.HasT0 = 0; } string Code = "0000"; if (ret_code == "0000") { baseUsers.CardStae = 2;//直接审核通过 //======================================= string GPSAddress = Users.RegAddress; if (GPSAddress.IsNullOrEmpty()) { GPSAddress = Utils.GetAddressByGPS(Users.X, Users.Y); } if (!GPSAddress.IsNullOrEmpty()) { baseUsers.RegAddress = GPSAddress; baseUsers.X = Users.X; baseUsers.Y = Users.Y; } //======================================= UserTrack.ENo = DataObj.ENo; UserTrack.OPType = "自动认证"; UserTrack.GPSAddress = GPSAddress; UserTrack.GPSX = Users.X; UserTrack.GPSY = Users.Y; baseUsers.SeavGPSLog(UserTrack, Entity); //======================================= //20151125需要对有绑卡的用户验证是否是来源与推广,增加抽奖次数 #region 人推广 if (!baseUsers.MyPId.IsNullOrEmpty()) { if (baseUsers.ShareType == 2) { //支付通道升级推广 PayConfigChange PCC = Entity.PayConfigChange.FirstOrDefault(n => n.Id == baseUsers.PayConfigId && n.State == 1 && n.ShareNumber > 0); if (PCC != null) { int count = Entity.Users.Count(n => n.CardStae == 2 && n.State == 1 && n.MyPId == baseUsers.MyPId && n.PayConfigId == baseUsers.PayConfigId && n.Id != baseUsers.Id); count++; //这里统计会漏掉当前用户的,需要增加1个。 if (count == PCC.ShareNumber) //相等的那一次调整,避免超出了还一直调整 { Users UP = Entity.Users.FirstOrDefault(n => n.Id == baseUsers.MyPId); if (PCC.CState == 1) { if (UP.Cash0 > PCC.Cash0) { UP.Cash0 = PCC.Cash0; } if (UP.ECash0 > PCC.ECash0) { UP.ECash0 = PCC.ECash0; } } if (PCC.EState == 1) { if (UP.Cash1 > PCC.Cash1) { UP.Cash1 = PCC.Cash1; } if (UP.ECash1 > PCC.ECash1) { UP.ECash1 = PCC.ECash1; } } IList <UserPay> List = Entity.UserPay.Where(n => n.UId == baseUsers.MyPId).ToList();//获取用户配置 foreach (var p in List) { PayConfigTemp PCT = Entity.PayConfigTemp.FirstOrDefault(n => n.PId == p.PId && n.PCCId == PCC.Id); //获取套餐配置 if (PCT != null) { if (PCT.State == 1) { if (p.Cost > PCT.Cost) { p.Cost = PCT.Cost; } } } } string UserPayCashName = "UserPay_" + UP.Id.ToString() + "_" + Equipment.RqType; CacheBuilder.EntityCache.Remove(UserPayCashName, null); string PayConfigChangeCashName = "PayConfigChange_" + UP.Agent + "_" + UP.Id; CacheBuilder.EntityCache.Remove(PayConfigChangeCashName, null); //Utils.WriteLog("UserPayCashName:" + UserPayCashName + " PayConfigChangeCashName:" + PayConfigChangeCashName, "ClearCache"); } } } if (baseUsers.ShareType == 1) { //增加推广抽奖次数 TurnUsers TurnUsers = Entity.TurnUsers.FirstOrNew(n => n.UId == baseUsers.MyPId); if (!TurnUsers.Id.IsNullOrEmpty()) { TurnUsers.Times++; } } #region 分享统计数 //===================================增加分享统计数=================================== //获取用户所属各级分润配置 // IList<UserPromoteGet> UserPromoteGetList = Entity.UserPromoteGet.Where(n => n.AgentID == baseUsers.Agent).OrderBy(n => n.PromoteLevel).ToList(); int MaxLevel = SysSet.GlobaPromoteMaxLevel; //获取用户各级关系,最大级不超过用户配置级数。返回数据包含当前用户,当前用户级数标识Tier为0 IList <Users> UsersList = baseUsers.GetUsersById(Entity, MaxLevel); foreach (var U in UsersList.Where(n => n.Tier > 0)) { ShareTotal ShareTotal = Entity.ShareTotal.FirstOrDefault(n => n.UId == U.Id && n.Tier == U.Tier); if (ShareTotal == null) { ShareTotal = new ShareTotal(); ShareTotal.UId = U.Id; ShareTotal.AddTime = DateTime.Now; ShareTotal.ShareNum = 1; ShareTotal.Amount = 0; ShareTotal.Profit = 0; ShareTotal.Tier = U.Tier; Entity.ShareTotal.AddObject(ShareTotal); } else { ShareTotal.ShareNum += 1; } Entity.SaveChanges(); } //===================================增加分享统计数 End=================================== #endregion } #endregion if (Card != null) { //代理商信息 baseUsers.Agent = Card.AId; baseUsers.AId = Card.AdminId; //推广信息 if (!Card.PUId.IsNullOrEmpty()) { if (baseUsers.MyPId.IsNullOrEmpty()) { //不是费率升级推广才有效 baseUsers.MyPId = Card.PUId; baseUsers.PayConfigId = 0; baseUsers.ShareType = 1; } } Card.State = 2; } } else { Code = "2021"; baseUsers.CardStae = 3;//审核失败 baseUsers.CardNum = ""; if (Card != null) { Card.State = 1; } } Entity.SaveChanges(); #endregion DataObj.Data = UserAuth.OutJson(); DataObj.Code = Code; DataObj.OutString(); }
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("[CreditCardAdd]:", "【Data】" + Data, Ex); } 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); if (UserTrack.X.IsNullOrEmpty() || UserTrack.Y.IsNullOrEmpty()) { DataObj.OutError("1000"); return; } string Token = UserCard.Token; if (!UserCard.Card.IsNullOrEmpty() && !UserCard.ValidYear.IsNullOrEmpty() && !UserCard.ValidMonth.IsNullOrEmpty() && !UserCard.CVV.IsNullOrEmpty() && !UserCard.Mobile.IsNullOrEmpty() && !UserCard.BillDay.IsNullOrEmpty() && !UserCard.BillDay.IsNullOrEmpty() && !UserCard.ValidateCode.IsNullOrEmpty()) { if (UserCard.ValidYear.Length == 4) { UserCard.ValidYear = UserCard.ValidYear.Substring(UserCard.ValidYear.Length - 2, 2); } } else { DataObj.OutError("1000"); return; } if (UserCard.Card.Length < 6) { DataObj.OutError("1000"); return; } #region 基础验证 //获取用户信息 Users baseUsers = Entity.Users.FirstOrDefault(n => n.Token == Token); if (baseUsers == null)//用户令牌不存在 { DataObj.OutError("2004"); return; } if (baseUsers.State != 1)//用户被锁定 { DataObj.OutError("2003"); return; } if (baseUsers.CardStae != 2)//未实名认证 { DataObj.OutError("2006"); return; } UserBlackList UserBlackList = Entity.UserBlackList.FirstOrDefault(UBL => UBL.CardNumber == UserCard.Card && UBL.State == 3); if (UserBlackList != null) { //提示暂不支持该卡绑定 DataObj.OutError("2017"); return; } UserCard UserCard_ = Entity.UserCard.FirstOrDefault(n => n.UId == baseUsers.Id && n.Card == UserCard.Card && n.Type == 2 && n.State == 1);//信用卡已绑定 if (UserCard_ != null) { DataObj.OutError("2015"); return; } UserCard.Card = UserCard.Card.Replace(" ", ""); string cardbin = UserCard.Card.Substring(0, 6); var BasicCardBin = this.Entity.BasicCardBin.Where(o => o.BIN == cardbin).FirstOrDefault(); if (BasicCardBin == null) { byte UsedCardType = this.GetCardType(UserCard.Card); if (UsedCardType == 0) { DataObj.OutError("7005");//查询次数用完了 return; } else if (UsedCardType != 2) { DataObj.Msg = "请使用信用卡绑定"; DataObj.OutError("1000"); return; } } else { if (BasicCardBin.CardType != 2) { DataObj.Msg = "请使用信用卡绑定"; DataObj.OutError("1000"); return; } } BasicBank BasicBank = Entity.BasicBank.FirstOrDefault(n => n.Name == UserCard.Bank); if (BasicBank == null) { DataObj.OutError("1000"); return; } else { if (BasicBank.BIN.IsNullOrEmpty()) { DataObj.Msg = "卡BIN未设置"; DataObj.OutError("1000"); return; } } #endregion UserCard.Type = 2; UserCard.BId = BasicBank.Id; UserCard.Bin = BasicBank.BIN; UserCard.UId = baseUsers.Id; UserCard.Name = baseUsers.TrueName; //======================================= UserTrack.ENo = DataObj.ENo; UserTrack.OPType = "添加信用卡"; UserTrack.GPSAddress = UserTrack.GPSAddress; UserTrack.GPSX = UserTrack.X; UserTrack.GPSY = UserTrack.Y; baseUsers.SeavGPSLog(UserTrack, Entity); //======================================= string RetString = ""; //三方接口返回数据 string bindId = string.Empty; //绑卡需记录字符串 bool IsSuccess = false; //绑卡状态 JobPayWay JobPayWay = Entity.JobPayWay.Where(n => n.State == 1 && n.GroupType == "Pay").OrderBy(n => n.Sort).FirstOrDefault(); //目前只支持一条 if (JobPayWay == null) { DataObj.Msg = "暂无可用通道"; DataObj.OutError("1000"); return; } #region 第三方鉴权 string[] JobPayWayArr = JobPayWay.QueryArray.Split(','); if (JobPayWay.DllName == "HLBPay" && JobPayWayArr.Length == 2) { #region 合利宝 string MerId = JobPayWayArr[0]; string MerKey = JobPayWayArr[1]; string postUrl = "http://pay.trx.helipay.com/trx/quickPayApi/interface.action"; string orderId = Guid.NewGuid().ToString("N"); Dictionary <string, string> map = new Dictionary <string, string>(); map.Add("P1_bizType", "QuickPayBindCard"); map.Add("P2_customerNumber", MerId); map.Add("P3_userId", "HF_" + baseUsers.Id.ToString()); //用户ID唯一 map.Add("P4_orderId", orderId); map.Add("P5_timestamp", DateTime.Now.ToString("yyyyMMddHHmmss")); map.Add("P6_payerName", baseUsers.TrueName); map.Add("P7_idCardType", "IDCARD"); //IDCARD:身份证 map.Add("P8_idCardNo", baseUsers.CardId); //身份证 map.Add("P9_cardNo", UserCard.Card); //银行卡 map.Add("P10_year", UserCard.ValidYear); //当银行卡是信用卡时必输 信用卡有效期年 map.Add("P11_month", UserCard.ValidMonth); //当银行卡是信用卡时必输 信用卡有效期月 map.Add("P12_cvv2", UserCard.CVV); //当银行卡是信用卡时必输 信用卡有效期月 map.Add("P13_phone", UserCard.Mobile); map.Add("P14_validateCode", UserCard.ValidateCode); //选填 鉴权绑卡短信接口下发给用户的短信 //签名串,把参数值拼接 string data = Utils.CreateLinkString(map, false); //MD5签名KEY string sign = ("&" + data + "&" + MerKey).GetMD5(); map.Add("sign", sign); if (map["P6_payerName"] != null) //编码 { map.Remove("P6_payerName"); map.Add("P6_payerName", HttpUtility.UrlEncode(baseUsers.TrueName)); } string send_data = Utils.CreateLinkString(map); RetString = Utils.PostRequest(postUrl, send_data, "utf-8"); //================================================ //这里记录日志 JobLog JobLog = new JobLog(); JobLog.PayWay = JobPayWay.Id; JobLog.ReqNo = orderId; JobLog.TNum = baseUsers.Mobile; JobLog.Trade = ""; JobLog.Amount = 0; JobLog.Way = "CardAdd"; JobLog.AddTime = DateTime.Now; JobLog.Data = RetString; JobLog.State = 1; Entity.JobLog.AddObject(JobLog); Entity.SaveChanges(); //================================================ JObject obj = new JObject(); try { obj = (JObject)JsonConvert.DeserializeObject(RetString); } catch (Exception) { Utils.WriteLog("[CreditCardAdd]:" + RetString, "HLBPayError"); DataObj.OutError("1000"); return; } string rt2_retCode = obj["rt2_retCode"].ToString(); string rt3_retMsg = obj["rt3_retMsg"].ToString(); if (rt2_retCode == "0000") { string rt7_bindStatus = obj["rt7_bindStatus"].ToString(); //绑卡状态结果 /成功/失败 if (rt7_bindStatus == "SUCCESS") { IsSuccess = true; bindId = obj["rt10_bindId"].ToString(); } else { DataObj.Msg = rt3_retMsg; DataObj.OutError("1010"); return; } } else { DataObj.Msg = rt3_retMsg; DataObj.OutError("1010"); return; } #endregion } else if (JobPayWay.DllName == "HFJSPay" && JobPayWayArr.Length == 3) { #region 结算系统 string Code = JobPayWayArr[0]; string CodeKey = JobPayWayArr[1]; string PayWayCode = JobPayWayArr[2]; JobUserPay JobUserPay = Entity.JobUserPay.FirstOrDefault(n => n.UId == baseUsers.Id && n.PayWay == JobPayWay.Id); fastcardauthModel fastcardauthModel = new fastcardauthModel() { bankcard = UserCard.Card, mcode = UserCard.ValidateCode, merid = JobUserPay.MerId, paywaycode = PayWayCode }; ErrorCode errorCode = HFJSTools.fastcardauth(fastcardauthModel, JobUserPay.MerKey); if (errorCode.respcode == "00") { IsSuccess = true; } else { DataObj.Msg = errorCode.respmsg; DataObj.OutError("1010"); return; } #endregion } #endregion if (IsSuccess) { //系统要限制每条通道每张卡只能存在一个授权,所以这里要处理 UserCardOpen UserCardOpen = Entity.UserCardOpen.FirstOrDefault(n => n.CardNum == UserCard.Card && n.UId == baseUsers.Id && n.PayWay == JobPayWay.Id); if (UserCardOpen == null) { UserCardOpen = new UserCardOpen() { UId = baseUsers.Id, CardNum = UserCard.Card, Mobile = UserCard.Mobile, PayWay = JobPayWay.Id, State = 1, STime = new DateTime(1990, 1, 1), ETime = new DateTime(2099, 1, 1), Token = bindId, RqData = RetString }; Entity.UserCardOpen.AddObject(UserCardOpen); } else { UserCardOpen.Mobile = UserCard.Mobile; UserCardOpen.State = 1; UserCardOpen.Token = bindId; UserCardOpen.RqData = RetString; } UserCard.Pic = string.Empty; UserCard.ScanNo = string.Empty; UserCard.State = 1; UserCard.Deposit = string.Empty; Entity.UserCard.AddObject(UserCard); Entity.SaveChanges(); } DataObj.OutError("0000"); }
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("[OrderDaiLi_3_0]:", "【Data】" + Data, Ex); } if (json == null) { DataObj.OutError("1000"); return; } DaiLiOrder DaiLiOrder = new DaiLiOrder(); DaiLiOrder = JsonToObject.ConvertJsonToModel(DaiLiOrder, json); UserTrack UserTrack = new UserTrack(); UserTrack = JsonToObject.ConvertJsonToModel(UserTrack, json); //设置开通等级 if (DaiLiOrder.Tier.IsNullOrEmpty()) { DataObj.OutError("1000"); return; } if (DaiLiOrder.X.IsNullOrEmpty() || DaiLiOrder.Y.IsNullOrEmpty()) { DataObj.OutError("1000"); return; } //获取用户信息 Users baseUsers = Entity.Users.FirstOrDefault(n => n.Token == DaiLiOrder.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; } //获取分支机构信息 //AgentType AgentType = Entity.AgentType.FirstOrNew(n => n.Id == DaiLiOrder.Levels); //if (AgentType.Id.IsNullOrEmpty()) { // DataObj.OutError("1000"); // return; //} //if (AgentType.AgentID != baseUsers.Agent) { // //用户代理与开通等级代理不同 // DataObj.OutError("1000"); // return; //} SysAgent SysAgent = Entity.SysAgent.FirstOrNew(o => o.LinkMobile == baseUsers.UserName); if (!SysAgent.LinkMobile.IsNullOrEmpty()) { if (SysAgent.Tier < 5 || DaiLiOrder.Tier >= SysAgent.Tier) { DataObj.OutError("9000"); return; } } DaiLiOrder.UId = baseUsers.Id; DaiLiOrder.UserName = baseUsers.UserName; DaiLiOrder.TureName = baseUsers.TrueName; DaiLiOrder.Agent = baseUsers.Agent; DaiLiOrder.AId = baseUsers.AId; // DaiLiOrder.Amoney = AgentType.RegisterFee; DaiLiOrder.OrderState = 1; DaiLiOrder.PayState = 0; DaiLiOrder.AddTime = DateTime.Now; DaiLiOrder.SameGet = 0; //这里是利润计算========== DaiLiOrder.AIdGet = Convert.ToDouble(DaiLiOrder.Amoney); //总利润 DaiLiOrder.AgentGet = 0; //分支机构佣金设置为0,待分润计算后再写入 DaiLiOrder.AgentState = 0; //写入订单总表 Orders Orders = new Orders(); Orders.UId = DaiLiOrder.UId; Orders.TName = "自助开通代理"; Orders.RUId = 0; Orders.RName = string.Empty; Orders.TType = 10; Orders.TState = 1; Orders.Amoney = DaiLiOrder.Amoney; Orders.Poundage = 0; Orders.AddTime = DateTime.Now; Orders.PayState = 0; Orders.PayWay = 15; Orders.Agent = DaiLiOrder.Agent; Orders.AgentState = 0; Orders.AId = DaiLiOrder.AId; Orders.FId = 0; string OrderAddress = DaiLiOrder.OrderAddress; if (OrderAddress.IsNullOrEmpty()) { OrderAddress = Utils.GetAddressByGPS(DaiLiOrder.X, DaiLiOrder.Y); } Orders.OrderAddress = OrderAddress; Orders.X = DaiLiOrder.X; Orders.Y = DaiLiOrder.Y; Entity.Orders.AddObject(Orders); Entity.SaveChanges(); Entity.Refresh(RefreshMode.StoreWins, Orders); DaiLiOrder.OId = Orders.TNum; Entity.DaiLiOrder.AddObject(DaiLiOrder); Entity.SaveChanges(); //======================================= UserTrack.ENo = DataObj.ENo; UserTrack.OPType = Orders.PayName; UserTrack.UserName = Orders.TNum; UserTrack.GPSAddress = Orders.OrderAddress; UserTrack.GPSX = Orders.X; UserTrack.GPSY = Orders.Y; Orders.SeavGPSLog(UserTrack, Entity); //======================================= Orders.SendMsg(Entity);//发送消息类 //======================================= Orders.Cols = "TNum,PayId,Amoney,PayState"; string TNum = Orders.TNum; string Sign = (TNum + "NewPay").GetMD5().Substring(8, 8); // Orders.PayId = PayPath + "/pay/" + TNum + ".html?sign=" + Sign; Orders.PayId = PayPath + "/mobile/orders/GoPay.html?sign=" + Sign + "&tnum=" + TNum; //======================================= //获取最佳支付通道 #region 结算中心 //IList<PayConfig> PayConfigList = Entity.PayConfig.Where(n => n.State == 1).OrderBy(n => n.Cost).ToList(); //IList<SysControl> SysControlList = Entity.SysControl.OrderBy(n => n.Sort).ToList();//SysControl //IList<SysControl> SCList = new List<SysControl>(); //IList<PayConfig> PCList = new List<PayConfig>(); //foreach (var p in SysControlList) //{ // SysControl T = p.ChkState(); // if (T.State == 1) // { // SCList.Add(p); // } //} //foreach (var p in PayConfigList) //{ // SysControl T = SCList.FirstOrDefault(n => n.PayWay == p.Id); // if (T != null) // { // if (Orders.Amoney >= (decimal)T.SNum && Orders.Amoney <= (decimal)T.ENum) // { // PCList.Add(p); // } // } //} //IList<PayConfig> CashList = PCList.Where(n => n.GroupType == "Cash").OrderBy(n => n.Cost).ToList(); //IList<PayConfig> BankList = PCList.Where(n => n.GroupType == "Bank").OrderBy(n => n.Cost).ToList(); //IList<PayConfig> WxList = PCList.Where(n => n.GroupType == "WeiXin").OrderBy(n => n.Cost).ToList(); //IList<PayConfig> AliList = PCList.Where(n => n.GroupType == "AliPay").OrderBy(n => n.Cost).ToList(); //IList<PayConfig> List = new List<PayConfig>(); //if (CashList.Count > 0) //{ // PayConfig Cash = new PayConfig(); // Cash.GroupType = "Cash"; // Cash.Name = "余额支付"; // Cash.State = 1; // Cash.Cols = "Name,GroupType,State"; // List.Add(Cash); //} //if (BankList.Count > 0) //{ // PayConfig Bank = new PayConfig(); // Bank.GroupType = "Bank"; // Bank.Name = "银联支付"; // Bank.State = 1; // Bank.Cols = "Name,GroupType,State"; // List.Add(Bank); //} //if (WxList.Count > 0) //{ // PayConfig Wx = new PayConfig(); // Wx.GroupType = "WeiXin"; // Wx.Name = "微信支付"; // Wx.State = 0; // Wx.Cols = "Name,GroupType,State"; // List.Add(Wx); //} //if (AliList.Count > 0) //{ // PayConfig Ali = new PayConfig(); // Ali.GroupType = "AliPay"; // Ali.Name = "支付宝支付"; // Ali.State = 1; // Ali.Cols = "Name,GroupType,State"; // List.Add(Ali); //} //string PCString = List.EntityToJson(); //JArray PCJson = (JArray)JsonConvert.DeserializeObject(PCString); //Orders.PayConfig = PCJson; //Orders.Cols += ",PayConfig"; #endregion //Orders.paycon DataObj.Data = Orders.OutJson(); DataObj.Code = "0000"; DataObj.OutString(); }
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("[AutoCash]:", "【Data】" + Data, Ex); } if (json == null) { DataObj.OutError("1000"); return; } Users Users = new Users(); Users = JsonToObject.ConvertJsonToModel(Users, json); UserTrack UserTrack = new UserTrack(); UserTrack = JsonToObject.ConvertJsonToModel(UserTrack, json); if (Users.PassWord.IsNullOrEmpty() || Users.Token.IsNullOrEmpty())//使用PassWord字段 { DataObj.OutError("1000"); return; } if (Users.PassWord.Length < 6)//6位及以上 { DataObj.OutError("1000"); return; } if (Users.AutoCash != 1 && Users.AutoCash != 0) { DataObj.OutError("1000"); return; } if (Users.X.IsNullOrEmpty() || Users.Y.IsNullOrEmpty()) { //DataObj.OutError("1000"); //return; } if (Users.AutoCash == 1) { if (Users.PassWord.IsNullOrEmpty() || Users.Token.IsNullOrEmpty() || Users.AutoCashMoney.IsNullOrEmpty() || Users.AutoCashBank.IsNullOrEmpty())//使用PassWord字段 { DataObj.OutError("1000"); return; } } #region 校验 //获取用户信息 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.MiBao != 1)//未设置支付密码 { DataObj.OutError("2008"); return; } if (baseUsers.AutoBao == 1) { DataObj.OutError("6072"); return; } if (baseUsers.PayLock == 1)//密码错误太多次锁定 { DataObj.OutError("2050"); return; } if (baseUsers.StopPayState == 2)//禁止支付 { DataObj.OutError("6060"); return; } SysSet SysSet = Entity.SysSet.FirstOrNew(); if (Users.AutoCash == 1) { if (Users.AutoCashMoney < SysSet.AutoCashMoney) { DataObj.Msg = "自动提现金额不能小于" + SysSet.AutoCashMoney.ToMoney() + "元"; DataObj.OutError("6074"); return; } } //这里是执行指纹解锁 bool IfCheckOk = true; if (Users.PassWord.Substring(0, 3) == "HF_") { string PassWord = Users.PassWord; PassWord = PassWord.Replace("HF_", ""); string Token = baseUsers.Token; Token = Token + "GoodPay"; string Md5Token = Token.GetMD5().ToUpper(); string Pass = Md5Token.Substring(0, 4) + Md5Token.Substring(Md5Token.Length - 4, 4); if (Pass != PassWord) { IfCheckOk = false; } } else if (baseUsers.PayPwd != Users.PassWord.GetPayMD5()) { //原支付密码错误 IfCheckOk = false; } if (!IfCheckOk) { //付密码错误 baseUsers.PayErr++; if (baseUsers.PayErr >= SysSet.PayLock) { baseUsers.PayLock = 1; } Entity.SaveChanges(); Users Out = new Users(); Out.PayErr = SysSet.PayLock - baseUsers.PayErr; Out.Cols = "PayErr"; DataObj.Data = Out.OutJson(); DataObj.Code = "2010"; DataObj.OutString(); return; } baseUsers.PayErr = 0; #endregion string optype = "关闭"; if (Users.AutoCash == 1) { UserCard UserCard = Entity.UserCard.FirstOrDefault(n => n.Id == Users.AutoCashBank && n.State == 1); if (UserCard == null) { DataObj.OutError("6075"); return; } if (UserCard.Name.IsNullOrEmpty() || UserCard.Card.IsNullOrEmpty() || UserCard.Bin.IsNullOrEmpty()) { DataObj.OutError("6076"); return; } optype = "开启"; } //修改用户信息 baseUsers.AutoCash = Users.AutoCash; baseUsers.AutoCashMoney = Users.AutoCashMoney; baseUsers.AutoCashBank = Users.AutoCashBank; Entity.SaveChanges(); //添加跟踪信息 //======================================= UserTrack.ENo = DataObj.ENo; UserTrack.OPType = optype + "自动提现"; UserTrack.GPSAddress = Users.RegAddress; UserTrack.GPSX = Users.X; UserTrack.GPSY = Users.Y; baseUsers.SeavGPSLog(UserTrack, Entity); //======================================= DataObj.Data = ""; DataObj.Code = "0000"; DataObj.OutString(); }