コード例 #1
0
        /// <summary>
        /// 读取一条邮件发送记录数据
        /// </summary>
        /// <param name="id">邮件发送记录的主键值</param>
        /// <returns>邮件发送记录数据模型</returns>
        public EmailSendRecordInfo ReadEmailSendRecord(int id)
        {
            SqlParameter[] parameters =
            {
                new SqlParameter("@id", SqlDbType.Int)
            };
            parameters[0].Value = id;
            EmailSendRecordInfo emailSendRecord = new EmailSendRecordInfo();

            using (SqlDataReader dr = ShopMssqlHelper.ExecuteReader(ShopMssqlHelper.TablePrefix + "ReadEmailSendRecord", parameters))
            {
                if (dr.Read())
                {
                    emailSendRecord.ID                     = dr.GetInt32(0);
                    emailSendRecord.Title                  = dr[1].ToString();
                    emailSendRecord.Content                = dr[2].ToString();
                    emailSendRecord.IsSystem               = dr.GetInt32(3);
                    emailSendRecord.EmailList              = dr[4].ToString();
                    emailSendRecord.OpenEmailList          = dr[5].ToString();
                    emailSendRecord.IsStatisticsOpendEmail = dr.GetInt32(6);
                    emailSendRecord.SendStatus             = dr.GetInt32(7);
                    emailSendRecord.Note                   = dr[8].ToString();
                    emailSendRecord.AddDate                = dr.GetDateTime(9);
                    emailSendRecord.SendDate               = dr.GetDateTime(10);
                }
            }
            return(emailSendRecord);
        }
コード例 #2
0
        /// <summary>
        /// 增加一条邮件发送记录数据
        /// </summary>
        /// <param name="emailSendRecord">邮件发送记录模型变量</param>
        public int AddEmailSendRecord(EmailSendRecordInfo emailSendRecord)
        {
            SqlParameter[] parameters =
            {
                new SqlParameter("@title",                  SqlDbType.NVarChar),
                new SqlParameter("@content",                SqlDbType.NText),
                new SqlParameter("@isSystem",               SqlDbType.Int),
                new SqlParameter("@emailList",              SqlDbType.NText),
                new SqlParameter("@openEmailList",          SqlDbType.NText),
                new SqlParameter("@isStatisticsOpendEmail", SqlDbType.Int),
                new SqlParameter("@sendStatus",             SqlDbType.Int),
                new SqlParameter("@note",                   SqlDbType.NVarChar),
                new SqlParameter("@addDate",                SqlDbType.DateTime),
                new SqlParameter("@sendDate",               SqlDbType.DateTime)
            };
            parameters[0].Value = emailSendRecord.Title;
            parameters[1].Value = emailSendRecord.Content;
            parameters[2].Value = emailSendRecord.IsSystem;
            parameters[3].Value = emailSendRecord.EmailList;
            parameters[4].Value = emailSendRecord.OpenEmailList;
            parameters[5].Value = emailSendRecord.IsStatisticsOpendEmail;
            parameters[6].Value = emailSendRecord.SendStatus;
            parameters[7].Value = emailSendRecord.Note;
            parameters[8].Value = emailSendRecord.AddDate;
            parameters[9].Value = emailSendRecord.SendDate;
            Object id = ShopMssqlHelper.ExecuteScalar(ShopMssqlHelper.TablePrefix + "AddEmailSendRecord", parameters);

            return(Convert.ToInt32(id));
        }
コード例 #3
0
 /// <summary>
 /// 发送Email,保存发送状态,发送时间
 /// </summary>
 /// <param name="emailSendRecord"></param>
 public static EmailSendRecordInfo SendEmail(EmailSendRecordInfo emailSendRecord)
 {
     //发送
     foreach (string temp in emailSendRecord.EmailList.Split(','))
     {
         if (temp != string.Empty)
         {
             MailInfo mail = new MailInfo();
             mail.ToEmail = temp;
             mail.Title   = emailSendRecord.Title;
             mail.Content = emailSendRecord.Content;
             if (emailSendRecord.IsStatisticsOpendEmail == (int)BoolType.True)
             {
                 mail.Content += "<img style=\"display:none\" src=\"http://" + HttpContext.Current.Request.ServerVariables["Http_Host"] + "/Admin/EmailCheckOpen.aspx?Email=" + temp + "&ID=" + emailSendRecord.ID + "\" >";
             }
             mail.UserName   = ShopConfig.ReadConfigInfo().EmailUserName;
             mail.Password   = ShopConfig.ReadConfigInfo().EmailPassword;
             mail.Server     = ShopConfig.ReadConfigInfo().EmailServer;
             mail.ServerPort = ShopConfig.ReadConfigInfo().EmailServerPort;
             try
             {
                 MailClass.SendEmail(mail);
             }
             catch (Exception ex)
             {
                 ExceptionHelper.ProcessException(ex, true);
             }
         }
     }
     //保存状态
     emailSendRecord.SendDate   = RequestHelper.DateNow;
     emailSendRecord.SendStatus = (int)SendStatus.Finished;
     EmailSendRecordBLL.SaveEmailSendRecordStatus(emailSendRecord);
     return(emailSendRecord);
 }
コード例 #4
0
 /// <summary>
 /// 操作订单发送通知
 /// </summary>
 /// <param name="isSendNotice">是否发送通知</param>
 /// <param name="isSendEmail">是否发送邮件</param>
 /// <param name="isSendMessage">是否发送短信</param>
 /// <param name="key">操作名称</param>
 /// <param name="order">操作的订单</param>
 protected void SendOrderOperateMsg(int isSendNotice, int isSendEmail, int isSendMessage, string key, OrderInfo order)
 {
     if (isSendNotice == (int)BoolType.True && key != string.Empty)
     {
         if (isSendEmail == (int)BoolType.True)
         {//发邮件
             try
             {
                 EmailContentInfo    emailContent    = EmailContentHelper.ReadSystemEmailContent(key);
                 EmailSendRecordInfo emailSendRecord = new EmailSendRecordInfo();
                 emailSendRecord.Title     = emailContent.EmailTitle;
                 emailSendRecord.Content   = emailContent.EmailContent.Replace("$UserName$", order.UserName).Replace("$OrderNumber$", order.OrderNumber).Replace("$PayName$", order.PayName).Replace("$ShippingName$", ShippingBLL.Read(order.ShippingId).Name).Replace("$ShippingNumber$", order.ShippingNumber).Replace("$ShippingDate$", order.ShippingDate.ToString("yyyy-MM-dd"));
                 emailSendRecord.IsSystem  = (int)BoolType.True;
                 emailSendRecord.EmailList = order.Email;
                 emailSendRecord.IsStatisticsOpendEmail = (int)BoolType.False;
                 emailSendRecord.SendStatus             = (int)SendStatus.No;
                 emailSendRecord.AddDate  = RequestHelper.DateNow;
                 emailSendRecord.SendDate = RequestHelper.DateNow;
                 emailSendRecord.ID       = EmailSendRecordBLL.AddEmailSendRecord(emailSendRecord);
                 EmailSendRecordBLL.SendEmail(emailSendRecord);
                 //result = "通知邮件已发送。";
             }
             catch
             {
                 //result = "未发送通知邮件。";
             }
         }
         if (isSendMessage == (int)BoolType.True)
         {//发短信
          //result += "未发送通知短信。";
         }
     }
 }
コード例 #5
0
        public EmailSendRecordInfo ReadEmailSendRecord(int id)
        {
            SqlParameter[] pt = new SqlParameter[] { new SqlParameter("@id", SqlDbType.Int) };
            pt[0].Value = id;
            EmailSendRecordInfo info = new EmailSendRecordInfo();

            using (SqlDataReader reader = ShopMssqlHelper.ExecuteReader(ShopMssqlHelper.TablePrefix + "ReadEmailSendRecord", pt))
            {
                if (reader.Read())
                {
                    info.ID                     = reader.GetInt32(0);
                    info.Title                  = reader[1].ToString();
                    info.Content                = reader[2].ToString();
                    info.IsSystem               = reader.GetInt32(3);
                    info.EmailList              = reader[4].ToString();
                    info.OpenEmailList          = reader[5].ToString();
                    info.IsStatisticsOpendEmail = reader.GetInt32(6);
                    info.SendStatus             = reader.GetInt32(7);
                    info.Note                   = reader[8].ToString();
                    info.AddDate                = reader.GetDateTime(9);
                    info.SendDate               = reader.GetDateTime(10);
                }
            }
            return(info);
        }
