public string UpdateBankMobile(int cid = 0, int UserId = 0, int BankID = 0, string mobile = "") { userEventDao.UserEventInit(cid, UserId, Ip.GetClientIp(), 0, "Users", "UpdateBankMobile", $"{{BankID:{BankID},mobile:{mobile},version:{TQuery.GetString("version")}}}"); #region 验证 if (!TypeParse.IsMobile(mobile)) { return(ApiReturnStr.getError(-100, "预留手机号格式验证失败")); } var model = userBankCardDao.Single(BankID); if (model == null) { return(ApiReturnStr.getApiData(-100, "BankID记录不存在")); } if (model.UserId != UserId) { return(ApiReturnStr.getApiData(-100, "该银行卡不属于此账户下")); } #endregion model.Mobile = mobile; model.UTime = DateTime.Now; bool flag = userBankCardDao.Update(model); return(ApiReturnStr.getError(flag ? 0 : -100, flag ? "修改成功" : "修改失败")); }
// // 摘要: // 在执行操作方法之前由 ASP.NET MVC 框架调用。 // // 参数: // ctx: // 筛选器上下文。 public override void OnActionExecuting(ActionExecutingContext ctx) { IsoDateTimeConverter timeFormat = new IsoDateTimeConverter(); timeFormat.DateTimeFormat = "yyyy-MM-dd HH:mm:ss"; IDictionary <string, object> param = ctx.ActionParameters; string jsoncallback = ctx.HttpContext.Request["jsoncallback"]; string action = ctx.ActionDescriptor.ControllerDescriptor.ControllerName + "/" + ctx.ActionDescriptor.ActionName; string userName = (ctx.HttpContext.Request["itormName"] as string); string version = (ctx.HttpContext.Request["version"] as string);//版本号 string encode = (ctx.HttpContext.Request["encode"] as string); string sign = (ctx.HttpContext.Request["sign"] as string); //if (action.ToLower() == "debug/tool" || action.ToLower() == "pay/cashier") //{ // return; //} //if (userName == "itormios") //{ // Logs.WriteLog($"action:{action}", "d:\\Log\\", "OnActionExecuting"); //} string arrStr = System.Web.Configuration.WebConfigurationManager.AppSettings["AccessLogin"] != null ? System.Web.Configuration.WebConfigurationManager.AppSettings["AccessLogin"].ToString() : ""; var arr = arrStr.Split(','); if (arr.Any(s => s.ToLower().Equals(action.ToLower()))) { return; //不需要验证 } if (action.ToLower().Contains("debug") || action.ToLower().Contains("invite")) { return; } string[] reqAllKeys = HttpContext.Current.Request.Params.AllKeys;//获取所有传过来的key //param.Add("version", version);//强制版本号参与签名 StringBuilder strParam = new StringBuilder(""); foreach (var key in param.Keys) { //映射接口参数必须同request参数匹配 if (key != "userName" && key != "sign" && key != "version" && key != "base64" && reqAllKeys.Any(m => m == key)) { if (encode == "1") { strParam.AppendFormat("{0}={1}&", key, System.Web.HttpUtility.UrlEncode(param[key].ToString())); } else { strParam.AppendFormat("{0}={1}&", key, param[key]); } } } if (encode == "1") { strParam.AppendFormat("{0}={1}&", "encode", "1"); } string msg = ""; int cid = 0; if (false == Login(userName, sign, action, strParam.ToString().TrimEnd('&'), version, out msg, out cid)) { #region 签名错误 string[] paramtersKey = System.Web.HttpContext.Current.Request.Form.AllKeys; var sortedParamtersKey = from s in paramtersKey orderby s ascending select s; StringBuilder str = new StringBuilder(); str.Append("{"); foreach (string key in sortedParamtersKey) { str.AppendFormat("\"{0}\":\"{1}\",", key, System.Web.HttpContext.Current.Request.Form[key].Trim()); } if (str.Length > 0) { str.Remove(str.Length - 1, 1);//移除最后一个逗号 } str.Append("}"); //返回后日志记录 Logs.WriteLog($"签名错误参数:userName:{userName},action:{action},sign:{sign},strParam:{strParam.ToString().TrimEnd('&')},version:{version},全部参数{str.ToString()}", "d:\\Log\\System", "签名错误"); #endregion //var jsoncList = new jsonCommModelList<object> //{ // backStatus = 2, // msg = msg, //}; var result = ApiReturnStr.getError(-2, msg); ctx.HttpContext.Response.Clear(); ctx.HttpContext.Response.Write(result); ctx.HttpContext.Response.End(); ctx.Result = new EmptyResult(); } else { ctx.ActionParameters["cid"] = cid; ctx.ActionParameters["version"] = version; ctx.HttpContext.Response.Clear(); ctx.HttpContext.Response.ContentType = "text/plain"; ctx.HttpContext.Response.ContentEncoding = System.Text.UTF8Encoding.UTF8; } }
// GET: Error public string Index() { return(ApiReturnStr.getError(1, "404找不到该地址")); }
//1.0.0 public string ReceiveApi2(int cid = 0, int UserId = 0, decimal Amount = 0m, int BankID = 0, int PayType = 0) { Logs.WriteLog($"ReceiveApi2,cid:{cid},UserId:{UserId},Amount:{Amount},BankID:{BankID},PayType:{PayType}", "d:\\Log\\Yeepay", "ReceiveApi2"); userEventDao.UserReceiveApi2(cid, UserId, Ip.GetClientIp(), 0, TQuery.GetString("version"), Amount, BankID, PayType); #region 参数验证 if (UserId <= 0) { return(ApiReturnStr.getError(-100, "UserId参数错误")); } if (Amount < 500) { return(ApiReturnStr.getError(-100, "收款金额不能小于500元")); } var ubk = userBankCardDao.Single(BankID); if (ubk == null) { return(ApiReturnStr.getError(-100, "卡记录不存在")); } //卡数据验证 var validateBankResult = userBankCardDao.ValidateBank(ubk); if (validateBankResult.backState != 0) { return(ApiReturnStr.getError(-100, validateBankResult.message)); } var model = userDao.Single(UserId); if (model == null || model.UserId <= 0) { return(ApiReturnStr.getError(-100, "用户不存在")); } JObject data = new JObject(); data["PayUrl"] = ""; string msg = ""; #region 测试通道 //Thread.Sleep(3000); //int ChannelType = 4; //data["ChannelType"] = ChannelType; //data["BankID"] = BankID; //return ApiReturnStr.getApiData(-200, $"快捷协议未开通(03-{ChannelType})", data); #endregion #region 择通道 int ChannelType = 0; //data["ChannelType"] = ChannelType; data["BankID"] = BankID; var option = SelectOptionChannel.Optimal(Amount, BankID, PayType); if (option.backState == 0) { ChannelType = option.Data; data["ChannelType"] = ChannelType; } else { if (option.Data == 2) { return(ApiReturnStr.getError(-100, "通道升级中,敬请期待")); } return(ApiReturnStr.getError(-100, option.message)); } data["ChannelType"] = option.Data; #endregion if (Amount > 20000) { return(ApiReturnStr.getError(-100, "收款金额不能超过20000元")); } Logic.ChannelType ct = (Logic.ChannelType)ChannelType; switch (ct) { case Logic.ChannelType.易宝: #region 易宝逻辑 var yeepayUser = yeepayUserDao.Single(" UserId=@UserId ", new { UserId }); if (yeepayUser == null || model.UserId <= 0) { return(ApiReturnStr.getError(-100, "未开通子商户功能")); } if (yeepayUser.RateState1 == 0 || yeepayUser.RateState3 == 0 || yeepayUser.RateState4 == 0 || yeepayUser.RateState5 == 0) { return(ApiReturnStr.getError(-100, "费率未设置")); } if (yeepayUser.IsAudit == 0) { return(ApiReturnStr.getError(-100, "子商户未审核通过")); } var result = YeepayDepository.ReceiveApi(UserId, Amount, cid, BankID); if (result.backState == 0) { data["PayUrl"] = result.urlAES; return(ApiReturnStr.getApiData(data)); } msg = result.message; #endregion break; case Logic.ChannelType.荣邦科技积分: case Logic.ChannelType.荣邦科技无积分: case Logic.ChannelType.荣邦3: if (ChannelType == 2) { return(ApiReturnStr.getError(-100, "通道升级中,敬请期待")); } #region 荣邦逻辑 #region 验证 if (Amount < 500) { return(ApiReturnStr.getError(-100, "此通道要求支付金额不得小于500元!")); } //验证是否开户 if (!masgetUserDao.QueryIsExist(UserId, ChannelType)) { return(ApiReturnStr.getApiData(-200, $"快捷协议未开通(01-{ChannelType})", data)); //通道未开户 } if (!masgetUserDao.QueryIsOpen(UserId, ChannelType)) { return(ApiReturnStr.getApiData(-200, $"快捷协议未开通(02-{ChannelType})", data)); //通道未入驻 } //验证快捷协议是否开通 if (!bankTreatyApplyDao.QueryTreatycodeIsOpen(BankID, ChannelType)) { return(ApiReturnStr.getApiData(-200, $"快捷协议未开通(03-{ChannelType})", data)); } #endregion //执行请求 var resultBackPay = MasgetDepository.BackPay(BankID, Amount, cid, ct); if (resultBackPay.backState == 0) { data["PayUrl"] = resultBackPay.url; return(ApiReturnStr.getApiData(0, "请求成功,待确认支付", data)); } else if (resultBackPay.backState == 8401) { return(ApiReturnStr.getError(-8401, "通道暂无额度")); } else { return(ApiReturnStr.getError(-100, resultBackPay.message)); } #endregion case Logic.ChannelType.腾付通: var resultTeng = TengDepository.CreatePayCashier(UserId, cid, Amount, BankID); msg = resultTeng.message; if (resultTeng.backState == 0) { data["PayUrl"] = resultTeng.Data["url"]; return(ApiReturnStr.getApiData(data)); } break; case Logic.ChannelType.米刷: var resultMi = MiShuaDepository.PayDzero(BankID, cid, Amount); msg = resultMi.message; if (resultMi.backState == 0 && resultMi.Data.status == "00") { data["PayUrl"] = resultMi.Data.tranStr; return(ApiReturnStr.getApiData(data)); } break; default: break; } #endregion return(ApiReturnStr.getError(-100, msg)); }
/// <summary> /// 子商户注册 /// </summary> /// <param name="cid"></param> /// <param name="UserId"></param> /// <param name="IdCard">身份证号码</param> /// <param name="RealName">真实姓名</param> /// <param name="BankName">银行名称</param> /// <param name="BankAccountNumber">银行卡号码</param> /// <param name="AreaCode">地区编码</param> /// <param name="BankCardPhoto">银行卡照片</param> /// <param name="IdCardPhoto">身份证照片</param> /// <param name="IdCardBackPhoto">身份证背面照片</param> /// <param name="PersonPhoto">三合一照片</param> /// <returns></returns> public string Register(int cid = 0, int UserId = 0, string IdCard = "", string RealName = "", string BankName = "", string BankAccountNumber = "", string AreaCode = "", int BankCardPhoto = 0, int IdCardPhoto = 0, int IdCardBackPhoto = 0, int PersonPhoto = 0) { //Thread.Sleep(3000); //return ApiReturnStr.getError(-100, "注册失败,测试终点"); Logs.WriteLog($"Register,cid:{cid},UserId:{UserId},IdCard:{IdCard},RealName:{RealName},BankName:{BankName},BankAccountNumber:{BankAccountNumber},AreaCode:{AreaCode},BankCardPhoto:{BankCardPhoto},IdCardPhoto:{IdCardPhoto},IdCardBackPhoto:{IdCardBackPhoto},PersonPhoto:{PersonPhoto}", "d:\\Log\\Yeepay", "Register"); if (UserId == 100103) { Thread.Sleep(3000); Users m = userDao.Single(UserId); m.IsRealState = 1; m.RealName = "啊啊啊"; userDao.Update(m); return(ApiReturnStr.getError(0, "开户成功")); } #region 参数验证 if (UserId <= 0) { return(ApiReturnStr.getError(-100, "UserId参数错误")); } if (!RegexHelper.IsMatch(RealName, @"^\s*[\u4e00-\u9fa5]{1,}[\u4e00-\u9fa5.·]{0,15}[\u4e00-\u9fa5]{1,}\s*$")) { return(ApiReturnStr.getError(-100, "请输入真实的姓名!")); } if (!TypeParse.IsIdentity(IdCard)) { return(ApiReturnStr.getError(-100, "身份证号格式错误!")); } if (!TypeParse.IsChinese(BankName)) { return(ApiReturnStr.getError(-100, "银行卡开户行有误")); } if (string.IsNullOrEmpty(BankAccountNumber) || !(BankAccountNumber.Length > 13 && BankAccountNumber.Length < 21)) { return(ApiReturnStr.getError(-100, "银行卡卡号有误")); } if (!BankCardBindHelper.ValidateBank(BankName, BankAccountNumber)) { return(ApiReturnStr.getError(-100, "银行卡卡bin识别失败")); } if (string.IsNullOrEmpty(AreaCode) || AreaCode.Length != 4) { return(ApiReturnStr.getError(-100, "请选择地区码")); } if (BankCardPhoto == 0) { return(ApiReturnStr.getError(-100, "银行卡正面照未上传")); } if (IdCardPhoto == 0) { return(ApiReturnStr.getError(-100, "身份证正面照未上传")); } if (IdCardBackPhoto == 0) { return(ApiReturnStr.getError(-100, "身份证背面照未上传")); } if (PersonPhoto == 0) { PersonPhoto = IdCardPhoto; //取消手持三合一 } var user = userDao.Single(" IdCard=@IdCard and IsRealState=1", new { IdCard }); if (user != null && user.UserId > 0) { return(ApiReturnStr.getError(-100, "该身份证号码已认证")); } var model = userDao.Single(UserId); if (model == null || model.UserId <= 0) { return(ApiReturnStr.getError(-100, "用户不存在")); } var cnt = yeepayLogDao.Count(string.Format("typeId={0} and UserId={1} and DateDiff(dd,CTime,getdate())=0 ", (int)YeepayType.子商户注册, UserId)); if (cnt > 4) { return(ApiReturnStr.getError(-100, "当日开户次数超过5次,请次日再操作!")); } #endregion #region 组装子商户报文实体 reqRegisterModel yeepayRegModel = new reqRegisterModel(); yeepayRegModel.signedName = RealName; yeepayRegModel.idCard = IdCard; yeepayRegModel.bankAccountNumber = BankAccountNumber; yeepayRegModel.bankName = BankName.ConvertBank();//转换易宝可识别的银行 yeepayRegModel.areaCode = AreaCode; #endregion //易宝子商户注册 var result = YeepayDepository.Register(yeepayRegModel, UserId, cid, BankCardPhoto, IdCardPhoto, IdCardBackPhoto, PersonPhoto); //事件日志 userEventDao.RealNameAuthentication(cid, UserId, Ip.GetClientIp(), IdCard, RealName, result.backState == 0 ? 1 : 0, TQuery.GetString("version")); return(ApiReturnStr.getError(result.backState, result.backState == 0 ? "开户成功" : result.message)); }
/// <summary> /// 发送短信验证码 /// </summary> /// <returns></returns> public string SendMsgCode(int cid = 0, string mobile = "", string vcode = "", string guid = "") { #region 验证 if (!ITOrm.Utility.StringHelper.TypeParse.IsMobile(mobile)) { return(ApiReturnStr.getError(-100, "手机号格式验证失败")); } if (guid.Length != 36) { return(ApiReturnStr.getError(-100, "唯一标识错误")); } if (vcode.Trim().Length != 4) { return(ApiReturnStr.getError(-100, "验证码错误")); } string imgKey = ITOrm.Utility.Const.Constant.forget_img_code + guid; if (!ITOrm.Utility.Cache.MemcachHelper.Exists(imgKey)) { return(ApiReturnStr.getError(-101, "图形验证码过期")); } string cacheImgCode = ITOrm.Utility.Cache.MemcachHelper.Get(imgKey).ToString(); if (vcode.Trim().ToLower() != cacheImgCode.ToLower()) { return(ApiReturnStr.getError(-100, "图形验证码错误")); } var modelUsers = userDao.Single(" mobile=@mobile ", new { mobile }); if (modelUsers == null || modelUsers.UserId == 0) { return(ApiReturnStr.getError(-100, "该手机号未注册")); } if (sendMsgDao.ValidateForgetCnt(mobile)) { return(ApiReturnStr.getError(-100, "验证码发送次数超限")); } #endregion var regGuid = Util.GetGUID; //发送短信 var resultMsg = SystemSendMsg.Send(Logic.EnumSendMsg.忘记密码短信, mobile); SendMsg model = new SendMsg(); model.Context = resultMsg.content; model.CTime = DateTime.Now; model.TypeId = (int)Logic.EnumSendMsg.忘记密码短信; model.IP = ITOrm.Utility.Client.Ip.GetClientIp(); model.Merchant = resultMsg.Merchant; model.Mobile = mobile; model.Platform = cid; model.Service = "forget"; model.RelationId = resultMsg.relationId; model.State = resultMsg.backState ? 2 : 1; model.UTime = DateTime.Now; int result = sendMsgDao.Insert(model); if (resultMsg.backState && result > 0) { #region 销毁 ITOrm.Utility.Cache.MemcachHelper.Delete(imgKey); #endregion string key = Constant.forget_mobile_code + regGuid; var cacheData = new JObject(); cacheData["mobile"] = mobile; cacheData["code"] = resultMsg.code; MemcachHelper.Set(key, cacheData.ToString(), ITOrm.Utility.Const.Constant.mobile_code_expires); var data = new JObject(); data["forgetGuid"] = regGuid; if (Constant.IsDebug) { data["code"] = resultMsg.code; } return(ApiReturnStr.getApiData(0, "发送成功", data)); } return(ApiReturnStr.getApiData(-100, "发送失败")); }
public string UpImg() { int cid = 0; int UserId = 0; string dic = ""; try { HttpRequestBase request = HttpContext.Request; Stream stream = request.InputStream; string json = string.Empty; string responseJson = string.Empty; if (stream.Length != 0) { StreamReader streamReader = new StreamReader(stream); json = streamReader.ReadToEnd(); } JObject obj = JObject.Parse(json); string base64 = obj["base64"].ToString(); cid = obj["cid"].ToInt(); UserId = obj["UserId"].ToInt(); dic = obj["dic"].ToString(); //base64 = "/9j/4AAQSkZJRgABAQEAYABgAAD/4QA6RXhpZgAATU0AKgAAAAgAA1EQAAEAAAABAQAAAFERAAQAAAABAAAAAFESAAQAAAABAAAAAAAAAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAZACMDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDuKKWkr6A+JCilpKBiYoo4ooAfSU6kpAJS4opT0oGhtFLRQB//2Q=="; if (base64.Length < 100) { return(ApiReturnStr.getError(-100, "图片太小,不能作为照片上传。")); } var fileLength = Convert.ToInt32(base64.Length - (base64.Length / 8) * 2);//文件字节 if (fileLength >= 1024 * 1024 * 2) { return(ApiReturnStr.getError(-100, "上传图片大小不能超过2M。")); } string path = "upload/" + dic + "/" + DateTime.Now.ToString("yyyyMMdd") + "/"; string dicPath = Server.MapPath("~/" + path); if (!Directory.Exists(dicPath))//如果没有文件夹则创建 { System.IO.Directory.CreateDirectory(dicPath); } string file_ex = ".jpg"; string url2 = Constant.StaticHost + path; //文件名 string fileName = DateTime.Now.ToString("HHmmssfff"); byte[] bmpBytes = Convert.FromBase64String(base64); //完整地址 string aUrl = url2 + fileName + file_ex; if (aUrl.Length > 10) { MemoryStream ms = new MemoryStream(bmpBytes); Bitmap bmp = new Bitmap(ms); bmp.Save(dicPath + fileName + file_ex, System.Drawing.Imaging.ImageFormat.Jpeg); } JObject data = new JObject(); data["ImgUrl"] = aUrl; data["fileLength"] = fileLength; data["filename"] = fileName + file_ex; data["Url"] = path + fileName + file_ex; return(ApiReturnStr.getApiData(0, "上传成功", data)); } catch (Exception ex) { Logs.WriteLog(string.Format("static=UpImg,cid:{0},UserId:{1},ip:{2},ex:{3}", cid, UserId, Ip.GetClientIp(), ex.Message), "d:\\Log\\Upload", "UpImg"); return(ApiReturnStr.getError(-100, "上传图片失败,请稍后再试。")); } }
public string QueryPayRecordList(int cid = 0, int UserId = 0, int pageIndex = 1, int pageSize = 10, int State = 0) { #region 验证参数 if (UserId <= 0) { return(ApiReturnStr.getError(-100, "用户ID不能为0")); } if (pageIndex < 1) { return(ApiReturnStr.getError(-100, "页码不能小于1")); } if (pageSize < 1) { return(ApiReturnStr.getError(-100, "每页数量不能小于1")); } #endregion int totalCount = 0; object param = null; string where = "UserId=@UserId "; if (State != -200) { where += " and State=@State "; param = new { UserId, State }; } else { //where += " and State<>0 "; param = new { UserId }; } var listpay = payRecordDao.GetPaged(pageSize, pageIndex, out totalCount, where, param, "order by CTime desc"); JArray list = new JArray(); if (listpay != null && listpay.Count > 0) { foreach (var item in listpay) { //收款记录相关 JObject obj = new JObject(); obj["OrderNo"] = item.ID.ToString(); obj["Amount"] = item.Amount.ToString("F2"); obj["Fee"] = item.Fee.ToString("F2"); obj["Rate"] = item.Rate.perCent(); obj["CTime"] = item.CTime.ToString("yyyy-MM-dd HH:mm:ss"); obj["PayTime"] = item.State == 10 ? item.PayTime.ToString("yyyy-MM-dd HH:mm:ss") : "--"; obj["PayState"] = item.State; obj["PayStateTxt"] = item.State == 10?"支付成功":((PayRecordState)item.State).ToString(); obj["Message"] = item.State == 10 ? "" : item.Message; obj["BankCode"] = item.BankCode; obj["BankCard"] = Util.GetHiddenString(item.BankCard, 6, 4); //结算记录相关 obj["WithDrawAmount"] = item.WithDrawAmount.ToString("F2"); obj["ActualAmount"] = item.ActualAmount.ToString("F2"); obj["Fee3"] = item.Fee3.ToString("F2"); obj["DrawBankCard"] = item.DrawBankCard; obj["DrawState"] = item.DrawState; obj["DrawStateTxt"] = ((WithDrawState)item.DrawState).ToString(); obj["HandleTime"] = "--"; if ((WithDrawState)item.DrawState == WithDrawState.打款成功) { obj["HandleTime"] = item.HandleTime.ToString("yyyy-MM-dd HH:mm:ss"); } list.Add(obj); } } return(ApiReturnStr.getApiDataListByPage(list, totalCount, pageIndex, pageSize)); }
public string BankCardActivate(int cid = 0, int UserId = 0, int BankID = 0, int ChannelType = 0) { userEventDao.BankCardActivate(cid, UserId, Ip.GetClientIp(), 0, TQuery.GetString("version"), BankID, ChannelType); Logic.ChannelType ct = (Logic.ChannelType)ChannelType; var ubk = userBankCardDao.Single(BankID); //Thread.Sleep(3000); //return ApiReturnStr.getError(0, "验证码发送成功"); if (ubk == null) { return(ApiReturnStr.getError(-100, "银行卡不存在")); } if (ubk.UserId != UserId) { return(ApiReturnStr.getError(-100, "此卡不属于该用户")); } switch (ct) { case Logic.ChannelType.易宝: return(ApiReturnStr.getError(-100, "易宝通道无需激活")); case Logic.ChannelType.荣邦科技积分: case Logic.ChannelType.荣邦科技无积分: case Logic.ChannelType.荣邦3: //进件 if (!masgetUserDao.QueryIsExist(UserId, ChannelType)) { var resultSubcompany = MasgetDepository.SubcompanyAdd(UserId, cid, ct); if (resultSubcompany.backState != 0) { return(ApiReturnStr.getError(-100, $"开户失败({resultSubcompany.message},ct={ChannelType})")); } } //入驻 if (!masgetUserDao.QueryIsOpen(UserId, ChannelType)) { var resultSamenameOpen = MasgetDepository.SamenameOpen(UserId, cid, ct); if (resultSamenameOpen.backState != 0) { return(ApiReturnStr.getError(-100, $"入驻失败({resultSamenameOpen.message},ct={ChannelType})")); } } if (bankTreatyApplyDao.QueryTreatycodeIsOpen(BankID, ChannelType)) { return(ApiReturnStr.getError(-100, "此通道已开通快捷协议")); } //发送验证码 var resultTreatyApply = MasgetDepository.TreatyApply(BankID, cid, ct); if (resultTreatyApply.backState != 0) { return(ApiReturnStr.getError(-100, $"申请开通快捷协议失败({resultTreatyApply.message})")); } else { return(ApiReturnStr.getError(0, "验证码发送成功")); } default: break; } return(ApiReturnStr.getError(-100, "参数错误")); }
public string BankBind(int cid = 0, int UserId = 0, string mobile = "", string bankcard = "", string bankcode = "", int typeid = 0, string cvn2 = "", string expiresYear = "", string expiresMouth = "", string OpeningBank = "", string OpeningSerialBank = "", int BankID = 0) { Logs.WriteLog($"Action:User,Cmd:BankBind,UserId:{UserId},mobile:{mobile},bankcard:{bankcard},bankcode:{bankcode},typeid:{typeid},cvn2:{cvn2},expiresYear:{expiresYear},expiresMouth:{expiresMouth},OpeningBank:{OpeningBank},OpeningSerialBank:{OpeningSerialBank}", "d:\\Log\\ITOrm", "BankBind"); userEventDao.UserBankBind(cid, UserId, Ip.GetClientIp(), mobile, bankcard, bankcode, typeid, cvn2, expiresYear, expiresMouth, OpeningBank, OpeningSerialBank, BankID); var version = TQuery.GetString("version"); if (cid == 3 && version == "1.0.0") { string temp = expiresYear; expiresYear = expiresMouth; expiresMouth = temp; } #region 验证 if (!TypeParse.IsMobile(mobile)) { return(ApiReturnStr.getError(-100, "预留手机号格式验证失败")); } if (!(bankcard.Length > 13 && bankcard.Length < 21)) { return(ApiReturnStr.getError(-100, "银行卡参数错误")); } if (string.IsNullOrEmpty(bankcode)) { return(ApiReturnStr.getError(-100, "银行编号不能为空")); } Users user = userDao.Single(UserId); if (user == null || user.UserId <= 0) { return(ApiReturnStr.getError(-100, "用户不存在")); } if (user.IsRealState != 1) { return(ApiReturnStr.getError(-100, "用户未实名认证,无法绑卡")); } if (typeid == 1)//如果是结算卡 { if (string.IsNullOrEmpty(cvn2) || string.IsNullOrEmpty(expiresYear) || string.IsNullOrEmpty(expiresMouth)) { return(ApiReturnStr.getError(-100, "支付卡参数有误")); } if (BankID == 0) { UserBankCard ubc = userBankCardDao.Single(" UserId=@UserId and BankCard=@bankcard and TypeId=1 ", new { UserId, bankcard }); if (ubc != null && ubc.ID > 0) { return(ApiReturnStr.getError(-100, "该支付卡已经绑定过,不能重复绑定")); } } } else { UserBankCard ubc = userBankCardDao.Single(" UserId=@UserId and TypeId=0 and State=1 ", new { UserId }); if (ubc != null && ubc.ID > 0) { return(ApiReturnStr.getApiData(-100, "结算卡只能绑定一张")); } } UserBankCard model = null; if (BankID > 0) { model = userBankCardDao.Single(BankID); if (model == null) { return(ApiReturnStr.getApiData(-100, "BankID记录不存在")); } if (model.State == 1) { return(ApiReturnStr.getApiData(-100, "该银行卡已通过验证,不可修改信息")); } } else { model = new UserBankCard(); } #endregion #region 绑卡 var result = BankCardBindHelper.Bind(typeid, user.RealName, user.IdCard, bankcard, mobile, cvn2, expiresYear, expiresMouth); model.BankCard = result.bankCard; model.BankCode = bankcode; model.BankName = bankDao.QueryBankName(bankcode); model.CVN2 = cvn2; model.ExpiresYear = expiresYear; model.ExpiresMouth = expiresMouth; model.UTime = DateTime.Now; model.Mobile = mobile; model.TypeId = typeid; model.OpeningBank = OpeningBank; model.OpeningSerialBank = OpeningSerialBank; model.State = 0;// result.backState ? 1 : 0;//默认为0 model.RelationId = ",0,"; bool flag = false; if (BankID == 0) { model.UserId = UserId; model.IP = Ip.GetClientIp(); model.CTime = DateTime.Now; model.Platform = cid; int num = userBankCardDao.Insert(model); flag = num > 0; return(ApiReturnStr.getError(flag ? 0 : -100, flag ? "绑定成功" : "绑定失败")); } else { var list = bankTreatyApplyDao.GetQuery(" State=2 And UbkID=@BankID", new { BankID }); if (list != null && list.Count > 0) { foreach (var item in list) { MasgetDepository.TreatyModify(BankID, cvn2, expiresYear, expiresMouth, cid, (Logic.ChannelType)item.ChannelType); } } flag = userBankCardDao.Update(model); return(ApiReturnStr.getError(flag ? 0 : -100, flag ? "修改成功" : "修改失败")); } #endregion }
/// <summary> /// 用户注册 /// </summary> /// <param name="cid"></param> /// <param name="mobile">手机号</param> /// <param name="password">密码</param> /// <param name="mcode">手机验证码</param> /// <param name="regGuid">令牌</param> /// <param name="baseUserId">推荐人</param> /// <returns></returns> public string Register(int cid = 0, string mobile = "", string password = "", string mcode = "", string regGuid = "", int baseUserId = 0, string ip = "") { Logs.WriteLog($"Register,cid:{cid},mobile:{mobile},password:{password},mcode:{mcode},regGuid:{regGuid},baseUserId:{baseUserId}", "d:\\Log\\ITOrm", "Register"); #region 验证 if (!TypeParse.IsMobile(mobile)) { return(ApiReturnStr.getError(-100, "手机号格式验证失败")); } if (password.Length != 32) { return(ApiReturnStr.getError(-100, "密码格式错误")); } if (mcode.Length != 6) { return(ApiReturnStr.getError(-100, "手机验证码格式错误")); } if (regGuid.Length != 36) { return(ApiReturnStr.getError(-100, "短信令牌格式错误")); } string key = ITOrm.Utility.Const.Constant.reg_mobile_code + regGuid; if (!ITOrm.Utility.Cache.MemcachHelper.Exists(key)) { return(ApiReturnStr.getError(-100, "短信验证码已过期")); } JObject mobileCodeData = JObject.Parse(ITOrm.Utility.Cache.MemcachHelper.Get(key).ToString()); if (mobileCodeData["code"].ToString() != mcode) { return(ApiReturnStr.getError(-100, "短信验证码错误")); } if (mobileCodeData["mobile"].ToString() != mobile) { return(ApiReturnStr.getError(-100, "手机号码不是接收短信的手机号码")); } if (baseUserId > 0) { var baseUser = userDao.Single(baseUserId); if (baseUser == null || baseUser.UserId == 0) { return(ApiReturnStr.getError(-100, "该邀请人不存在")); } } var modelUsers = userDao.Single(" mobile=@mobile ", new { mobile }); if (modelUsers != null && modelUsers.UserId > 0) { return(ApiReturnStr.getError(-100, "该手机号已注册")); } #endregion ip = string.IsNullOrEmpty(ip) ? ITOrm.Utility.Client.Ip.GetClientIp() : ip; var model = new Users(); model.BaseUserId = baseUserId; model.CTime = DateTime.Now; model.Email = ""; model.IdCard = ""; model.IP = ip; model.IsRealState = 0; model.Mobile = mobile; model.Password = password; model.PlatForm = cid; model.RealName = ""; model.Soure = ""; model.State = 0; model.UserName = mobile; model.UTime = DateTime.Now; model.RealTime = DateTime.Now; model.VipType = (int)Logic.VipType.SVIP; var result = userDao.Insert(model); var account = new Account(); account.UserId = result; account.CTime = DateTime.Now; account.UTime = DateTime.Now; account.Frozen = 0m; account.Available = 0m; account.Total = 0m; var resultAccount = accountDao.Insert(account); if (result > 0 && resultAccount > 0) { JObject obj = new JObject(); obj["UserId"] = result; userEventDao.UserRegister(cid, ip, result, 1, mobile, password, mcode, regGuid, baseUserId, TQuery.GetString("version")); ITOrm.Utility.Cache.MemcachHelper.Delete(key);//销毁本次验证码缓存 return(ApiReturnStr.getApiData(0, "注册成功", obj)); } else { return(ApiReturnStr.getError(-100, "注册失败")); } }