Exemple #1
0
 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;
            }
        }
Exemple #3
0
 // GET: Error
 public string Index()
 {
     return(ApiReturnStr.getError(1, "404找不到该地址"));
 }
Exemple #4
0
        //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));
        }
Exemple #5
0
        /// <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));
        }
Exemple #6
0
        /// <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, "发送失败"));
        }
Exemple #7
0
        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, "上传图片失败,请稍后再试。"));
            }
        }
Exemple #8
0
        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));
        }
Exemple #9
0
        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, "参数错误"));
        }
Exemple #10
0
        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
        }
Exemple #11
0
        /// <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, "注册失败"));
            }
        }