コード例 #6
0
 public static EmailSendRecordInfo SendEmail(EmailSendRecordInfo emailSendRecord)
 {
     foreach (string str in emailSendRecord.EmailList.Split(new char[] { ',' }))
     {
         if (str != string.Empty)
         {
             MailInfo mail = new MailInfo();
             mail.ToEmail = str;
             mail.Title   = emailSendRecord.Title;
             mail.Content = emailSendRecord.Content;
             if (emailSendRecord.IsStatisticsOpendEmail == 1)
             {
                 object content = mail.Content;
                 mail.Content = string.Concat(new object[] { content, "<img style=\"display:none\" src=\"http://", HttpContext.Current.Request.ServerVariables["Http_Host"], "/Admin/EmailCheckOpen.aspx?Email=", str, "&ID=", emailSendRecord.ID, "\" >" });
             }
             mail.UserName   = ShopConfig.ReadConfigInfo().EmailUserName;
             mail.Password   = ShopConfig.ReadConfigInfo().EmailPassword;
             mail.Server     = ShopConfig.ReadConfigInfo().EmailServer;
             mail.ServerPort = ShopConfig.ReadConfigInfo().EmailServerPort;
             try
             {
                 MailClass.SendEmail(mail);
             }
             catch (Exception exception)
             {
                 ExceptionHelper.ProcessException(exception, true);
             }
         }
     }
     emailSendRecord.SendDate   = RequestHelper.DateNow;
     emailSendRecord.SendStatus = 3;
     SaveEmailSendRecordStatus(emailSendRecord);
     return(emailSendRecord);
 }
コード例 #7
0
 public void SaveEmailSendRecordStatus(EmailSendRecordInfo emailSendRecord)
 {
     SqlParameter[] pt = new SqlParameter[] { new SqlParameter("@id", SqlDbType.Int), new SqlParameter("@sendStatus", SqlDbType.Int), new SqlParameter("@sendDate", SqlDbType.DateTime) };
     pt[0].Value = emailSendRecord.ID;
     pt[1].Value = emailSendRecord.SendStatus;
     pt[2].Value = emailSendRecord.SendDate;
     ShopMssqlHelper.ExecuteNonQuery(ShopMssqlHelper.TablePrefix + "SaveEmailSendRecordStatus", pt);
 }
コード例 #8
0
 protected void Page_Load(object sender, EventArgs e)
 {
     if (!this.Page.IsPostBack)
     {
         int queryString = RequestHelper.GetQueryString <int>("ID");
         if (queryString != -2147483648)
         {
             base.CheckAdminPower("ReadEmailSendRecord", PowerCheckType.Single);
             this.emailSendRecord = EmailSendRecordBLL.ReadEmailSendRecord(queryString);
         }
     }
 }
コード例 #9
0
ファイル: SendEmail.aspx.cs プロジェクト: xuefuruanjian/ems
        protected void SubmitButton_Click(object sender, EventArgs e)
        {
            EmailSendRecordInfo info;

            info           = new EmailSendRecordInfo();
            info.Title     = this.Title.Text;
            info.Content   = this.Content.Text;
            info.IsSystem  = 0;
            info.EmailList = RequestHelper.GetForm <string>("ToUserEmail");
            info.IsStatisticsOpendEmail = 0;
            info.SendStatus             = 1;
            info.AddDate  = RequestHelper.DateNow;
            info.SendDate = RequestHelper.DateNow;
            info.ID       = EmailSendRecordBLL.AddEmailSendRecord(info);
            EmailSendRecordBLL.SendEmail(info);
            AdminBasePage.Alert(ShopLanguage.ReadLanguage("SendEmailOK"), RequestHelper.RawUrl);
        }
コード例 #10
0
 public void PrepareEmailSendRecordModel(SqlDataReader dr, List <EmailSendRecordInfo> emailSendRecordList)
 {
     while (dr.Read())
     {
         EmailSendRecordInfo item = new EmailSendRecordInfo();
         item.ID                     = dr.GetInt32(0);
         item.Title                  = dr[1].ToString();
         item.Content                = dr[2].ToString();
         item.IsSystem               = dr.GetInt32(3);
         item.EmailList              = dr[4].ToString();
         item.OpenEmailList          = dr[5].ToString();
         item.IsStatisticsOpendEmail = dr.GetInt32(6);
         item.SendStatus             = dr.GetInt32(7);
         item.Note                   = dr[8].ToString();
         item.AddDate                = dr.GetDateTime(9);
         item.SendDate               = dr.GetDateTime(10);
         emailSendRecordList.Add(item);
     }
 }
コード例 #11
0
        protected void SubmitButton_Click(object sender, EventArgs e)
        {
            base.CheckAdminPower("AddEmailSendRecord", PowerCheckType.Single);
            EmailContentInfo    info            = EmailContentHelper.ReadCommonEmailContent(this.Key.Text);
            EmailSendRecordInfo emailSendRecord = new EmailSendRecordInfo();

            emailSendRecord.Title                  = info.EmailTitle;
            emailSendRecord.Content                = info.EmailContent;
            emailSendRecord.IsSystem               = 0;
            emailSendRecord.EmailList              = this.ReadUserEmail(ControlHelper.GetCheckBoxListValue(this.UserGrade));
            emailSendRecord.OpenEmailList          = string.Empty;
            emailSendRecord.IsStatisticsOpendEmail = Convert.ToInt32(this.IsStatisticsOpendEmail.Text);
            emailSendRecord.Note       = this.Note.Text;
            emailSendRecord.SendStatus = 1;
            emailSendRecord.AddDate    = RequestHelper.DateNow;
            emailSendRecord.SendDate   = RequestHelper.DateNow;
            string alertMessage = ShopLanguage.ReadLanguage("AddOK");
            int    id           = EmailSendRecordBLL.AddEmailSendRecord(emailSendRecord);

            AdminLogBLL.AddAdminLog(ShopLanguage.ReadLanguage("AddRecord"), ShopLanguage.ReadLanguage("EmailSendRecord"), id);
            AdminBasePage.Alert(alertMessage, RequestHelper.RawUrl);
        }
コード例 #12
0
        /// <summary>
        /// 订单操作时候,发送通知(Email,Message)的操作
        /// </summary>
        protected string OrderOperateSendEmail(OrderInfo order, OrderOperate orderOperate)
        {
            string result        = string.Empty;
            string key           = string.Empty;
            int    isSendNotice  = (int)BoolType.False;
            int    isSendEmail   = (int)BoolType.False;
            int    isSendMessage = (int)BoolType.False;

            switch (orderOperate)
            {
            case OrderOperate.Pay:
                isSendNotice  = ShopConfig.ReadConfigInfo().PayOrder;
                isSendEmail   = ShopConfig.ReadConfigInfo().PayOrderEmail;
                isSendMessage = ShopConfig.ReadConfigInfo().PayOrderMsg;
                key           = "PayOrder";
                break;

            case OrderOperate.Cancle:
                isSendNotice  = ShopConfig.ReadConfigInfo().CancleOrder;
                isSendEmail   = ShopConfig.ReadConfigInfo().CancleOrderEmail;
                isSendMessage = ShopConfig.ReadConfigInfo().CancleOrderMsg;
                key           = "CancleOrder";
                break;

            case OrderOperate.Check:
                isSendNotice  = ShopConfig.ReadConfigInfo().CheckOrder;
                isSendEmail   = ShopConfig.ReadConfigInfo().CheckOrderEmail;
                isSendMessage = ShopConfig.ReadConfigInfo().CheckOrderMsg;
                key           = "CheckOrder";
                break;

            case OrderOperate.Send:
                isSendNotice  = ShopConfig.ReadConfigInfo().SendOrder;
                isSendEmail   = ShopConfig.ReadConfigInfo().SendOrderEmail;
                isSendMessage = ShopConfig.ReadConfigInfo().SendOrderMsg;
                key           = "SendOrder";
                break;

            case OrderOperate.Received:
                isSendNotice  = ShopConfig.ReadConfigInfo().ReceivedOrder;
                isSendEmail   = ShopConfig.ReadConfigInfo().ReceivedOrderEmail;
                isSendMessage = ShopConfig.ReadConfigInfo().ReceivedOrderMsg;
                key           = "ReceivedOrder";
                break;

            case OrderOperate.Change:
                isSendNotice  = ShopConfig.ReadConfigInfo().ChangeOrder;
                isSendEmail   = ShopConfig.ReadConfigInfo().ChangeOrderEmail;
                isSendMessage = ShopConfig.ReadConfigInfo().ChangeOrderMsg;
                key           = "ChangeOrder";
                break;

            case OrderOperate.Return:
                isSendNotice  = ShopConfig.ReadConfigInfo().ReturnOrder;
                isSendEmail   = ShopConfig.ReadConfigInfo().ReturnOrderEmail;
                isSendMessage = ShopConfig.ReadConfigInfo().ReturnOrderMsg;
                key           = "ReturnOrder";
                break;

            case OrderOperate.Back:
                isSendNotice  = ShopConfig.ReadConfigInfo().BackOrder;
                isSendEmail   = ShopConfig.ReadConfigInfo().BackOrderEmail;
                isSendMessage = ShopConfig.ReadConfigInfo().BackOrderMsg;
                key           = "BackOrder";
                break;

            case OrderOperate.Refund:
                isSendNotice  = ShopConfig.ReadConfigInfo().RefundOrder;
                isSendEmail   = ShopConfig.ReadConfigInfo().RefundOrderEmail;
                isSendMessage = ShopConfig.ReadConfigInfo().RefundOrderMsg;
                key           = "RefundOrder";
                break;

            default:
                break;
            }
            if (isSendNotice == (int)BoolType.True && key != string.Empty)
            {
                if (isSendEmail == (int)BoolType.True)
                {//发邮件
                    try
                    {
                        EmailContentInfo    emailContent    = EmailContentHelper.ReadSystemEmailContent(key);
                        EmailSendRecordInfo emailSendRecord = new EmailSendRecordInfo();
                        emailSendRecord.Title     = emailContent.EmailTitle;
                        emailSendRecord.Content   = emailContent.EmailContent.Replace("$UserName$", order.UserName).Replace("$OrderNumber$", order.OrderNumber).Replace("$PayName$", order.PayName).Replace("$ShippingName$", ShippingBLL.Read(order.ShippingId).Name).Replace("$ShippingNumber$", order.ShippingNumber).Replace("$ShippingDate$", order.ShippingDate.ToString("yyyy-MM-dd"));
                        emailSendRecord.IsSystem  = (int)BoolType.True;
                        emailSendRecord.EmailList = order.Email;
                        emailSendRecord.IsStatisticsOpendEmail = (int)BoolType.False;
                        emailSendRecord.SendStatus             = (int)SendStatus.No;
                        emailSendRecord.AddDate  = RequestHelper.DateNow;
                        emailSendRecord.SendDate = RequestHelper.DateNow;
                        emailSendRecord.ID       = EmailSendRecordBLL.AddEmailSendRecord(emailSendRecord);
                        EmailSendRecordBLL.SendEmail(emailSendRecord);
                        result = "通知邮件已发送。";
                    }
                    catch {
                        result = "未发送通知邮件。";
                    }
                }
                if (isSendMessage == (int)BoolType.True)
                {//发短信
                    result += "未发送通知短信。";
                }
            }
            return(result);
        }
