public static string Create(int length, IdentifyCodeType identifyCodeType = IdentifyCodeType.Number) { var line = string.Empty; switch (identifyCodeType) { case IdentifyCodeType.Letter: line = charStr; break; case IdentifyCodeType.Number: line = numLine; break; case IdentifyCodeType.MixNumberLetter: line = charStr + numLine; break; } var lineArray = line.ToCharArray(); var sb = new StringBuilder(); var random = new Random(unchecked ((int)DateTime.Now.Ticks)); for (var i = 0; i < length; i++) { sb.Append(lineArray[random.Next(lineArray.Length)]); } return(sb.ToString()); }
public string IdentifyCode2(string account, IdentifyCodeType identifyCodeType) { var accountType = AccountHelper.JudgeAccountRegType(account); if (accountType == AccountRegistType.UserName) { throw new LotteryException("只能通过手机号码或Email获取验证码"); } var identifyCode = _identifyCodeAppService.GenerateIdentifyCode(account, accountType); switch (accountType) { case AccountRegistType.Email: SendIdentifyCodeByEmail(account, identifyCode, identifyCodeType); break; case AccountRegistType.Phone: SendIdentifyCodeByPhone(account, identifyCode, identifyCodeType); break; } return("验证码获取成功,请注意查收"); }
private void SendIdentifyCodeByPhone(string phone, IdentifyCodeOutput identifyCode, IdentifyCodeType identifyCodeType) { string smsTempleteCode; string title = ""; switch (identifyCodeType) { case IdentifyCodeType.Register: smsTempleteCode = "SMS_128575019"; title = "用户注册"; break; case IdentifyCodeType.RetrievePwd: smsTempleteCode = "SMS_128545037"; title = "找回密码"; break; default: throw new LotteryException("无法获取该种类型的验证码"); } var templateParam = "{\"code\":\"" + identifyCode.Code + "\"}"; SendCommandAsync(new AddMessageRecordCommand(Guid.NewGuid().ToString(), null, phone, title, templateParam, (int)identifyCodeType, (int)AccountRegistType.Phone, _lotterySession.UserId)); if (identifyCode.IsNew) { SendCommandAsync(new AddIdentifyCodeCommand(identifyCode.IdentifyCodeId, phone, identifyCode.Code, (int)identifyCodeType, (int)AccountRegistType.Phone, identifyCode.ExpirationDate, _lotterySession.UserId)); } else { SendCommandAsync(new UpdateIdentifyCodeCommand(identifyCode.IdentifyCodeId, identifyCode.Code, phone, identifyCode.ExpirationDate, _lotterySession.UserId)); } _smsSender.Send(phone, templateParam, smsTempleteCode); }
private void SendIdentifyCodeByEmail(string email, IdentifyCodeOutput identifyCode, IdentifyCodeType identifyCodeType) { var templetParams = new Dictionary <string, string>() { { "code", identifyCode.Code } }; var emailContent = string.Empty; var emailTitle = string.Empty; switch (identifyCodeType) { case IdentifyCodeType.Register: emailTitle = "注册用户"; emailContent = EmailTempletHelper.ReadContent("RegisterTemplet", templetParams); break; case IdentifyCodeType.RetrievePwd: emailTitle = "找回密码"; emailContent = EmailTempletHelper.ReadContent("RetrievePwd", templetParams); break; } SendCommandAsync(new AddMessageRecordCommand(Guid.NewGuid().ToString(), null, email, emailTitle, emailContent, (int)identifyCodeType, (int)AccountRegistType.Email, _lotterySession.UserId)); if (identifyCode.IsNew) { SendCommandAsync(new AddIdentifyCodeCommand(identifyCode.IdentifyCodeId, email, identifyCode.Code, (int)identifyCodeType, (int)AccountRegistType.Email, identifyCode.ExpirationDate, _lotterySession.UserId)); } else { SendCommandAsync(new UpdateIdentifyCodeCommand(identifyCode.IdentifyCodeId, identifyCode.Code, email, identifyCode.ExpirationDate, _lotterySession.UserId)); } _emailSender.Send(email, emailTitle, emailContent, false); }