/// <summary> /// 校验验证码 /// </summary> /// <param name="mobile"></param> /// <param name="code"></param> /// <param name="type"></param> /// <returns></returns> public bool VerifyCode(string mobile, int code, int type, out int codestate) { //to do sth.要写入配置文件里 codestate = 0; return(MobileVerificationDao.Verify(mobile, code, DateTime.Now.AddMinutes(-5), type, out codestate)); }
/// <summary> /// 生成ISV验证码,并发送到用户手机 /// </summary> /// <param name="tenantId"></param> /// <param name="userId"></param> /// <param name="isv"></param> /// <param name="mobile"></param> /// <param name="type">0:注册验证码</param> /// <returns></returns> public bool SendISVMessage(int tenantId, string isv, string mobile, out string msg, int type = 0) { ArgumentHelper.AssertPositive(tenantId, "tenantId is 0"); ArgumentHelper.AssertNotNullOrEmpty(isv, "isv is null"); ArgumentHelper.AssertNotNullOrEmpty(mobile, "mobile is null"); msg = string.Empty; if (string.IsNullOrEmpty(isv) || string.IsNullOrWhiteSpace(mobile)) { msg = string.Format("isv或手机号不能为空,isv:{0},mobile:{1}", isv, mobile); return(false); } var check = MobileVerificationDao.Get(mobile, type, DateTime.Now.AddMinutes(-1)); if (check == 1) { msg = string.Format("验证码发送过于频繁"); return(false); } var isvSMSTemplate = GetISVSMSTemplate(isv, mobile, type); if (isvSMSTemplate == null) { msg = string.Format("{0}未找到设置,mobile:{1},type:{2}", isv, mobile, type); return(false); } var code = GetCode(); //将验证码和手机号存入数据库 MobileVerificationDao.Add(mobile, code, type); //发送短信 string message = string.Format(isvSMSTemplate.Message, code); var result = ProviderGateway.SMSProvider.SendISVMobileValCode(tenantId, isv, isvSMSTemplate.SMSChannelId, message, mobile, SMSType.MobileVerification, null); if (!result) { MobileVerificationDao.Abate(mobile, code, type); msg = string.Format("发送失败,tenantId:{0},isv:{1},mobile:{2}", tenantId, isv, mobile); return(false); } return(true); }
/// <summary> /// 校验验证码状态及验证时间 /// </summary> /// <param name="mobile"></param> /// <param name="code"></param> /// <param name="type">0:注册验证码 1:登录动态验证码</param> /// <returns></returns> public bool CheckCode(string mobile, int code, int type) { return(MobileVerificationDao.Check(mobile, code, type)); }