コード例 #13
0
ファイル: Register.cs プロジェクト: xuefuruanjian/ems
        protected override void PostBack()
        {
            string userName = StringHelper.SearchSafe(StringHelper.AddSafe(RequestHelper.GetForm <string>("UserName")));
            string str2     = StringHelper.SearchSafe(StringHelper.AddSafe(RequestHelper.GetForm <string>("Email")));
            string form     = RequestHelper.GetForm <string>("UserPassword1");
            string str4     = RequestHelper.GetForm <string>("UserPassword2");
            string str5     = RequestHelper.GetForm <string>("SafeCode");

            if (userName == string.Empty)
            {
                this.errorMessage = "用户名不能为空";
            }
            if (this.errorMessage == string.Empty)
            {
                string forbiddenName = ShopConfig.ReadConfigInfo().ForbiddenName;
                if (forbiddenName != string.Empty)
                {
                    foreach (string str7 in forbiddenName.Split(new char[] { '|' }))
                    {
                        if (userName.IndexOf(str7.Trim()) != -1)
                        {
                            this.errorMessage = "用户名含有非法字符";
                            break;
                        }
                    }
                }
            }
            if ((this.errorMessage == string.Empty) && (UserBLL.CheckUserName(userName) > 0))
            {
                this.errorMessage = "用户名已经被占用";
            }
            if (this.errorMessage == string.Empty)
            {
                Regex regex = new Regex("^([a-zA-Z0-9_一-龥])+$");
                if (!regex.IsMatch(userName))
                {
                    this.errorMessage = "用户名只能包含字母、数字、下划线、中文";
                }
            }
            if ((this.errorMessage == string.Empty) && ((form == string.Empty) || (str4 == string.Empty)))
            {
                this.errorMessage = "密码不能为空";
            }
            if ((this.errorMessage == string.Empty) && (form != str4))
            {
                this.errorMessage = "两次密码不一致";
            }
            if ((this.errorMessage == string.Empty) && (str5.ToLower() != Cookies.Common.checkcode.ToLower()))
            {
                this.errorMessage = "验证码错误";
            }
            if (this.errorMessage == string.Empty)
            {
                UserInfo user = new UserInfo();
                user.UserName      = userName;
                user.UserPassword  = StringHelper.Password(form, (PasswordType)ShopConfig.ReadConfigInfo().PasswordType);
                user.Email         = str2;
                user.RegisterIP    = ClientHelper.IP;
                user.RegisterDate  = RequestHelper.DateNow;
                user.PostStartDate = RequestHelper.DateNow;
                user.LastLoginIP   = ClientHelper.IP;
                user.LastLoginDate = RequestHelper.DateNow;
                user.FindDate      = RequestHelper.DateNow;
                if (ShopConfig.ReadConfigInfo().RegisterCheck == 1)
                {
                    user.Status = 2;
                }
                else
                {
                    user.Status = 1;
                }
                int id = UserBLL.AddUser(user);
                if (ShopConfig.ReadConfigInfo().RegisterCheck == 1)
                {
                    HttpCookie cookie = new HttpCookie(ShopConfig.ReadConfigInfo().UserCookies);
                    cookie["User"]     = StringHelper.Encode(userName, ShopConfig.ReadConfigInfo().SecureKey);
                    cookie["Password"] = StringHelper.Encode(form, ShopConfig.ReadConfigInfo().SecureKey);
                    cookie["Key"]      = StringHelper.Encode(ClientHelper.Agent, ShopConfig.ReadConfigInfo().SecureKey);
                    HttpContext.Current.Response.Cookies.Add(cookie);
                    user = UserBLL.ReadUserMore(id);
                    UserBLL.UserLoginInit(user);
                    UserBLL.UpdateUserLogin(user.ID, RequestHelper.DateNow, ClientHelper.IP);
                    ResponseHelper.Redirect("/User/Index.aspx");
                }
                else if (ShopConfig.ReadConfigInfo().RegisterCheck == 2)
                {
                    string              newValue        = "http://" + base.Request.ServerVariables["HTTP_HOST"] + "/User/ActiveUser.aspx?CheckCode=" + StringHelper.Encode(string.Concat(new object[] { id, "|", str2, "|", userName }), ShopConfig.ReadConfigInfo().SecureKey);
                    EmailContentInfo    info2           = EmailContentHelper.ReadSystemEmailContent("Register");
                    EmailSendRecordInfo emailSendRecord = new EmailSendRecordInfo();
                    emailSendRecord.Title     = info2.EmailTitle;
                    emailSendRecord.Content   = info2.EmailContent.Replace("$UserName$", user.UserName).Replace("$Url$", newValue);
                    emailSendRecord.IsSystem  = 1;
                    emailSendRecord.EmailList = str2;
                    emailSendRecord.IsStatisticsOpendEmail = 0;
                    emailSendRecord.SendStatus             = 1;
                    emailSendRecord.AddDate  = RequestHelper.DateNow;
                    emailSendRecord.SendDate = RequestHelper.DateNow;
                    emailSendRecord.ID       = EmailSendRecordBLL.AddEmailSendRecord(emailSendRecord);
                    EmailSendRecordBLL.SendEmail(emailSendRecord);
                    this.result = "恭喜您,注册成功,请登录邮箱激活!<a href=\"http://mail." + str2.Substring(str2.IndexOf("@") + 1) + "\"  target=\"_blank\">马上激活</a>";
                }
                else
                {
                    this.result = "恭喜您,注册成功,请等待我们的审核!";
                }
                ResponseHelper.Redirect("/User/Register.aspx?Result=" + base.Server.UrlEncode(this.result));
            }
            else
            {
                ResponseHelper.Redirect("/User/Register.aspx?ErrorMessage=" + base.Server.UrlEncode(this.errorMessage));
            }
        }
コード例 #14
0
 public static void SaveEmailSendRecordStatus(EmailSendRecordInfo emailSendRecord)
 {
     dal.SaveEmailSendRecordStatus(emailSendRecord);
 }
コード例 #15
0
 public static int AddEmailSendRecord(EmailSendRecordInfo emailSendRecord)
 {
     emailSendRecord.ID = dal.AddEmailSendRecord(emailSendRecord);
     return(emailSendRecord.ID);
 }
