コード例 #1
0
ファイル: SMSController.cs プロジェクト: glustful/.NetProject
        public HttpResponseMessage SendSMS([FromBody] YzMsg yzmsg)
        {
            if (!string.IsNullOrEmpty(yzmsg.Mobile) && !string.IsNullOrEmpty(yzmsg.SmsType))
            {
                var messageConfigName = Enum.GetName(typeof(MessageConfigTypeEnum), Convert.ToInt32(yzmsg.SmsType));
                //获取短信模版名称
                var messageTemplate = _messageConfigService.GetMessageConfigByName(messageConfigName).Template;
                //获取到的短信模版
                string messages;

                var strNumber = new Random().Next(100000, 1000000).ToString();
                //生成大于等于100000,小于等于999999的随机数,也就是六位随机数
                var nowTimestr = DateTime.Now.ToLongTimeString();
                var strs       = EncrypHelper.Encrypt(strNumber + "#" + yzmsg.Mobile + "$" + nowTimestr, "Hos2xNLrgfaYFY2MKuFf3g==");
                //EMS 加密短信验证码

                if (messageConfigName == "推荐经纪人") //不需要生成数字验证码
                {
                    var user = (UserBase)_workContext.CurrentUser;
                    if (user != null)
                    {
                        var broker = _brokerService.GetBrokerByUserId(user.Id); //获取当前经纪人
                        if (broker == null)
                        {
                            return(PageHelper.toJson(PageHelper.ReturnValue(false, "获取用户失败,请检查是否登陆")));
                        }
                        if (broker.Phone == yzmsg.Mobile) //不能给自己发
                        {
                            return(PageHelper.toJson(PageHelper.ReturnValue(false, "对不起,不能给自己发送短信")));
                        }

                        //添加到短信表中去
                        messages = string.Format(messageTemplate, strNumber, broker.Brokername); //更改模版
                        AddMessageDetails(new MessageDetailEntity
                        {
                            Content        = messages,
                            InvitationCode = strNumber,
                            InvitationId   = broker.Id.ToString(),
                            Mobile         = yzmsg.Mobile,
                            Sender         = yzmsg.Mobile,
                            Title          = messageConfigName,
                            Addtime        = DateTime.Now
                        });
                        return(PageHelper.toJson(SMSHelper.Sending(yzmsg.Mobile, messages)));
                    }
                    return(PageHelper.toJson(PageHelper.ReturnValue(false, "获取用户失败,请检查是否登陆")));
                }

                messages = string.Format(messageTemplate, strNumber); //更改模版

                //添加到短信表中去
                AddMessageDetails(new MessageDetailEntity
                {
                    Content = messages,
                    Mobile  = yzmsg.Mobile,
                    Sender  = yzmsg.Mobile,
                    Title   = messageConfigName,
                    Addtime = DateTime.Now
                });


                //返回到前台的加密内容  和短信发送返回值
                return(PageHelper.toJson(new { Desstr = strs, Message = SMSHelper.Sending(yzmsg.Mobile, messages) }));
            }

            return(PageHelper.toJson(PageHelper.ReturnValue(false, "数据错误,不能发送短信")));
        }