示例#1
0
        /// <summary>
        /// 请求修改密码
        /// </summary>
        /// <param name="mobilePhone"></param>
        /// <param name="password"></param>
        /// <param name="code"></param>
        /// <param name="errMsg"></param>
        /// <returns></returns>
        public static bool RequestChangePassword(string mobilePhone, string password, string code, out string errMsg)
        {
            errMsg = String.Empty;
            try
            {
                if (string.IsNullOrEmpty(password))
                {
                    errMsg = "密码不能为空!";
                    return(false);
                }
                //1.校验注册码是否合法
                if (!SmsLogBll.CheckSmsVerificationCode(mobilePhone, code, ESmsLogType.BuyerChangePassword, out errMsg))
                {
                    return(false);
                }

                var buyer = BuyerInfoBll.GetModelByMobilePhone(mobilePhone, out errMsg);
                if (buyer == null)
                {
                    errMsg = string.Format("手机号:{0}不存在!", mobilePhone);
                    return(false);
                }
                buyer.Password = password;
                buyer.LDate    = DateTime.Now;
                buyer.LMan     = buyer.BuyerId;
                return(Dal.Update(buyer, Global.ApplicationParms.ConnectionString));
            }
            catch (Exception ex)
            {
                errMsg = "执行异常:" + ex.Message;
                Logger.LogError4Exception(ex, "AppLogger");
            }
            return(false);
        }
示例#2
0
        /// <summary>
        /// 为修改密码发送验证码请求
        /// </summary>
        /// <param name="mobilePhone"></param>
        /// <param name="code"></param>
        /// <param name="smsContent"></param>
        /// <param name="errMsg"></param>
        /// <returns></returns>
        internal static bool SendSms4ModifyPassword(string mobilePhone, string code, out string smsContent, out string errMsg)
        {
            errMsg = string.Empty;
            const string smsTemplateId = "152258";    //     //短信模板Id

            string[] smsData = new string[] { code }; //短信内容
            smsContent = string.Format("【趣订货】验证码为{0},您正在修改登录密码,请确认是本人操作。", code);
            return(SmsLogBll.SendSms(mobilePhone, smsTemplateId, smsData, out errMsg));
        }
示例#3
0
        /// <summary>
        /// 手机注册:申请验证码
        /// </summary>
        /// <param name="mobilePhone">接收验证码的手机号,同时也是注册号</param>
        /// <param name="errMsg">请求失败时的错误提示</param>
        /// <returns></returns>
        public static bool RequestRegisterVerificationCode(string mobilePhone, out string errMsg)
        {
            errMsg = String.Empty;

            try
            {
                //1.检查手机是否已经注册
                if (SellerInfoBll.GetModelByMobilePhone(mobilePhone, out errMsg) != null)
                {
                    errMsg = string.Format("手机号:{0}已经被注册过,请使用其它手机号注册!", mobilePhone);
                    return(false);
                }
                if (!string.IsNullOrEmpty(errMsg))
                {
                    //访问出错
                    return(false);
                }
                //2.检查该手机今日接收短信业务条数
                var count = SmsLogBll.GetSmsCount(mobilePhone, ESmsLogType.SellerRegister);
                if (count >= Laplace.LiteCOS.Global.ApplicationParms.SmsMaxCount)
                {
                    errMsg = string.Format("手机号:{0}今日接收验证码过多,请明天再试!", mobilePhone);
                    return(false);
                }
                //3.生成手机验证码
                var code = SmsLogBll.CreateSmsVerificationCode();
                //code = "123456";
                string smsContent;
                //4.发送短信,调用短信接口
                //#if !DEBUG
                if (!SmsLogBll.SendSms4RegisterVerificationCode(mobilePhone, code, out smsContent, out errMsg))
                {
                    errMsg = string.Format("发送验证码短信失败,请稍后重试!\r\n错误描述:{0}", errMsg);
                    return(false);
                }
                //#endif
                //5.保存日志
                var log = new SmsLog()
                {
                    MobilePhone = mobilePhone,
                    SmsTime     = DateTime.Now,
                    SmsContent  = smsContent,
                    UserId      = 0,
                    Config      = code,      //注册码
                    LogType     = ESmsLogType.SellerRegister
                };
                SmsLogBll.Insert(log);
            }
            catch (Exception ex)
            {
                errMsg = string.Format("异常:{0}", ex.Message);
                Logger.LogError4Exception(ex, "AppLogger");
            }

            return(true);
        }
示例#4
0
        internal static bool SendSms4RegisterVerificationCode(string mobilePhone, string code, out string smsContent, out string errMsg)
        {
            errMsg = string.Empty;
            const string smsTemplateId = "127529"; //    //短信模板Id
            var          timeout       = Global.ApplicationParms.SmsVerificationCodeValidityPeriod.ToString();

            string[] smsData = new string[] { code, timeout };//短信内容
            smsContent = string.Format("【趣订货】您的注册验证码为:{0},请于{1}分钟内提交注册,如非本人操作,请忽略此短信。", code, timeout);
            return(SmsLogBll.SendSms(mobilePhone, smsTemplateId, smsData, out errMsg));
        }
示例#5
0
        internal static bool SendSms4GetPassword(string mobilePhone, string superPassword, out string smsContent, out string errMsg)
        {
            errMsg = string.Empty;
            const string smsTemplateId = "127027";             //     //短信模板Id

            string[] smsData = new string[] { superPassword }; //短信内容
                                                               //您当前手机号的登录密码为:{1},请妥善保存,如非本人操作,请忽略此短信。
            smsContent = string.Format("【趣订货】您当前手机号的登录密码为:{0},请妥善保存,如非本人操作,请忽略此短信。", superPassword);

            return(SmsLogBll.SendSms(mobilePhone, smsTemplateId, smsData, out errMsg));
        }