コード例 #16
0
        protected void SubmitButton_Click(object sender, EventArgs e)
        {
            string loginName  = StringHelper.SearchSafe(AdminName.Text);
            string loginEmial = StringHelper.SearchSafe(Email.Text);
            var    admin      = AdminBLL.Read(loginName);

            //如果账号不存在
            if (admin.Id <= 0)
            {
                ScriptHelper.AlertFront("账号不存在");
            }
            //如果账号不存在
            if (!string.Equals(admin.Email, loginEmial, StringComparison.OrdinalIgnoreCase))
            {
                ScriptHelper.AlertFront("账号、邮箱不匹配");
            }

            if (admin.Id > 0 && string.Equals(admin.Email, loginEmial, StringComparison.OrdinalIgnoreCase))
            {
                #region 滑块验证码
                GeetestLib geetest = new GeetestLib("b46d1900d0a894591916ea94ea91bd2c", "36fc3fe98530eea08dfc6ce76e3d24c4");
                Byte       gt_server_status_code = (Byte)Session[GeetestLib.gtServerStatusSessionKey];
                String     userID    = (String)Session["userID"];
                int        result    = 0;
                String     challenge = Request.Form.Get(GeetestLib.fnGeetestChallenge);
                String     validate  = Request.Form.Get(GeetestLib.fnGeetestValidate);
                String     seccode   = Request.Form.Get(GeetestLib.fnGeetestSeccode);
                try
                {
                    if (gt_server_status_code != null && gt_server_status_code == 1)
                    {
                        result = geetest.enhencedValidateRequest(challenge, validate, seccode, userID);
                    }
                    else
                    {
                        result = geetest.failbackValidateRequest(challenge, validate, seccode);
                    }
                }
                catch (Exception ex)
                {
                    result = -1;//极验验证码出错,不进行验证
                }
                if (result == 1 || result == -1)
                {// 验证通过,发送邮件
                    string tempSafeCode = Guid.NewGuid().ToString();
                    AdminBLL.ChangeAdminSafeCode(admin.Id, tempSafeCode, RequestHelper.DateNow);
                    string              url             = "http://" + Request.ServerVariables["HTTP_HOST"] + "/Admin/ResetPassword.aspx?CheckCode=" + StringHelper.Encode(admin.Id + "|" + admin.Email + "|" + admin.Name + "|" + tempSafeCode, ShopConfig.ReadConfigInfo().SecureKey);
                    EmailContentInfo    emailContent    = EmailContentHelper.ReadSystemEmailContent("FindPassword");
                    EmailSendRecordInfo emailSendRecord = new EmailSendRecordInfo();
                    emailSendRecord.Title     = emailContent.EmailTitle;
                    emailSendRecord.Content   = emailContent.EmailContent.Replace("$Url$", url);
                    emailSendRecord.IsSystem  = (int)BoolType.True;
                    emailSendRecord.EmailList = admin.Email;
                    emailSendRecord.IsStatisticsOpendEmail = (int)BoolType.False;
                    emailSendRecord.SendStatus             = (int)SendStatus.No;
                    emailSendRecord.AddDate  = RequestHelper.DateNow;
                    emailSendRecord.SendDate = RequestHelper.DateNow;
                    emailSendRecord.ID       = EmailSendRecordBLL.AddEmailSendRecord(emailSendRecord);
                    EmailSendRecordBLL.SendEmail(emailSendRecord);
                    string emailResult = "您的申请已提交,请在15分钟内登录邮箱重设你的密码,!<a href=\"http://mail." + admin.Email.Substring(admin.Email.IndexOf("@") + 1) + "\"  target=\"_blank\">马上登录</a>";
                    ResponseHelper.Redirect("/admin/FindPassword.aspx?emailResult=" + Server.UrlEncode(emailResult));
                }
                else
                {
                    //验证失败
                    ScriptHelper.AlertFront("图片验证失败,请拖动图片滑块重新验证。");
                }
                #endregion
            }
        }
コード例 #17
0
        /// <summary>
        /// 提交数据
        /// </summary>
        protected void Post()
        {
            string   userName   = StringHelper.SearchSafe(Server.UrlDecode(RequestHelper.GetForm <string>("UserName")));
            string   email      = StringHelper.SearchSafe(HttpUtility.HtmlDecode(RequestHelper.GetForm <string>("Email")));
            string   safeCode   = StringHelper.AddSafe(HttpUtility.HtmlDecode(RequestHelper.GetForm <string>("SafeCode")));
            int      checkType  = RequestHelper.GetForm <int>("checkType");
            string   mobile     = StringHelper.AddSafe(HttpUtility.HtmlDecode(RequestHelper.GetForm <string>("Mobile")));
            string   mobileCode = StringHelper.AddSafe(HttpUtility.HtmlDecode(RequestHelper.GetForm <string>("phoneVer")));
            UserInfo user       = new UserInfo();

            //检查用户名
            if (userName == string.Empty)
            {
                errorMessage = "账户名不能为空";
            }
            if (errorMessage == string.Empty)
            {
                user = UserBLL.Read(userName);
                if (user.Id <= 0)
                {
                    errorMessage = "账户不存在";
                }
            }
            //检查验证码
            if (errorMessage == string.Empty)
            {
                if (safeCode.ToLower() != Cookies.Common.CheckCode.ToLower())
                {
                    errorMessage = "验证码错误";
                }
            }
            switch (checkType)
            {
            case 1:    //邮箱验证
                //检查Email
                if (errorMessage == string.Empty)
                {
                    if (email == string.Empty)
                    {
                        errorMessage = "Email不能为空";
                    }
                }
                if (errorMessage == string.Empty)
                {
                    if (UserBLL.CheckEmail(email))
                    {
                        errorMessage = "不存在该Email";
                    }
                }
                //检查用户和Email是否匹配
                if (errorMessage == string.Empty)
                {
                    if (user.Email != email)
                    {
                        errorMessage = "账户名和Email不匹配";
                    }
                }
                //记录找回密码信息
                if (errorMessage == string.Empty)
                {
                    string tempSafeCode = Guid.NewGuid().ToString();
                    UserBLL.ChangeUserSafeCode(user.Id, tempSafeCode, RequestHelper.DateNow);
                    string              url             = "http://" + Request.ServerVariables["HTTP_HOST"] + "/mobile/User/ResetPassword.html?CheckCode=" + StringHelper.Encode(user.Id + "|" + email + "|" + userName + "|" + user.Mobile + "|" + tempSafeCode, ShopConfig.ReadConfigInfo().SecureKey);
                    EmailContentInfo    emailContent    = EmailContentHelper.ReadSystemEmailContent("FindPassword");
                    EmailSendRecordInfo emailSendRecord = new EmailSendRecordInfo();
                    emailSendRecord.Title     = emailContent.EmailTitle;
                    emailSendRecord.Content   = emailContent.EmailContent.Replace("$Url$", url);
                    emailSendRecord.IsSystem  = (int)BoolType.True;
                    emailSendRecord.EmailList = email;
                    emailSendRecord.IsStatisticsOpendEmail = (int)BoolType.False;
                    emailSendRecord.SendStatus             = (int)SendStatus.No;
                    emailSendRecord.AddDate  = RequestHelper.DateNow;
                    emailSendRecord.SendDate = RequestHelper.DateNow;
                    emailSendRecord.ID       = EmailSendRecordBLL.AddEmailSendRecord(emailSendRecord);
                    EmailSendRecordBLL.SendEmail(emailSendRecord);
                    result = "您的申请已提交,请登录邮箱重设你的密码!<a href=\"http://mail." + email.Substring(email.IndexOf("@") + 1) + "\"  target=\"_blank\">马上登录</a>";
                    Response.Clear();
                    Response.Write("ok|/mobile/User/FindPassword.html?Result=" + Server.UrlEncode(result));
                    Response.End();
                    //ResponseHelper.Redirect("/User/FindPassword.aspx?Result=" + Server.UrlEncode(result));
                }
                else
                {
                    Response.Clear();
                    Response.Write("error|" + errorMessage);
                    Response.End();
                    //ResponseHelper.Redirect("/User/FindPassword.aspx?ErrorMessage=" + Server.UrlEncode(errorMessage));
                }
                break;

            case 0:    //手机验证
                //检查Mobile
                if (string.IsNullOrEmpty(errorMessage) && string.IsNullOrEmpty(mobile))
                {
                    errorMessage = "请填写手机号";
                }
                //检查手机号是否匹配
                if (string.IsNullOrEmpty(errorMessage) && !string.Equals(user.Mobile, mobile))
                {
                    errorMessage = "请填写正确有效的手机号";
                }
                //检查校验码
                if (string.IsNullOrEmpty(errorMessage) && string.IsNullOrEmpty(mobileCode))
                {
                    errorMessage = "请填写短信校验码";
                }
                //手机短信校验码
                if (CookiesHelper.ReadCookie("MobileCode" + StringHelper.AddSafe(mobile)) == null)
                {
                    errorMessage = "校验码失效,请重新获取";
                }
                else
                {
                    string cookieMobileCode = CookiesHelper.ReadCookie("MobileCode" + StringHelper.AddSafe(mobile)).Value.ToString();
                    if (cookieMobileCode.ToLower() != mobileCode.ToLower())
                    {
                        errorMessage = "校验码错误";
                    }
                    else
                    {
                        CookiesHelper.DeleteCookie("MobileCode" + StringHelper.AddSafe(mobile));
                    }
                }
                //找回密码
                if (errorMessage == string.Empty)
                {
                    string tempSafeCode = Guid.NewGuid().ToString();
                    UserBLL.ChangeUserSafeCode(user.Id, tempSafeCode, RequestHelper.DateNow);
                    string url = "http://" + Request.ServerVariables["HTTP_HOST"] + "/mobile/User/ResetPassword.html?CheckCode=" + StringHelper.Encode(user.Id + "|" + user.Email + "|" + userName + "|" + mobile + "|" + tempSafeCode, ShopConfig.ReadConfigInfo().SecureKey);

                    Response.Clear();
                    Response.Write("ok|" + url);
                    Response.End();
                    //ResponseHelper.Redirect("/User/FindPassword.aspx?Result=" + Server.UrlEncode(result));
                }
                else
                {
                    Response.Clear();
                    Response.Write("error|" + errorMessage);
                    Response.End();
                    //ResponseHelper.Redirect("/User/FindPassword.aspx?ErrorMessage=" + Server.UrlEncode(errorMessage));
                }
                break;
            }
        }
