/// <summary> /// 发送短信验证码 /// </summary> /// <returns></returns> public string SendMsgCode(int cid = 0, string mobile = "", string vcode = "", string guid = "") { #region 验证 if (!ITOrm.Utility.StringHelper.TypeParse.IsMobile(mobile)) { return(ApiReturnStr.getError(-100, "手机号格式验证失败")); } if (guid.Length != 36) { return(ApiReturnStr.getError(-100, "唯一标识错误")); } if (vcode.Trim().Length != 4) { return(ApiReturnStr.getError(-100, "验证码错误")); } string imgKey = ITOrm.Utility.Const.Constant.forget_img_code + guid; if (!ITOrm.Utility.Cache.MemcachHelper.Exists(imgKey)) { return(ApiReturnStr.getError(-101, "图形验证码过期")); } string cacheImgCode = ITOrm.Utility.Cache.MemcachHelper.Get(imgKey).ToString(); if (vcode.Trim().ToLower() != cacheImgCode.ToLower()) { return(ApiReturnStr.getError(-100, "图形验证码错误")); } var modelUsers = userDao.Single(" mobile=@mobile ", new { mobile }); if (modelUsers == null || modelUsers.UserId == 0) { return(ApiReturnStr.getError(-100, "该手机号未注册")); } if (sendMsgDao.ValidateForgetCnt(mobile)) { return(ApiReturnStr.getError(-100, "验证码发送次数超限")); } #endregion var regGuid = Util.GetGUID; //发送短信 var resultMsg = SystemSendMsg.Send(Logic.EnumSendMsg.忘记密码短信, mobile); SendMsg model = new SendMsg(); model.Context = resultMsg.content; model.CTime = DateTime.Now; model.TypeId = (int)Logic.EnumSendMsg.忘记密码短信; model.IP = ITOrm.Utility.Client.Ip.GetClientIp(); model.Merchant = resultMsg.Merchant; model.Mobile = mobile; model.Platform = cid; model.Service = "forget"; model.RelationId = resultMsg.relationId; model.State = resultMsg.backState ? 2 : 1; model.UTime = DateTime.Now; int result = sendMsgDao.Insert(model); if (resultMsg.backState && result > 0) { #region 销毁 ITOrm.Utility.Cache.MemcachHelper.Delete(imgKey); #endregion string key = Constant.forget_mobile_code + regGuid; var cacheData = new JObject(); cacheData["mobile"] = mobile; cacheData["code"] = resultMsg.code; MemcachHelper.Set(key, cacheData.ToString(), ITOrm.Utility.Const.Constant.mobile_code_expires); var data = new JObject(); data["forgetGuid"] = regGuid; if (Constant.IsDebug) { data["code"] = resultMsg.code; } return(ApiReturnStr.getApiData(0, "发送成功", data)); } return(ApiReturnStr.getApiData(-100, "发送失败")); }
public static ResultModelData <JObject> SendMsgCode(int payCId, int Platform, string tengGuid) { ResultModelData <JObject> ret = new ResultModelData <JObject>(); ret.backState = -100; ret.message = "发送失败"; string LogDic = "发送收银短信"; PayCashier payc = payCashierDao.Single(payCId); PayRecord pay = payRecordDao.Single(payc.PayRecordId); UserBankCard ubk = userBankCardDao.Single(payc.UbkId); int typeId = (int)Teng.Enums.TengType.发送收银短信; int cnt = yeepayLogDao.Count(" UserId=@UserId and KeyId=@PayRecordId and ChannelType=@ChannelType and typeId=@typeId ", new { payc.UserId, payc.PayRecordId, payc.ChannelType, typeId }); if (cnt > 4) { ret.message = "该订单短信发送次数超限"; return(ret); } //获取请求流水号 int requestId = yeepayLogDao.Init(typeId, payc.UserId, Platform, payc.PayRecordId, (int)Logic.ChannelType.腾付通); Logs.WriteLog($"获取请求流水号:payCId:{payCId},UserId:{payc.UserId},Platform:{Platform},tengGuid:{tengGuid},requestId:{requestId}", TengLogDic, LogDic); bool flag = false; //发送短信 var resultMsg = SystemSendMsg.Send(Logic.EnumSendMsg.腾付通收银短信, ubk.Mobile, pay.Amount); SendMsg model = new SendMsg(); model.UserId = payc.UserId; model.TypeId = (int)Logic.EnumSendMsg.腾付通收银短信; model.Context = resultMsg.content; model.CTime = DateTime.Now; model.IP = ITOrm.Utility.Client.Ip.GetClientIp(); model.Merchant = resultMsg.Merchant; model.Mobile = resultMsg.Mobile; model.Platform = Platform; model.Service = "teng"; model.RelationId = resultMsg.relationId; model.State = resultMsg.backState ? 2 : 1; model.UTime = DateTime.Now; int result = sendMsgDao.Insert(model); if (resultMsg.backState && result > 0) { string key = Constant.teng_mobile_code + tengGuid; var cacheData = new JObject(); cacheData["mobile"] = resultMsg.Mobile; cacheData["code"] = resultMsg.code; MemcachHelper.Set(key, cacheData.ToString(), ITOrm.Utility.Const.Constant.mobile_code_expires); var data = new JObject(); data["tengGuid"] = tengGuid; if (Constant.IsDebug) { data["code"] = resultMsg.code; } ret.backState = 0; ret.message = "发送成功"; ret.Data = data; } #region 日志处理 //返回后日志记录 yeepayLogParasDao.Init(requestId, JsonConvert.SerializeObject(ret), 1); //易宝日志状态更新 flag = yeepayLogDao.UpdateState(requestId, ret.backState.ToString(), ret.message, ret.backState == 0 ? 1 : ret.backState); #endregion return(ret); }