public static void SendBuyerFeedbackSms(Trade trade, SkuView sku) { string feedbackUrl = String.Format(@"{0}/zh-TW/buyerfeedback/{1}", WebApplication.Instance.WebUrl, trade.Guid); string shortUrl = Google.GetShortUrl(feedbackUrl, WebApplication.Instance.GoogleApiKey); string smsTemplate = GetBuyerFeedbackSmsTemplate(trade.BuyerLanguageCode); smsTemplate = smsTemplate.Replace("{CustomerName}", trade.BuyerUserName); smsTemplate = smsTemplate.Replace("{SkuName}", sku.FullName); smsTemplate = smsTemplate.Replace("{Link}", shortUrl); SmsUtil.SendMessage(trade.BuyerPhoneNumber, smsTemplate, "mooketplace"); }
/// <summary> /// 会议提醒 /// </summary> /// <returns></returns> public void RemindMeet() { try { var rep = ContainerManager.Resolve <IEfRepository>(); var dt = DateTime.UtcNow.AddHours(8); var list = from a in rep.Where <MeetInfo>(s => s.IsDeleted != 1 && s.MeetStartTime > dt) join b in rep.Where <MyMeetOrder>(s => s.IsDeleted != 1 && s.HasReminded != 1 && s.IsRemind == 1) on a.Id equals b.MeetId join c in rep.Where <WxUserModel>(s => s.IsDeleted != 1 && s.Mobile != null) on b.UnionId equals c.UnionId select new { MeetOrderId = b.Id, a.MeetTitle, a.MeetStartTime, c.Mobile, b.RemindOffsetMinutes }; if (list == null || list.Count() == 0) { return; } var list2 = from a in list.ToList() where a.MeetStartTime.Value.AddMinutes(a.RemindOffsetMinutes) <= DateTime.UtcNow.AddHours(8) select a; foreach (var item in list2) { if (string.IsNullOrEmpty(item.Mobile)) { continue; } try { string title = item.MeetTitle; string time = item.MeetStartTime?.ToString(Time_Format) ?? ""; SendSmsModel sm = new SendSmsModel { CompanyCode = "4033", ParamName = JsonConvert.SerializeObject(new { systemName = System_Name, meetingTime = time, meetingType = title }).Base64Encoding(), PhoneNumbers = item.Mobile, SystemId = "3", SignName = "费卡中国", TemplateId = "FKSMS0046" }; LoggerHelper.WriteLogInfo($"[RemindMeet]:******发送会议提醒短信开始******"); LoggerHelper.WriteLogInfo($"[RemindMeet]:PhoneNumbers={sm.PhoneNumbers}"); LoggerHelper.WriteLogInfo($"[RemindMeet]:meetingTime={time}"); LoggerHelper.WriteLogInfo($"[RemindMeet]:meetingType={title}"); var smsResult = SmsUtil.SendMessage(sm); if (smsResult?.ResultFlag ?? false) { LoggerHelper.WriteLogInfo($"[RemindMeet]:smsResult.ResultFlag=true"); var meetOrder = rep.FirstOrDefault <MyMeetOrder>(s => s.IsDeleted != 1 && s.Id == item.MeetOrderId); if (meetOrder != null) { meetOrder.HasReminded = 1; //已发送提醒短信 rep.Update(meetOrder); rep.SaveChanges(); LoggerHelper.WriteLogInfo($"[RemindMeet]:set HasReminded to 1"); } } LoggerHelper.WriteLogInfo($"[RemindMeet]:******发送会议提醒短信结束******"); } catch (Exception ex) { LoggerHelper.Error($"--------------------------------------------------------------------------------"); LoggerHelper.Error($"[MSG]:{ex.Message};\n"); LoggerHelper.Error($"[Source]:{ex.Source}\n"); LoggerHelper.Error($"[StackTrace]:{ex.StackTrace}\n"); LoggerHelper.Error($"[StackTrace]:{ex.TargetSite.Name}\n"); LoggerHelper.Error($"[MethodName]:[[SSPC_One_HCP.WebApi.Jobs.RemindJob.RemindMeet]]\n"); LoggerHelper.Error($"--------------------------------------------------------------------------------"); } } } catch (Exception ex) { LoggerHelper.Error($"--------------------------------------------------------------------------------"); LoggerHelper.Error($"[MSG]:{ex.Message};\n"); LoggerHelper.Error($"[Source]:{ex.Source}\n"); LoggerHelper.Error($"[StackTrace]:{ex.StackTrace}\n"); LoggerHelper.Error($"[StackTrace]:{ex.TargetSite.Name}\n"); LoggerHelper.Error($"[MethodName]:[[SSPC_One_HCP.WebApi.Jobs.RemindJob.RemindMeet]]\n"); LoggerHelper.Error($"--------------------------------------------------------------------------------"); //throw ex; } }
public static void HandleSmsMessage(SmsMessage message) { SmsUtil.SendMessage(message.PhoneNumber, message.Message, message.SenderId); }
/// <summary> /// 发送验证码 /// </summary> /// <param name="workUser"></param> /// <param name="mobile">手机号</param> /// <returns></returns> public ReturnValueModel SendVerifyCode(WorkUser workUser, string mobile) { LoggerHelper.WriteLogInfo("[SendVerifyCode]:******发送验证码开始******"); ReturnValueModel rvm = new ReturnValueModel(); string unionId = workUser?.WxUser?.UnionId; var wxUser = _rep.FirstOrDefault <WxUserModel>(s => s.IsDeleted != 1 && s.UnionId == unionId); LoggerHelper.WriteLogInfo("[SendVerifyCode]:wxUser------is null: " + (wxUser == null)); LoggerHelper.WriteLogInfo("[SendVerifyCode]:wxUser------UnionId:" + unionId); LoggerHelper.WriteLogInfo("[SendVerifyCode]:wxUser------手机号:" + mobile); if (wxUser != null) { //手机号唯一 才允许注册 var isReginUser = (_rep.Where <WxUserModel>(x => x.IsDeleted != 1 && x.IsCompleteRegister == 1 && x.Mobile.Equals(mobile))?.Count() ?? 0) > 0; if (isReginUser) { rvm.Msg = "fail"; rvm.Success = false; LoggerHelper.WriteLogInfo(mobile + "拒绝注册" + unionId); LoggerHelper.WriteLogInfo("[SendVerifyCode]:******短信验证码结束******"); return(rvm); } var code = RandomUtil.GenerateRandomCode(6); wxUser.Code = code; LoggerHelper.WriteLogInfo("[SendVerifyCode]验证码:" + code); //wxUser.Mobile = mobile; wxUser.CodeTime = DateTime.Now.AddMinutes(1); //发送验证码 //SendVerifyCode(Mobile, code); SendSmsModel ssm = new SendSmsModel { PhoneNumbers = mobile, CompanyCode = "4033", TemplateId = "FKSMS0047", SystemId = "3", SignName = "费卡中国", ParamName = JsonConvert.SerializeObject(new { code = code }).Base64Encoding() }; _rep.Update(wxUser); _rep.SaveChanges(); LoggerHelper.WriteLogInfo("[SendVerifyCode]短信发送开始:"); var sr = SmsUtil.SendMessage(ssm); LoggerHelper.WriteLogInfo("[SendVerifyCode]短信发送结束:"); rvm.Msg = "success"; rvm.Success = true; rvm.Result = new { sr }; } else { rvm.Msg = "fail"; rvm.Success = false; } LoggerHelper.WriteLogInfo("[SendVerifyCode]:发送结果:" + rvm.Msg); LoggerHelper.WriteLogInfo("[SendVerifyCode]:******短信验证码结束******"); return(rvm); }