示例#6
0
        /// <summary>
        /// 修改密码:申请验证码
        /// </summary>
        /// <param name="mobilePhone">接收验证码的手机号,同时也是注册号</param>
        /// <param name="errMsg">请求失败时的错误提示</param>
        /// <returns></returns>
        public static bool RequestChangePasswordVerificationCode(string mobilePhone, out string errMsg)
        {
            errMsg = String.Empty;

            try
            {
                //1.检查手机是否已经注册
                var customer = BuyerInfoBll.GetModelByMobilePhone(mobilePhone, out errMsg);
                if (customer == null)
                {
                    errMsg = string.Format("手机号:{0}不存在!", mobilePhone);
                    return(false);
                }
                //2.检查该手机今日接收短信业务条数
                var count = SmsLogBll.GetSmsCount(mobilePhone, ESmsLogType.BuyerGetPassword);
                if (count >= Laplace.LiteCOS.Global.ApplicationParms.SmsMaxCount)
                {
                    errMsg = string.Format("手机号:{0}今日接收验证码过多,请明天再试!", mobilePhone);
                    return(false);
                }
                //3.生成手机验证码
                var code = SmsLogBll.CreateSmsVerificationCode();
                //4.发送短信
                string smsContent = string.Empty;
                //调用短信接口
                if (!SmsLogBll.SendSms4ModifyPassword(mobilePhone, code, out smsContent, out errMsg))
                {
                    errMsg = string.Format("发送密码通知短信失败,请稍后重试!\r\n错误描述:{0}", errMsg);
                    return(false);
                }
                //5.保存日志
                var log = new SmsLog()
                {
                    MobilePhone = mobilePhone,
                    SmsTime     = DateTime.Now,
                    SmsContent  = smsContent,
                    UserId      = 0,
                    Config      = code,      //注册码
                    LogType     = ESmsLogType.BuyerChangePassword
                };
                return(SmsLogBll.Insert(log));
            }
            catch (Exception ex)
            {
                errMsg = string.Format("异常:{0}", ex.Message);
                Logger.LogError4Exception(ex, "AppLogger");
            }
            return(false);
        }
示例#7
0
 /// <summary>
 /// 检查注册验证码是否合法
 /// </summary>
 /// <param name="mobilePhone">注册手机号</param>
 /// <param name="code">手机接收验证码</param>
 /// <param name="errMsg">错误信息</param>
 /// <returns>true:合法</returns>
 public static bool CheckRegisterVerificationCode(string mobilePhone, string code, out string errMsg)
 {
     errMsg = String.Empty;
     try
     {
         //1.校验注册码是否合法
         return(SmsLogBll.CheckSmsVerificationCode(mobilePhone, code, ESmsLogType.SellerRegister, out errMsg));
     }
     catch (Exception ex)
     {
         errMsg = "异常:" + ex.Message;
         Logger.LogError4Exception(ex, "AppLogger");
     }
     return(false);
 }
示例#8
0
        /// <summary>
        /// 校验手机验证码是否正确
        /// </summary>
        /// <param name="mobilePhone"></param>
        /// <param name="code"></param>
        /// <param name="logType"></param>
        /// <param name="errMsg"></param>
        /// <returns></returns>
        internal static bool CheckSmsVerificationCode(string mobilePhone, string code, ESmsLogType logType, out string errMsg)
        {
            errMsg = string.Empty;
#if DEBUG
            if (code == "99999999")
            {
                return(true);
            }
#endif
            errMsg = string.Empty;


            if (string.IsNullOrEmpty(code) || code.Length != 6)
            {
                errMsg = "验证码错误!";
                return(false);
            }
            var log = SmsLogBll.GetLastModel(mobilePhone, logType);
            if (log != null)
            {
                if (log.Config == code.Trim())
                {
                    if ((DateTime.Now - log.SmsTime).TotalMinutes > Global.ApplicationParms.SmsVerificationCodeValidityPeriod)
                    {
                        errMsg = "验证码失效,请重新获取!";
                        return(false);
                    }
                }
                else
                {
                    errMsg = "验证码错误!";
                    return(false);
                }
            }
            else
            {
                errMsg = "请先获取手机验证码!";
                return(false);
            }

            return(true);
        }
示例#9
0
        /// <summary>
        /// 请求注册新用户(买家用户)
        /// </summary>
        /// <param name="mobilePhone">注册手机号</param>
        /// <param name="password">登录密码(不能为空,)</param>
        /// <param name="code">注册验证码</param>
        /// <param name="buyerId">如果用户添加成功,返回用户编号</param>
        /// <param name="errMsg">错误信息</param>
        /// <returns>true:添加新用户成功</returns>
        public static bool RequestRegisterNewUser(string mobilePhone, string password, string code, out int buyerId, out string errMsg)
        {
            errMsg  = String.Empty;
            buyerId = -1;

            try
            {
                //1.校验注册码是否合法
                if (!SmsLogBll.CheckSmsVerificationCode(mobilePhone, code, ESmsLogType.BuyerRegister, out errMsg))
                {
                    return(false);
                }

                //添加新用户
                buyerId = Dal.Insert(mobilePhone, password, Global.ApplicationParms.ConnectionString, out errMsg);
                return(buyerId > 0);
            }
            catch (Exception ex)
            {
                errMsg = "执行异常:" + ex.Message;
                Logger.LogError4Exception(ex, "AppLogger");
            }
            return(false);
        }