コード例 #18
0
ファイル: FindPassword.cs プロジェクト: skybluebin007/JW-Shop
        /// <summary>
        /// 提交数据
        /// </summary>
        protected override void PostBack()
        {
            string userName = StringHelper.SearchSafe(RequestHelper.GetForm <string>("UserName"));
            string email    = StringHelper.SearchSafe(RequestHelper.GetForm <string>("Email"));
            string safeCode = RequestHelper.GetForm <string>("SafeCode");
            int    userID   = 0;

            //检查用户名
            if (userName == string.Empty)
            {
                errorMessage = "用户名不能为空";
            }
            if (errorMessage == string.Empty)
            {
                userID = UserBLL.Read(userName).Id;
                if (userID == 0)
                {
                    errorMessage = "不存在该用户名";
                }
            }
            //检查Email
            if (errorMessage == string.Empty)
            {
                if (email == string.Empty)
                {
                    errorMessage = "Email不能为空";
                }
            }
            if (errorMessage == string.Empty)
            {
                if (UserBLL.CheckEmail(email))
                {
                    errorMessage = "不存在该Email";
                }
            }
            //检查验证码
            if (errorMessage == string.Empty)
            {
                if (safeCode.ToLower() != Cookies.Common.CheckCode.ToLower())
                {
                    errorMessage = "验证码错误";
                }
            }
            //检查用户和Email是否匹配
            if (errorMessage == string.Empty)
            {
                UserInfo user = UserBLL.Read(userID);
                if (user.Email != email)
                {
                    errorMessage = "用户名和Email不匹配";
                }
            }
            //记录找回密码信息
            if (errorMessage == string.Empty)
            {
                string tempSafeCode = Guid.NewGuid().ToString();
                UserBLL.ChangeUserSafeCode(userID, tempSafeCode, RequestHelper.DateNow);
                string              url             = "http://" + Request.ServerVariables["HTTP_HOST"] + "/User/ResetPassword.aspx?CheckCode=" + StringHelper.Encode(userID + "|" + email + "|" + userName + "|" + tempSafeCode, ShopConfig.ReadConfigInfo().SecureKey);
                EmailContentInfo    emailContent    = EmailContentHelper.ReadSystemEmailContent("FindPassword");
                EmailSendRecordInfo emailSendRecord = new EmailSendRecordInfo();
                emailSendRecord.Title     = emailContent.EmailTitle;
                emailSendRecord.Content   = emailContent.EmailContent.Replace("$Url$", url);
                emailSendRecord.IsSystem  = (int)BoolType.True;
                emailSendRecord.EmailList = email;
                emailSendRecord.IsStatisticsOpendEmail = (int)BoolType.False;
                emailSendRecord.SendStatus             = (int)SendStatus.No;
                emailSendRecord.AddDate  = RequestHelper.DateNow;
                emailSendRecord.SendDate = RequestHelper.DateNow;
                emailSendRecord.ID       = EmailSendRecordBLL.AddEmailSendRecord(emailSendRecord);
                EmailSendRecordBLL.SendEmail(emailSendRecord);
                result = "您的申请已提交,请登录邮箱重设你的密码!<a href=\"http://mail." + email.Substring(email.IndexOf("@") + 1) + "\"  target=\"_blank\">马上登录</a>";
                ResponseHelper.Redirect("/User/FindPassword.aspx?Result=" + Server.UrlEncode(result));
            }
            else
            {
                ResponseHelper.Redirect("/User/FindPassword.aspx?ErrorMessage=" + Server.UrlEncode(errorMessage));
            }
        }
