Beispiel #1
0
        /// <summary>
        /// 判断短信消息发送是否成功。
        /// </summary>
        /// <param name="shortMessageResponseModel"></param>
        /// <returns></returns>
        public static bool IsShortMessageSentSuccessfully(ShortMessageResponseModel shortMessageResponseModel)
        {
            bool isSuccess = false;

            //判断是否成功
            if (shortMessageResponseModel != null && shortMessageResponseModel.ReturnCode == 0) //不为空,并且错误码为 0时
            {
                isSuccess = true;
            }

            return(isSuccess);
        }
Beispiel #2
0
        /// <summary>
        /// 判断是否为无效的推送号(短信消息mobile)。
        /// </summary>
        /// <param name="returnCode">
        /// 30:密码错误
        ///40:账号不存在
        ///41:余额不足
        ///42:帐号过期
        ///43:IP地址限制
        ///50:内容含有敏感词
        ///51:手机号码不正确
        ///</param>
        /// <returns></returns>
        private static bool IsInvalidPushNoForMobile(ShortMessageResponseModel shortMessageResponseModel)
        {
            var isInvalidPushNo = false;

            if (shortMessageResponseModel == null ||
                shortMessageResponseModel.ReturnCode == -1 ||
                shortMessageResponseModel.ReturnCode == 30 ||
                shortMessageResponseModel.ReturnCode == 40 ||
                shortMessageResponseModel.ReturnCode == 42 ||
                shortMessageResponseModel.ReturnCode == 50 ||
                shortMessageResponseModel.ReturnCode == 51
                )
            {
                isInvalidPushNo = true;
            }

            return(isInvalidPushNo);
        }
Beispiel #3
0
        /// <summary>
        /// 定制短信错误消息
        /// </summary>
        /// <param name="shortMessageResponseModel"></param>
        /// <returns></returns>
        private static ShortMessageResponseModel ErrorShorMessages(ShortMessageResponseModel shortMessageResponseModel)
        {
            ShortMessageResponseModel shorMessageModel = new ShortMessageResponseModel();

            shorMessageModel.ReturnCode = shortMessageResponseModel.ReturnCode;

            switch (shorMessageModel.ReturnCode)
            {
            case 30: shorMessageModel.ReturnMsg = "密码错误";
                break;

            case 40: shorMessageModel.ReturnMsg = "账号不存在";
                break;

            case 41: shorMessageModel.ReturnMsg = "余额不足";
                break;

            case 42: shorMessageModel.ReturnMsg = "帐号过期";
                break;

            case 43: shorMessageModel.ReturnMsg = "IP地址限制";
                break;

            case 50: shorMessageModel.ReturnMsg = "内容含有敏感词";
                break;

            case 51:
            case -1: shorMessageModel.ReturnMsg = "手机号码不正确";
                break;

            default:
                shorMessageModel.ReturnMsg = "其他情况错误";
                break;
            }

            return(shorMessageModel);
        }
Beispiel #4
0
        /// <summary>
        /// 发送短信
        /// </summary>
        /// <param name="apiBaseUrl"></param>
        /// <param name="message"></param>
        /// <param name="mq"></param>
        /// <returns></returns>
        public static ShortMessageResponseModel SendShortMessage(string apiBaseUrl,
                                                                 Proc_GetMessageInfoByMessageIDs_Result message,
                                                                 Proc_GetRobotServerMessageQueueForWXRobot_Result mq)
        {
            //短信宝帐号类型ID
            int accountID = Convert.ToInt32(WebConfigurationManager.AppSettings["SMSAccountID"].ToString());
            ShortMessageResponseModel shortMessageResponseModel = new ShortMessageResponseModel()
            {
                ReturnCode = -1
            };

            try
            {
                string urlForSendShortMessage = string.Format("{0}/api/zcooapi/SendShortMessage", apiBaseUrl);
                //消息的类型名
                string title = message.Title.Substring(message.Title.IndexOf("《") + 1, message.Title.LastIndexOf("》") - 1);
                title = "【" + title + "】";
                string Content  = message.Content;
                string Sendname = "(" + mq.NickName + ")"; //发送消息者
                string greeting = "尊敬的家长";
                if (mq.MoreParams.Contains("isSendToSMSUser"))
                {
                    greeting = "尊敬的用户";
                }
                Content = Regex.Replace(Content, @"<\/?[^>]*>", ""); //去除HTML tag
                Content = Regex.Replace(Content, "((http[s]{0,1}|ftp)://[a-zA-Z0-9\\.\\-]+\\.([a-zA-Z]{2,4})(:\\d+)?(/[a-zA-Z0-9\\.\\-~!@#$%^&*+?:_/=<>]*)?)|(www.[a-zA-Z0-9\\.\\-]+\\.([a-zA-Z]{2,4})(:\\d+)?(/[a-zA-Z0-9\\.\\-~!@#$%^&*+?:_/=<>]*)?)", "【链接】");
                #region 转化为短链接 暂停使用
                //if (Content.Length > 35) //35
                //{
                //    string sd = mq.ID.ToString();
                //    string secret = WebConfigurationManager.AppSettings["AESEncryptSecret"].ToString();
                //    sd = Common.Encryptor.AESEncryptor.AESEncrypt(sd, secret);
                //    //需要编码三次。。。。醉了
                //    sd = System.Web.HttpUtility.UrlEncode(sd);
                //    sd = System.Web.HttpUtility.UrlEncode(sd);
                //    string messageURL = string.Format("{0}/html5/ShowDetail?sd={1}", apiBaseUrl, sd);
                //    messageURL = System.Web.HttpUtility.UrlEncode(messageURL);
                //    string GETshorURL = string.Format("{0}/api/ZcooApi/getShortUrl?Ursl={1}", apiBaseUrl, messageURL);
                //    string shorURL = _httper.Get(GETshorURL);
                //    Content = Content.Substring(0, 9) + "..." + "\n" + "更多内容:" + shorURL;
                //}
                #endregion

                Content = "\n" + greeting + "," + Content + "\n";
                if (title.Contains("学习成长"))
                {
                    int lenth = Sendname.Length + title.Length;
                    if (Content.Length > 64 - lenth)
                    {
                        string prompt = "[部分消息被截取,请微信关注:zcootong]\n";
                        Content = Content.Substring(0, 64 - lenth - prompt.Length);
                        Content = Content + prompt;
                    }
                }

                string digest = title + Content + Sendname;
                string dataForSendShortMessage = Common.HTTP.PostDataHandler.GetPostData
                                                 (
                    new List <PostDataRequestModel>()
                {
                    new PostDataRequestModel()
                    {
                        ParameterName = "accountID", ParameterValue = accountID
                    },
                    new PostDataRequestModel()
                    {
                        ParameterName = "toMobileNo", ParameterValue = mq.PushNo
                    },
                    new PostDataRequestModel()
                    {
                        ParameterName = "content", ParameterValue = digest
                    }
                }
                                                 );

                //发送短信消息
                string sendShortMessageResult = _httper.Post(urlForSendShortMessage, dataForSendShortMessage);

                shortMessageResponseModel.ReturnCode = Newtonsoft.Json.JsonConvert.DeserializeObject <int>(sendShortMessageResult);
            }
            catch (Exception)
            {
                shortMessageResponseModel.ReturnCode = -1;
            }

            return(shortMessageResponseModel);
        }