/// <summary> /// 发送语音短信 /// </summary> /// <param name="param"></param> /// <returns></returns> public SmsResponseDto <SendSmsResponseDto> SendVoiceSms(SendVoiceSmsParam param) { new SendVoiceSmsParamValidator().Validate(param).Check(HttpStatus.Err.Name); CommonRequest request = base.GetRequest("dyvmsapi.aliyuncs.com", "SingleCallByTts", "2017-05-25", "cn-hangzhou"); request.AddQueryParameters("CalledNumber", param.Phone); request.AddQueryParameters("CalledShowNumber", param.CalledShowNumber); request.AddQueryParameters("TtsCode", param.TemplateCode); request.AddQueryParameters("PlayTimes", param.PlatTimes.ToString()); //播放次数 request.AddQueryParameters("Volume", param.Volume.ToString()); //播放音量 Dictionary <string, string> data = new Dictionary <string, string>(); param.Content.ForEach(item => { data.Add(item.Key, item.Value); }); request.AddQueryParameters("TtsParam", _jsonProvider.Serializer(data)); try { CommonResponse response = GetClient().GetCommonResponse(request); if (response != null) { var res = _jsonProvider .Deserialize <SendVoiceSmsResponseDto>( response.Data); if (res != null) { SmsCode smsCode = SmsCodeMap.Where(x => x.Key == res.Code).Select(x => x.Value) .FirstOrDefault(); if (smsCode != default(SmsCode)) { return(new SmsResponseDto <SendSmsResponseDto>() { Code = smsCode, Msg = smsCode == SmsCode.Ok ? "success" : "lose", Extend = new SendSmsResponseDto(param.Phone, new SendSmsExtend() { BizId = smsCode == SmsCode.Ok ? _jsonProvider .Deserialize <SendVoiceSmsSuccessResponseDto>( response.Data).CallId : "", RequestId = res.RequestId, Msg = res.Message }) }); } } } } catch (ServerException e) { } return(new SmsResponseDto <SendSmsResponseDto>() { Code = SmsCode.Unknown, Msg = "发送异常" }); }
public async Task <int> InsertAsync(SmsCode entity) { if (entity == null) { throw new ArgumentNullException("SmsCode"); } return(await _SmsCodeRepository.InsertAsync(entity)); }
public async Task <int> DeleteAsync(SmsCode entity) { if (entity == null) { throw new ArgumentNullException("SmsCode"); } //entity.Deleted = true; return(await _SmsCodeRepository.DeleteAsync(entity)); }
public async Task <IActionResult> Setting(ChangePasswordViewModel model) { var user = await _userManager.GetUserAsync(User); if (user == null) { throw new ApplicationException($"Unable to load user with ID '{_userManager.GetUserId(User)}'."); } if (model.NewPassword != null && model.OldPassword != null) { IdentityResult result = await _userManager.ChangePasswordAsync(user, model.OldPassword, model.NewPassword); if (result.Succeeded) { return(RedirectToAction("Cabinet", "CustomManage")); } else { ModelState.AddModelError("", "Неправильный текущи пароль"); } } else if (model.PhoneNumber != null) { var number = _userManager.Users.FirstOrDefault(p => p.PhoneNumber == model.PhoneNumber); if (number != null) { ModelState.AddModelError("", "Такой номер уже существует"); } else { Random ran = new Random(); int code = ran.Next(11111, 99999); SmsCode sms = new SmsCode { NewPhoneNumber = model.PhoneNumber, SMSCode = code.ToString(), OldPhoneNumber = user.PhoneNumber }; db.SmsCodes.Add(sms); await db.SaveChangesAsync(); HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create($"https://sms.ru/sms/send?api_id=70E095C7-C999-495D-31B6-5FBE4AB00C59&to={model.PhoneNumber}&msg={code}&json=1"); HttpWebResponse myResp = (HttpWebResponse)myReq.GetResponse(); System.IO.StreamReader respStreamReader = new System.IO.StreamReader(myResp.GetResponseStream()); string responseString = respStreamReader.ReadToEnd(); respStreamReader.Close(); myResp.Close(); return(RedirectToAction("NumberSetting", "CustomManage", new { model.PhoneNumber })); } } return(View()); }
public async Task <bool> CodeIsValidAsync(string phone, int code) { SmsCode sms = await smsRepository.FirstOrDefaultAsync(s => s.Phone == phone && s.Code == code); if (sms != null) { await smsRepository.DeleteAsync(sms); return(true); } return(false); }
private async Task DBInsertSMSCodeAsync(string phone, int code) { var smsCode = new SmsCode { Phone = phone, Code = code, TimeStamp = DateTime.Now }; using (var db = new DbContext(fixture.ConnectionString)) { await db.InsertAsync(smsCode); } }
/// <summary> /// 验证验证码是否正确 /// </summary> /// <param name="code">验证码对象</param> /// <returns>Result</returns> public Result <object> verifyCode(SmsCode code) { var limitKey = Util.hash("VerifyCode" + code.type + code.mobile); var surplus = Params.callManage.getSurplus(limitKey, 10); if (surplus > 0) { return(result.tooFrequent(surplus)); } var verify = Core.verifySmsCode(code.type, code.mobile, code.code, !code.remove); return(verify ? result.success() : result.smsCodeError()); }
public async Task <IActionResult> Forget_Password(ForgetPasswordViewModel model) { if (ModelState.IsValid) { var number = _userManager.Users.FirstOrDefault(p => p.PhoneNumber == model.PhoneNumber); if (number != null) { SmsCode smsnumber = db.SmsCodes.FirstOrDefault(p => p.NewPhoneNumber == model.PhoneNumber); if (smsnumber != null) { IEnumerable <SmsCode> smsenum = db.SmsCodes; foreach (var b in smsenum) { if (b.NewPhoneNumber == model.PhoneNumber) { db.SmsCodes.Remove(b); } } await db.SaveChangesAsync(); } gert = ran.Next(11111, 66666); SmsCode sms = new SmsCode { NewPhoneNumber = model.PhoneNumber, SMSCode = gert.ToString() }; await db.SmsCodes.AddAsync(sms); await db.SaveChangesAsync(); HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create($"https://sms.ru/sms/send?api_id=70E095C7-C999-495D-31B6-5FBE4AB00C59&to={model.PhoneNumber}&msg={gert}&json=1"); HttpWebResponse myResp = (HttpWebResponse)myReq.GetResponse(); System.IO.StreamReader respStreamReader = new System.IO.StreamReader(myResp.GetResponseStream()); string responseString = respStreamReader.ReadToEnd(); respStreamReader.Close(); myResp.Close(); return(RedirectToAction("Forget_Password_Confirm", "Account", new { model.PhoneNumber })); } ModelState.AddModelError("", "Пользователь с таким номером не существует..."); } return(View(model)); }
public async Task SendCodeAsync(string phone) { // TODO: uncomment this //int code = rnd.Next(1000, 9999); int code = 1111; SmsCode sms = await smsRepository.FirstOrDefaultAsync(s => s.Phone == phone); if (sms == null) { await smsRepository.InsertAsync(new SmsCode { Phone = phone, Code = code, TimeStamp = DateTime.Now }); } else { sms.Code = code; sms.TimeStamp = DateTime.Now; await smsRepository.UpdateAsync(sms); } // TODO: send SMS via some service }
public async Task <IActionResult> Accounty(PhoneViewModel model, string role, string Number, bool?truefalse) { if (ModelState.IsValid && Number != null) { var num = await db.SmsCodes.FirstOrDefaultAsync(p => p.NewPhoneNumber == model.Number); if (num != null) { db.SmsCodes.Remove(num); } var user = await _userManager.Users.FirstOrDefaultAsync(p => p.PhoneNumber == model.Number); if (user != null) { ModelState.AddModelError("", "Токой номер уже существует! Если это ваш намер, тогда нажмите на ссылку <<Забыл пороль>>"); return(View(model)); } Number = model.Number; gert = ran.Next(11111, 66666); HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create($"https://sms.ru/sms/send?api_id=70E095C7-C999-495D-31B6-5FBE4AB00C59&to={model.Number}&msg={gert}&json=1"); HttpWebResponse myResp = (HttpWebResponse)myReq.GetResponse(); System.IO.StreamReader respStreamReader = new System.IO.StreamReader(myResp.GetResponseStream()); string responseString = respStreamReader.ReadToEnd(); respStreamReader.Close(); myResp.Close(); SmsCode sms = new SmsCode { NewPhoneNumber = model.Number, SMSCode = gert.ToString() }; await db.SmsCodes.AddAsync(sms); await db.SaveChangesAsync(); return(RedirectToAction("Register", "Account", new { role, model.Number })); } return(View(model)); }
public IHttpActionResult sendSmsCode(SmsCodeDto dto) { Random rnd = new Random(); SmsCode sms = new SmsCode(); sms.PlainCode = rnd.Next(1001, 9999).ToString(); sms.Mobiphone = dto.Mobiphone; sms.UserIp = HttpContext.Current.Request.UserHostAddress; _context.SmsCodes.Add(sms); _context.SaveChanges(); SendSms(dto.Mobiphone, sms.PlainCode); sms.State = 2; _context.SaveChanges(); ApiResult rlt = new ApiResult() { Code = 200, Msg = "验证码发送成功" }; return(Ok(rlt)); }
public async Task <IHttpActionResult> GetSmsCode([FromBody] string PhoneNumber) { var result = new ApiResult <string>(); CCPRestSDK.CCPRestSDK api = new CCPRestSDK.CCPRestSDK(); //ip格式如下,不带https:// bool isInit = api.init("app.cloopen.com", "8883"); api.setAccount("8aaf0708588b1d2301588ff10eb00346", "3e902b274a844cb899b672bcaf4fde2f"); api.setAppId("8aaf0708588b1d2301588ff10f16034b"); var expireMin = 10; var expireTime = DateTime.Now.AddMinutes(expireMin); //1分钟内不允许再次发送 var limitTime = DateTime.Now.AddMinutes(-1); var hasSendInLimit = SmsCodeService.GetAll().Count(x => x.PhoneNumber == PhoneNumber && x.CreateTime > limitTime) > 0; if (hasSendInLimit) { result.Code = 3; result.Info = "短信已发送给您,请耐心等待!"; return(Ok(result)); } var smsCode = new SmsCode() { Code = getRandCode(6), CodeType = CodeType.Register, CreateTime = DateTime.Now, ExpireTime = expireTime, PhoneNumber = PhoneNumber }; try { if (isInit) { Dictionary <string, object> retData = api.SendTemplateSMS(PhoneNumber, "1", new string[] { smsCode.Code, expireMin.ToString() }); if (retData["statusCode"].ToString() == "000000") { await SmsCodeService.InsertAsync(smsCode); } } else { result.Code = 2; result.Info = "短信验证码服务,初始化失败!"; return(Ok(result)); } } catch (Exception exc) { result.Code = 1; result.Info = exc.Message; return(Ok(result)); } result.Info = "短信发送成功"; result.Data = "success"; return(Ok(result)); }