コード例 #19
0
ファイル: Register.cs プロジェクト: skybluebin007/JW-Shop
        /// <summary>
        /// 提交数据
        /// </summary>
        protected void PostBack()
        {
            string userName      = StringHelper.SearchSafe(StringHelper.AddSafe(RequestHelper.GetForm <string>("UserName")));
            string email         = StringHelper.SearchSafe(StringHelper.AddSafe(RequestHelper.GetForm <string>("Email")));
            string userPassword1 = RequestHelper.GetForm <string>("UserPassword1");
            string userPassword2 = RequestHelper.GetForm <string>("UserPassword2");
            string Mobile        = StringHelper.SearchSafe(StringHelper.AddSafe(RequestHelper.GetForm <string>("Phone")));
            string commendUser   = StringHelper.SearchSafe(StringHelper.AddSafe(RequestHelper.GetForm <string>("CommendUser")));
            string phoneCode     = RequestHelper.GetForm <string>("phoneVer");
            string safeCode      = RequestHelper.GetForm <string>("SafeCode");

            //检查用户名
            if (userName == string.Empty)
            {
                errorMessage = "用户名不能为空";
            }
            if (errorMessage == string.Empty)
            {
                string forbiddinName = ShopConfig.ReadConfigInfo().ForbiddenName;
                if (forbiddinName != string.Empty)
                {
                    foreach (string TempName in forbiddinName.Split('|'))
                    {
                        if (userName.IndexOf(TempName.Trim()) != -1)
                        {
                            errorMessage = "用户名含有非法字符";
                            break;
                        }
                    }
                }
            }
            if (errorMessage == string.Empty)
            {
                if (!UserBLL.UniqueUser(userName))
                {
                    errorMessage = "用户名已经被注册";
                }
            }

            //if (errorMessage == string.Empty)
            //{
            //    Regex rg = new Regex("^([a-zA-Z0-9_\u4E00-\u9FA5])+$");
            //    if (!rg.IsMatch(userName))
            //    {
            //        errorMessage = "用户名只能包含字母、数字、下划线、中文";
            //    }
            //}
            //检查密码
            if (errorMessage == string.Empty)
            {
                if (userPassword1 == string.Empty || userPassword2 == string.Empty)
                {
                    errorMessage = "密码不能为空";
                }
            }
            if (errorMessage == string.Empty)
            {
                if (userPassword1 != userPassword2)
                {
                    errorMessage = "两次密码不一致";
                }
            }
            #region 检查手机 邮箱 验证码
            if (ShopConfig.ReadConfigInfo().RegisterCheck == 1)
            {    //短信验证
                if (errorMessage == string.Empty)
                {
                    if (!ShopCommon.CheckMobile(Mobile))
                    {
                        errorMessage = "手机号码错误";
                    }
                }
                if (errorMessage == string.Empty)
                {
                    if (!UserBLL.CheckMobile(Mobile, 0))
                    {
                        errorMessage = "手机号码已经被注册";
                    }
                }

                //手机短信验证码
                if (errorMessage == string.Empty)
                {
                    if (CookiesHelper.ReadCookie("MobileCode" + StringHelper.AddSafe(Mobile)) == null)
                    {
                        errorMessage = "校验码失效,请重新获取";
                    }
                    else
                    {
                        string mobileCode = CookiesHelper.ReadCookie("MobileCode" + StringHelper.AddSafe(Mobile)).Value.ToString();
                        if (phoneCode.ToLower() != mobileCode.ToLower())
                        {
                            errorMessage = "校验码错误";
                        }
                        else
                        {    //验证通过后即清除校验码Cookies
                            CookiesHelper.DeleteCookie("MobileCode" + StringHelper.AddSafe(Mobile));
                        }
                    }
                }
            }
            else
            {    //邮件认证
                if (errorMessage == string.Empty)
                {
                    if (!UserBLL.CheckEmail(email))
                    {
                        errorMessage = "Email已被注册";
                    }
                }
                if (errorMessage == string.Empty)
                {
                    //普通验证码
                    if (safeCode.ToLower() != Cookies.Common.CheckCode.ToLower())
                    {
                        errorMessage = "验证码错误";
                    }
                }
            }

            #endregion
            string[] urlArr = Request.RawUrl.Split('/');

            //注册用户
            if (errorMessage == string.Empty)
            {
                UserInfo user = new UserInfo();
                user.UserName      = userName;
                user.UserPassword  = StringHelper.Password(userPassword1, (PasswordType)ShopConfig.ReadConfigInfo().PasswordType);
                user.Email         = email;
                user.Mobile        = Mobile;
                user.RegisterIP    = ClientHelper.IP;
                user.RegisterDate  = RequestHelper.DateNow;
                user.LastLoginIP   = ClientHelper.IP;
                user.LastLoginDate = RequestHelper.DateNow;
                user.FindDate      = RequestHelper.DateNow;
                user.Sex           = (int)SexType.Secret;
                if (ShopConfig.ReadConfigInfo().RegisterCheck == 1)
                {//短信验证,用户状态为已验证,可直接登录
                    user.Status = (int)UserStatus.Normal;
                }
                else
                {//邮件验证,用户状态为未验证,需登录邮件手动激活后再登录
                    user.Status = (int)UserStatus.NoCheck;
                }
                #region 纪录推荐用户
                //if (commendUser != string.Empty)
                //{
                //    UserInfo comUser = UserBLL.ReadUserByUserName(commendUser);
                //    if (comUser.ID > 0)
                //    {
                //        user.CommendUserID = comUser.ID;
                //    }
                //}
                //user.HasRepayed = 0;
                #endregion
                int userID = UserBLL.Add(user);


                if (ShopConfig.ReadConfigInfo().RegisterCheck == 1)
                {
                    //短信验证,直接登录
                    HttpCookie cookie = new HttpCookie(ShopConfig.ReadConfigInfo().UserCookies);
                    cookie["User"]     = StringHelper.Encode(userName, ShopConfig.ReadConfigInfo().SecureKey);
                    cookie["Password"] = StringHelper.Encode(userPassword1, ShopConfig.ReadConfigInfo().SecureKey);
                    cookie["Key"]      = StringHelper.Encode(ClientHelper.Agent, ShopConfig.ReadConfigInfo().SecureKey);
                    HttpContext.Current.Response.Cookies.Add(cookie);

                    user = UserBLL.ReadUserMore(userID);
                    UserBLL.UserLoginInit(user);
                    //UserBLL.(user);
                    if (urlArr[urlArr.Length - 2].ToLower() == "mobile")
                    {
                        // ResponseHelper.Redirect("/Mobile/Index.aspx");
                        Response.Write("ok|/Mobile/Index.html");
                        Response.End();
                    }
                    else
                    {
                        //  ResponseHelper.Redirect("/User/Index.aspx");
                        Response.Write("ok|/User/Index.html");
                        Response.End();
                    }
                }
                else if (ShopConfig.ReadConfigInfo().RegisterCheck == 2)
                {
                    try
                    {
                        //邮件验证,发送验证邮件
                        string              url             = "http://" + Request.ServerVariables["HTTP_HOST"] + "/User/ActiveUser.aspx?CheckCode=" + StringHelper.Encode(userID + "|" + email + "|" + userName, ShopConfig.ReadConfigInfo().SecureKey);
                        EmailContentInfo    emailContent    = EmailContentHelper.ReadSystemEmailContent("Register");
                        EmailSendRecordInfo emailSendRecord = new EmailSendRecordInfo();
                        emailSendRecord.Title     = emailContent.EmailTitle;
                        emailSendRecord.Content   = emailContent.EmailContent.Replace("$UserName$", user.UserName).Replace("$Url$", url);
                        emailSendRecord.IsSystem  = (int)BoolType.True;
                        emailSendRecord.EmailList = email;
                        emailSendRecord.IsStatisticsOpendEmail = (int)BoolType.False;
                        emailSendRecord.SendStatus             = (int)SendStatus.No;
                        emailSendRecord.AddDate  = RequestHelper.DateNow;
                        emailSendRecord.SendDate = RequestHelper.DateNow;
                        emailSendRecord.ID       = EmailSendRecordBLL.AddEmailSendRecord(emailSendRecord);
                        EmailSendRecordBLL.SendEmail(emailSendRecord);
                        result = "恭喜您,注册成功,请登录邮箱激活!<a href=\"http://mail." + email.Substring(email.IndexOf("@") + 1) + "\"  target=\"_blank\">马上激活</a>";
                        Response.Write("ok|" + result);
                    }
                    catch (Exception ex)
                    {
                        Response.Write("error|激活邮件发送失败,请联系网站客服");
                    }
                    finally {
                        Response.End();
                    }
                }
                else
                {
                    //人工审核
                    result = "恭喜您,注册成功,请等待我们的审核!";
                    Response.Write("ok|" + result);
                    Response.End();
                }

                if (urlArr[urlArr.Length - 2].ToLower() == "mobile")
                {
                    ResponseHelper.Redirect("/Mobile/Register.aspx?Result=" + Server.UrlEncode(result));
                }
                else
                {
                    ResponseHelper.Redirect("/User/Register.aspx?Result=" + Server.UrlEncode(result));
                }
            }
            else
            {
                Response.Write("error|" + errorMessage);
                Response.End();
                //if (urlArr[urlArr.Length - 2].ToLower() == "mobile")
                //{
                //    ResponseHelper.Redirect("/Mobile/Register.aspx?ErrorMessage=" + Server.UrlEncode(errorMessage));
                //}
                //else
                //{
                //    ResponseHelper.Redirect("/User/Register.aspx?ErrorMessage=" + Server.UrlEncode(errorMessage));
                //}
            }
        }
コード例 #20
0
        protected void Page_Load(object sender, EventArgs e)
        {
            Log.Info(this.GetType().ToString(), "page load");

            if (Page.IsPostBack)
            {
                return;
            }

            /*******************请求参数验证 start*****************************************************************/
            int orderRefundId = RequestHelper.GetQueryString <int>("order_refund_id");
            var orderRefund   = OrderRefundBLL.Read(orderRefundId);

            if (orderRefund.Id < 1)
            {
                Response.Write("<p style=\"margin-left:130px\">无效的退款服务工单</p>");
                Response.End();
            }

            decimal refundMoney = orderRefund.RefundMoney;

            if (refundMoney <= 0)
            {
                Response.Write("<p style=\"margin-left:130px\">无效的退款金额,退款金额必须大于0</p>");
                Response.End();
            }

            if (orderRefund.Status == (int)OrderRefundStatus.HasReturn)
            {
                Response.Write("<p style=\"margin-left:130px\">无效的退款请求,该服务工单已处理退款</p>");
                Response.End();
            }
            if (orderRefund.Status != (int)OrderRefundStatus.Returning)
            {
                Response.Write("<p style=\"margin-left:130px\">无效的退款请求,请等待管理员审核</p>");
                Response.End();
            }

            var order = OrderBLL.Read(orderRefund.OrderId);

            if (order.Id < 1)
            {
                Response.Write("<p style=\"margin-left:130px\">无效的订单</p>");
                Response.End();
            }

            string tradeNo = order.WxPayTradeNo;

            if (string.IsNullOrEmpty(tradeNo))
            {
                Response.Write("<p style=\"margin-left:130px\">无效的微信支付交易号</p>");
                Response.End();
            }

            decimal totalMoney = order.ProductMoney - order.FavorableMoney + order.ShippingMoney + order.OtherMoney - order.Balance - order.CouponMoney - order.PointMoney;

            if (refundMoney > totalMoney)
            {
                Response.Write("<p style=\"margin-left:130px\">退款金额不能超过订单金额</p>");
                Response.End();
            }

            //商户退款单号
            //商户系统内部的退款单号,商户系统内部唯一,同一退款单号多次请求只退一笔
            string batch_no = orderRefund.BatchNo;

            if (string.IsNullOrEmpty(batch_no))
            {
                batch_no = DateTime.Now.ToString("yyyyMMddhhmmssfff");

                //记录退款批次号存入订单退款表
                OrderRefundBLL.UpdateBatchNo(orderRefundId, batch_no);
            }

            /*******************请求参数验证 end*****************************************************************/


            //订单总金额
            string total_fee = Convert.ToInt32(totalMoney * 100).ToString();
            //退款金额
            string refund_fee = Convert.ToInt32(refundMoney * 100).ToString();

            //申请退款

            /***
             * 申请退款完整业务流程逻辑
             * @param transaction_id 微信订单号(优先使用)
             * @param out_trade_no 商户订单号
             * @param out_refund_no 商户退款单号
             * @param total_fee 订单总金额
             * @param refund_fee 退款金额
             * @return 退款结果(xml格式)
             */
            string result = "";

            try
            {
                result = RefundBusiness.Run(tradeNo, "", batch_no, total_fee, refund_fee);

                //退款成功
                bool   isSuccess = true;
                string msg       = "";
                //退款到余额
                if (orderRefund.RefundBalance > 0)
                {
                    //在这里写自己的逻辑
                }

                if (isSuccess)
                {
                    orderRefund.Remark = "退款完成";
                    #region 发送订单退款成功通知
                    int       isSendNotice  = ShopConfig.ReadConfigInfo().RefundOrder;
                    int       isSendEmail   = ShopConfig.ReadConfigInfo().RefundOrderEmail;
                    int       isSendMessage = ShopConfig.ReadConfigInfo().RefundOrderMsg;
                    string    key           = "RefundOrder";
                    OrderInfo order         = OrderBLL.Read(orderRefund.OrderId);
                    if (isSendNotice == (int)BoolType.True && key != string.Empty)
                    {
                        if (isSendEmail == (int)BoolType.True)
                        {//发邮件
                            try
                            {
                                EmailContentInfo    emailContent    = EmailContentHelper.ReadSystemEmailContent(key);
                                EmailSendRecordInfo emailSendRecord = new EmailSendRecordInfo();
                                emailSendRecord.Title     = emailContent.EmailTitle;
                                emailSendRecord.Content   = emailContent.EmailContent.Replace("$UserName$", order.UserName).Replace("$OrderNumber$", order.OrderNumber).Replace("$PayName$", order.PayName).Replace("$ShippingName$", ShippingBLL.Read(order.ShippingId).Name).Replace("$ShippingNumber$", order.ShippingNumber).Replace("$ShippingDate$", order.ShippingDate.ToString("yyyy-MM-dd"));
                                emailSendRecord.IsSystem  = (int)BoolType.True;
                                emailSendRecord.EmailList = order.Email;
                                emailSendRecord.IsStatisticsOpendEmail = (int)BoolType.False;
                                emailSendRecord.SendStatus             = (int)SendStatus.No;
                                emailSendRecord.AddDate  = RequestHelper.DateNow;
                                emailSendRecord.SendDate = RequestHelper.DateNow;
                                emailSendRecord.ID       = EmailSendRecordBLL.AddEmailSendRecord(emailSendRecord);
                                EmailSendRecordBLL.SendEmail(emailSendRecord);
                                //result = "通知邮件已发送。";
                            }
                            catch
                            {
                                //result = "未发送通知邮件。";
                            }
                        }
                        if (isSendMessage == (int)BoolType.True)
                        {//发短信
                         //result += "未发送通知短信。";
                        }
                    }
                    #endregion
                }
                else
                {
                    orderRefund.Remark = orderRefund.RefundPayKey + " 已退款完成,余额退款失败,失败信息:" + msg + ",请线下处理。";
                }

                orderRefund.Status   = (int)OrderRefundStatus.HasReturn;
                orderRefund.TmRefund = DateTime.Now;
                OrderRefundBLL.Update(orderRefund);

                OrderRefundActionBLL.Add(new OrderRefundActionInfo
                {
                    OrderRefundId = orderRefund.Id,
                    Status        = isSuccess ? 1 : 0,
                    Tm            = DateTime.Now,
                    UserType      = 2,
                    UserId        = 0,
                    UserName      = "******",
                    Remark        = orderRefund.Remark
                });

                Response.Redirect("/Admin/OrderRefundAdd.aspx?Id=" + orderRefundId);
            }
            catch
            {
                Response.Write("<p style=\"margin-left:130px\">退款遇到问题</p>");
            }

            //Response.Write(result);
        }
