Ejemplo n.º 1
0
        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>
        /// <param name="appSign"></param>
        /// <param name="mobile"></param>
        /// <param name="content"></param>
        /// <param name="smsType"></param>
        /// <returns></returns>
        public void SendSmsMessage(string appSign, string mobile, Dictionary <string, object> parms, string content, SmsType smsType, SmsFuncType funcType)
        {
            // 参数检查
            if (string.IsNullOrWhiteSpace(appSign))
            {
                throw new MessageException("应用标识不能为空!");
            }
            if (string.IsNullOrWhiteSpace(mobile))
            {
                throw new MessageException("手机号码不能为空!");
            }
            if (parms.Count <= 0)
            {
                throw new MessageException("短信内容参数不能为空!");
            }
            if (string.IsNullOrWhiteSpace(content))
            {
                throw new MessageException("短信内容不能为空!");
            }
            if (!Extensions.IsMobile(mobile))
            {
                throw new MessageException(string.Format("手机号码:{0},格式不正确。" + mobile));
            }

            //创建短信记录
            var entity = new SmsEntity();

            entity.AppSign      = appSign;
            entity.ReceiverCode = mobile;
            entity.SmsContent   = content;
            entity.SmsType      = smsType.GetHashCode();
            entity.CreateUserId = mobile;
            var smsId = InsertEntity(entity);

            switch (smsType)
            {
            case SmsType.ValidateCode:
                SmsUtil.SendValidCode(mobile, parms["code"].ToString(), Extensions.ToDecimal(parms["code_expire"], 2), funcType);
                break;

            default:
                break;
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 发送短信
        /// </summary>
        /// <param name="appSign"></param>
        /// <param name="mobile"></param>
        /// <param name="content"></param>
        /// <param name="smsType"></param>
        /// <returns></returns>
        public void SendSmsMessage(string appSign, string mobile, Dictionary <string, object> parms, string content, SMSType smsType, SmsFuncType tempType)
        {
            // 参数检查
            if (string.IsNullOrWhiteSpace(appSign))
            {
                throw new MessageException("应用标识不能为空!");
            }
            if (string.IsNullOrWhiteSpace(mobile))
            {
                throw new MessageException("手机号码不能为空!");
            }
            if (parms.Count <= 0)
            {
                throw new MessageException("短信内容参数不能为空!");
            }
            if (string.IsNullOrWhiteSpace(content))
            {
                throw new MessageException("短信内容不能为空!");
            }
            if (!RegexUtil.IsMobile(mobile))
            {
                throw new MessageException(string.Format("手机号码:{0},格式不正确。" + mobile));
            }

            var smsId = CreateSmsRecord(appSign, mobile, content, smsType);

            switch (smsType)
            {
            case SMSType.Bind:
            case SMSType.UnBind:
            case SMSType.GetPwd:
            case SMSType.ValidateCode:
                SmsUtil.SendValidCode(mobile, parms["code"].ToString(), TryConvertUtil.ToDecimal(parms["code_expire"], 2), tempType);
                break;

            default:
                break;
            }
        }
Ejemplo n.º 4
0
        /// <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;
            }
        }
Ejemplo n.º 5
0
 public static void HandleSmsMessage(SmsMessage message)
 {
     SmsUtil.SendMessage(message.PhoneNumber, message.Message, message.SenderId);
 }
Ejemplo n.º 6
0
        /// <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);
        }