/// <summary> /// 根据手机号获取验证码 /// </summary> public IHttpActionResult GetSms([FromBody] GetSmsReturn ret) { if (!string.IsNullOrEmpty(ret.getSmsTel)) { GetSmsReturn retu = new GetSmsReturn(); //生成随机数 Random rad = new Random(); int ranValue = rad.Next(100000, 999999); //访问url string url = "https://api.miaodiyun.com/20150822/industrySMS/sendSMS"; //调用接口开发者id string accountSid = ConfigurationManager.AppSettings["SmsAccountSid"].ToString(); string SmsToken = ConfigurationManager.AppSettings["SmsToken"].ToString(); //短信内容 string content = "您的验证码为" + ranValue + ",如非本人操作,请忽略此短信。【中新一路农场】"; //时间戳 string timestamp = DateTime.Now.ToString("yyyyMMddHHmmss"); //生成md5 string md5str = accountSid + SmsToken + timestamp; string sig = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(md5str, "MD5").ToLower(); string postdata = "&accountSid=" + accountSid + "&smsContent=" + content + "&to=" + ret.getSmsTel + "×tamp=" + timestamp + "&sig=" + sig + "&respDataType=JSON"; //获取到接口返回的json数据 string getJson = BaseController.HttpUploadData(url, postdata); //反序列化json实例化为对象 retu = JsonConvert.DeserializeObject <GetSmsReturn>(getJson); retu.getSmsTel = ret.getSmsTel; retu.getSmsDate = DateTime.Now; retu.VerCode = ranValue.ToString(); //添加调用接口信息到数据库 gsSer.Add(retu); //调用成功返回码为00000 判断是否调用成功根据手机号和短信ID生成token if (retu.respCode == "00000") { AuthInfo info = new AuthInfo(); info.UserTel = retu.getSmsTel; info.VerSmsID = retu.smsId; info.ValidTime = DateTime.Now; //生成token retu.auth = GetToken(info); } AuthResponse retResponse = new AuthResponse(); retResponse.Code = "200"; retResponse.Message = "调用接口成功"; retResponse.NowTime = DateTime.Now; retResponse.IsSuccess = true; //返回数据信息不返回发送的验证码 retu.VerCode = " "; retResponse.data = JsonConvert.SerializeObject(retu); //返回json数据 return(Ok(retResponse)); } else { AuthResponse retResponse = new AuthResponse(); retResponse.Code = "400"; retResponse.Message = "参数错误"; retResponse.NowTime = DateTime.Now; retResponse.data = ""; return(Ok(retResponse)); } }
public IHttpActionResult Login([FromBody] LoginLog getmodel) { /**所需参数 2018-09-25 * LoginTel:登录手机号 * SmsID:短信ID * VerCode:短信验证码 * 头部所需auth:token * */ LoginLog logModel = new LoginLog(); GetSmsReturn retmodel = new GetSmsReturn(); //手机号或者验证码或短信ID为空 返回400错误 缺少参数 if (string.IsNullOrEmpty(getmodel.LoginTel) || string.IsNullOrEmpty(getmodel.SmsID)) { AuthResponse retResponse = new AuthResponse(); retResponse.Code = "400"; retResponse.Message = "参数错误"; retResponse.NowTime = DateTime.Now; retResponse.data = ""; retResponse.IsSuccess = false; return(Ok(retResponse)); } //获取解析过的token值 包含手机号和短信ID AuthInfo info = RequestContext.RouteData.Values["auth"] as AuthInfo; //根据smsid和手机号 查询验证码 retmodel = gsSer.Where(a => a.smsId == getmodel.SmsID && a.getSmsTel == getmodel.LoginTel).FirstOrDefault(); //根据传过来的手机号和验证码判断是否匹配并进行登录 if (info.UserTel == getmodel.LoginTel && retmodel.VerCode == getmodel.VerCode) { logModel.LoginDate = DateTime.Now; logModel.VerCode = getmodel.VerCode; logModel.ErrorCode = "0000"; logModel.ErrorDec = "登录成功"; logModel.LoginRemark = "登录成功"; logModel.LoginTel = getmodel.LoginTel; logModel.SmsID = getmodel.SmsID; logSer.Add(logModel); //返回接口json AuthResponse retResponse = new AuthResponse(); retResponse.Code = "200"; retResponse.Message = "调用接口成功"; retResponse.NowTime = DateTime.Now; retResponse.IsSuccess = true; retResponse.data = JsonConvert.SerializeObject(logModel); return(Ok(retResponse)); } else { logModel.LoginDate = DateTime.Now; logModel.VerCode = getmodel.VerCode; logModel.ErrorCode = "0001"; logModel.ErrorDec = "登录失败"; logModel.LoginRemark = "验证码和手机号不匹配"; logModel.LoginTel = getmodel.LoginTel; logModel.SmsID = getmodel.SmsID; logSer.Add(logModel); //统一格式 返回接口json AuthResponse retResponse = new AuthResponse(); retResponse.Code = "200"; retResponse.Message = "调用接口成功"; retResponse.NowTime = DateTime.Now; retResponse.IsSuccess = true; retResponse.data = JsonConvert.SerializeObject(logModel); return(Ok(retResponse)); } }