コード例 #21
0
        /// <summary>
        /// 修改邮箱
        /// </summary>
        protected void UpdateUserEmail()
        {
            string msg = string.Empty;

            try
            {
                UserInfo user     = UserBLL.Read(base.UserId);
                string   email    = StringHelper.AddSafe(RequestHelper.GetForm <string>("Email"));
                string   safeCode = RequestHelper.GetForm <string>("SafeCode");
                //检查邮箱
                if (msg == string.Empty)
                {
                    if (string.IsNullOrEmpty(email))
                    {
                        msg = "error|请填写邮箱";
                    }
                    else if (!new Regex("^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\\.[a-zA-Z0-9_-]{2,3}){1,2})$").IsMatch(email))
                    {
                        msg = "error|请填写邮箱";
                    }
                    else
                    {
                        if (!UserBLL.CheckEmail(email, base.UserId))
                        {
                            msg = "error|Email已被其他会员绑定";
                        }
                    }
                }
                //检查验证码
                if (msg == string.Empty)
                {
                    if (safeCode.ToLower() != Cookies.Common.CheckCode.ToLower())
                    {
                        msg = "error|验证码错误";
                    }
                }
                if (msg == string.Empty)
                {
                    string tempSafeCode = Guid.NewGuid().ToString();
                    UserBLL.ChangeUserSafeCode(user.Id, tempSafeCode, RequestHelper.DateNow);
                    string              url             = "http://" + Request.ServerVariables["HTTP_HOST"] + "/mobile/User/BindEmail.html?CheckCode=" + StringHelper.Encode(user.Id + "|" + email + "|" + tempSafeCode, ShopConfig.ReadConfigInfo().SecureKey);
                    EmailContentInfo    emailContent    = EmailContentHelper.ReadSystemEmailContent("BindEmail");
                    EmailSendRecordInfo emailSendRecord = new EmailSendRecordInfo();
                    emailSendRecord.Title     = emailContent.EmailTitle;
                    emailSendRecord.Content   = emailContent.EmailContent.Replace("$Url$", url).Replace("$Hour$", ShopConfig.ReadConfigInfo().BindEmailTime.ToString());
                    emailSendRecord.IsSystem  = (int)BoolType.True;
                    emailSendRecord.EmailList = email;
                    emailSendRecord.IsStatisticsOpendEmail = (int)BoolType.False;
                    emailSendRecord.SendStatus             = (int)SendStatus.No;
                    emailSendRecord.AddDate  = RequestHelper.DateNow;
                    emailSendRecord.SendDate = RequestHelper.DateNow;
                    emailSendRecord.ID       = EmailSendRecordBLL.AddEmailSendRecord(emailSendRecord);
                    EmailSendRecordBLL.SendEmail(emailSendRecord);
                    result = "已发送验证邮件至您填写的邮箱,请在" + ShopConfig.ReadConfigInfo().BindEmailTime.ToString() + "小时内完成验证!<a href=\"http://mail." + email.Substring(email.IndexOf("@") + 1) + "\"  target=\"_blank\">马上登录邮箱</a>";

                    msg = "ok|/mobile/User/UpdateEmail.html?Result=" + Server.UrlEncode(result);
                }
                Response.Clear();
                Response.Write(msg);
            }
            catch (Exception ex)
            {
                Response.Clear();
                Response.Write("error|系统忙,请稍后重试");
            }
            finally
            {
                Response.End();
            }
        }
