/// <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); }
/// <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); }
/// <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); }
/// <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); }