コード例 #22
0
        /// <summary>
        /// 提交数据
        /// </summary>
        protected override void PostBack()
        {
            string userName      = StringHelper.SearchSafe(StringHelper.AddSafe(RequestHelper.GetForm <string>("UserName")));
            string email         = StringHelper.SearchSafe(StringHelper.AddSafe(RequestHelper.GetForm <string>("Email")));
            string userPassword1 = RequestHelper.GetForm <string>("UserPassword1");
            string userPassword2 = RequestHelper.GetForm <string>("UserPassword2");
            string safeCode      = RequestHelper.GetForm <string>("SafeCode");

            //检查用户名
            if (userName == string.Empty)
            {
                errorMessage = "用户名不能为空";
            }
            if (errorMessage == string.Empty)
            {
                string forbiddinName = ShopConfig.ReadConfigInfo().ForbiddenName;
                if (forbiddinName != string.Empty)
                {
                    foreach (string TempName in forbiddinName.Split('|'))
                    {
                        if (userName.IndexOf(TempName.Trim()) != -1)
                        {
                            errorMessage = "用户名含有非法字符";
                            break;
                        }
                    }
                }
            }
            if (errorMessage == string.Empty)
            {
                if (!UserBLL.UniqueUser(userName))
                {
                    errorMessage = "用户名已经被占用";
                }
            }
            if (errorMessage == string.Empty)
            {
                Regex rg = new Regex("^([a-zA-Z0-9_\u4E00-\u9FA5])+$");
                if (!rg.IsMatch(userName))
                {
                    errorMessage = "用户名只能包含字母、数字、下划线、中文";
                }
            }
            //检查密码
            if (errorMessage == string.Empty)
            {
                if (userPassword1 == string.Empty || userPassword2 == string.Empty)
                {
                    errorMessage = "密码不能为空";
                }
            }
            if (errorMessage == string.Empty)
            {
                if (userPassword1 != userPassword2)
                {
                    errorMessage = "两次密码不一致";
                }
            }
            //检查验证码
            if (errorMessage == string.Empty)
            {
                if (safeCode.ToLower() != Cookies.Common.CheckCode.ToLower())
                {
                    errorMessage = "验证码错误";
                }
            }
            //注册用户
            if (errorMessage == string.Empty)
            {
                UserInfo user = new UserInfo();
                user.UserName      = userName;
                user.UserPassword  = StringHelper.Password(userPassword1, (PasswordType)ShopConfig.ReadConfigInfo().PasswordType);
                user.Email         = email;
                user.RegisterIP    = ClientHelper.IP;
                user.RegisterDate  = RequestHelper.DateNow;
                user.LastLoginIP   = ClientHelper.IP;
                user.LastLoginDate = RequestHelper.DateNow;
                user.FindDate      = RequestHelper.DateNow;
                if (ShopConfig.ReadConfigInfo().RegisterCheck == 1)
                {
                    user.Status = (int)UserStatus.Normal;
                }
                else
                {
                    user.Status = (int)UserStatus.NoCheck;
                }
                int userID = UserBLL.Add(user);
                if (ShopConfig.ReadConfigInfo().RegisterCheck == 1)
                {
                    //无须验证,直接登录
                    HttpCookie cookie = new HttpCookie(ShopConfig.ReadConfigInfo().UserCookies);
                    cookie["User"]     = StringHelper.Encode(userName, ShopConfig.ReadConfigInfo().SecureKey);
                    cookie["Password"] = StringHelper.Encode(userPassword1, ShopConfig.ReadConfigInfo().SecureKey);
                    cookie["Key"]      = StringHelper.Encode(ClientHelper.Agent, ShopConfig.ReadConfigInfo().SecureKey);
                    HttpContext.Current.Response.Cookies.Add(cookie);

                    user = UserBLL.Read(userID);
                    UserBLL.UserLoginInit(user);
                    ResponseHelper.Redirect("/Mobile/Index.html");
                }
                else if (ShopConfig.ReadConfigInfo().RegisterCheck == 2)
                {
                    //邮件验证
                    string              url             = "http://" + Request.ServerVariables["HTTP_HOST"] + "/User/ActiveUser.html?CheckCode=" + StringHelper.Encode(userID + "|" + email + "|" + userName, ShopConfig.ReadConfigInfo().SecureKey);
                    EmailContentInfo    emailContent    = EmailContentHelper.ReadSystemEmailContent("Register");
                    EmailSendRecordInfo emailSendRecord = new EmailSendRecordInfo();
                    emailSendRecord.Title     = emailContent.EmailTitle;
                    emailSendRecord.Content   = emailContent.EmailContent.Replace("$UserName$", user.UserName).Replace("$Url$", url);
                    emailSendRecord.IsSystem  = (int)BoolType.True;
                    emailSendRecord.EmailList = email;
                    emailSendRecord.IsStatisticsOpendEmail = (int)BoolType.False;
                    emailSendRecord.SendStatus             = (int)SendStatus.No;
                    emailSendRecord.AddDate  = RequestHelper.DateNow;
                    emailSendRecord.SendDate = RequestHelper.DateNow;
                    emailSendRecord.ID       = EmailSendRecordBLL.AddEmailSendRecord(emailSendRecord);
                    EmailSendRecordBLL.SendEmail(emailSendRecord);
                    result = "恭喜您,注册成功,请登录邮箱激活!<a href=\"http://mail." + email.Substring(email.IndexOf("@") + 1) + "\"  target=\"_blank\">马上激活</a>";
                }
                else
                {
                    //人工审核
                    result = "恭喜您,注册成功,请等待我们的审核!";
                }
                ResponseHelper.Redirect("/Mobile/Register.html?Result=" + Server.UrlEncode(result));
            }
            else
            {
                ResponseHelper.Redirect("/Mobile/Register.html?ErrorMessage=" + Server.UrlEncode(errorMessage));
            }
        }
コード例 #23
0
        /// <summary>
        /// 退款到账户余额及各支付渠道
        /// </summary>
        /// <param name="orderRefund"></param>
        public static void RefundToAnyPay(OrderRefundInfo orderRefund)
        {
            if (orderRefund.Status != (int)OrderRefundStatus.Returning)
            {
                return;
            }

            if (RefundOnline)
            {
                if (PayPlugins.ReadPayPlugins(orderRefund.RefundPayKey).IsOnline == 1 && (OrderBLL.Read(orderRefund.OrderId).AliPayTradeNo.Trim() != string.Empty || OrderBLL.Read(orderRefund.OrderId).WxPayTradeNo.Trim() != string.Empty))//只有在线付款才走线上流程,并且存在支付交易号(支付宝微信任意一个)
                {
                    //退款到各支付渠道
                    //如需退余额,将在第三方支付退款成功后操作
                    //这样做的好处在于保障了余额能够被准确退还。不会出现退了余额,但支付宝或微信因为人为或意外的原因没退成功的情况。
                    if (orderRefund.RefundMoney > 0)
                    {
                        //HttpContext.Current.Response.Redirect(string.Format("/Plugins/Pay/{0}/Refund.aspx?order_refund_id={1}", orderRefund.RefundPayKey, orderRefund.Id));
                        HttpContext.Current.Response.Redirect(string.Format("/Plugins/Pay/{0}/Refund.aspx?order_refund_id={1}&returnurl={2}", orderRefund.RefundPayKey, orderRefund.Id, RefundRedirectUrl));
                    }
                    else
                    {
                        //只需退款到余额
                        //在这里写自己的逻辑
                        if (orderRefund.RefundBalance > 0)
                        {
                            //HttpContext.Current.Response.Redirect(string.Format("/Admin/OrderRefundToBalance.aspx?order_refund_id={0}", orderRefund.Id));
                            HttpContext.Current.Response.Redirect(string.Format("/Admin/OrderRefundToBalance.aspx?order_refund_id={0}&returnurl={1}", orderRefund.Id, RefundRedirectUrl));
                        }
                    }
                }
                else//线下退款则直接更改状态,所以线下退款只能管理员自己审核。
                {
                    orderRefund.Remark   = "退款完成";
                    orderRefund.Status   = (int)OrderRefundStatus.HasReturn;
                    orderRefund.TmRefund = DateTime.Now;
                    OrderRefundBLL.Update(orderRefund);

                    OrderRefundActionBLL.Add(new OrderRefundActionInfo
                    {
                        OrderRefundId = orderRefund.Id,
                        Status        = 1,
                        Tm            = DateTime.Now,
                        UserType      = 2,
                        UserId        = Cookies.Admin.GetAdminID(false),
                        UserName      = Cookies.Admin.GetAdminName(false),
                        Remark        = orderRefund.Remark
                    });
                    #region 发送订单退款成功通知
                    int       isSendNotice  = ShopConfig.ReadConfigInfo().RefundOrder;
                    int       isSendEmail   = ShopConfig.ReadConfigInfo().RefundOrderEmail;
                    int       isSendMessage = ShopConfig.ReadConfigInfo().RefundOrderMsg;
                    string    key           = "RefundOrder";
                    OrderInfo order         = OrderBLL.Read(orderRefund.OrderId);
                    if (isSendNotice == (int)BoolType.True && key != string.Empty)
                    {
                        if (isSendEmail == (int)BoolType.True)
                        {//发邮件
                            try
                            {
                                EmailContentInfo    emailContent    = EmailContentHelper.ReadSystemEmailContent(key);
                                EmailSendRecordInfo emailSendRecord = new EmailSendRecordInfo();
                                emailSendRecord.Title     = emailContent.EmailTitle;
                                emailSendRecord.Content   = emailContent.EmailContent.Replace("$UserName$", order.UserName).Replace("$OrderNumber$", order.OrderNumber).Replace("$PayName$", order.PayName).Replace("$ShippingName$", ShippingBLL.Read(order.ShippingId).Name).Replace("$ShippingNumber$", order.ShippingNumber).Replace("$ShippingDate$", order.ShippingDate.ToString("yyyy-MM-dd"));
                                emailSendRecord.IsSystem  = (int)BoolType.True;
                                emailSendRecord.EmailList = order.Email;
                                emailSendRecord.IsStatisticsOpendEmail = (int)BoolType.False;
                                emailSendRecord.SendStatus             = (int)SendStatus.No;
                                emailSendRecord.AddDate  = RequestHelper.DateNow;
                                emailSendRecord.SendDate = RequestHelper.DateNow;
                                emailSendRecord.ID       = EmailSendRecordBLL.AddEmailSendRecord(emailSendRecord);
                                EmailSendRecordBLL.SendEmail(emailSendRecord);
                                //result = "通知邮件已发送。";
                            }
                            catch
                            {
                                //result = "未发送通知邮件。";
                            }
                        }
                        if (isSendMessage == (int)BoolType.True)
                        {//发短信
                         //result += "未发送通知短信。";
                        }
                    }
                    #endregion
                    if (string.IsNullOrEmpty(RefundRedirectUrl))
                    {
                        HttpContext.Current.Response.Redirect(string.Format("/Admin/OrderRefundAdd.aspx?id={0}", orderRefund.Id));
                    }
                    else
                    {
                        HttpContext.Current.Response.Redirect(RefundRedirectUrl);
                    }
                }
            }
            else
            {
                //处理订单、商品的退款状态,线下退款
                //在这里写自己的逻辑
                HttpContext.Current.Response.Redirect(string.Format("/Admin/OrderRefundToBalance.aspx?order_refund_id={0}&returnurl={1}", orderRefund.Id, RefundRedirectUrl));
            }
        }