/// <summary> /// 把短信发送到MQ /// 负责拆包,递交出去的PlainSMS /// </summary> /// <param name="sms"></param> public void SendSMS(SMSDTO sms) { foreach (var smsnumber in sms.SMSNumbers) { if (smsnumber.NumberCount > this.GatewayConfig.MaxPackageSize) { List <string> Numbers = smsnumber.Numbers.Split(',').ToList(); for (int i = 0; i < Numbers.Count; i = i + this.GatewayConfig.MaxPackageSize) { var numbers = Numbers.Skip(i).Take(this.GatewayConfig.MaxPackageSize).ToList(); PlainSMS tmp = PlainSMS.CreatePlainSMS(sms.Message, numbers, smsnumber.Operator); this.SendMQHelper.PublishMessage(JsonConvert.SerializeObject(tmp), sms.Message.SMSLevel); } } else { PlainSMS tmp = PlainSMS.CreatePlainSMS(sms.Message, smsnumber); this.SendMQHelper.PublishMessage(JsonConvert.SerializeObject(tmp), sms.Message.SMSLevel); } } }
public void SendSMS(PlainSMS sms) { try { SendResult sr = Gateway.SendSMS(sms); ReportEventArgs re = new ReportEventArgs(); int i = 0; re.StatusReports.AddRange(sms.Numbers.Split(',').Select(n => new StatusReport() { SMSID = sms.ID, SerialNumber = sr.SerialNumber + (++i).ToString().PadLeft(5, '0'), SendTime = sms.SendTime.Value, StatusCode = 2000 + sr.StatusCode, Succeed = sr.Success, Channel = sms.Channel, Description = sr.Message, Number = n, ResponseTime = null })); SendEvent(this, re); if (sr.Success) { lock (locker) { sends.Add(sr.SerialNumber, re); } } } catch (Exception ex) { MessageHelper.Instance.WirteError(ex.ToString()); LogClient.LogHelper.LogInfo(Gateway.Config.GatewayName, "SendSMS Error ->", ex.Message); } }
private static void SendFail(PlainSMS sms, string message, ushort statusCode) { try { foreach (var number in sms.Numbers.Split(',')) { StatusReportSend.Instance.Send(new StatusReport() { SMSID = sms.ID, AccountID = sms.AccountID, StatusReportType = (StatusReportType)sms.StatusReportType, Channel = sms.Channel, SendTime = sms.SendTime.Value, SerialNumber = System.Guid.NewGuid().ToString(), StatusCode = statusCode, Succeed = false, Description = message, Gateway = "", Number = number, ResponseTime = null }); } } catch (Exception ex) { LogHelper.LogError("SendQueue", "SendQueueHost._gatewayHandler_SendSMSError", ex.ToString()); } }
public SendEventArgs(PlainSMS message, string serial, bool succeed, ushort statusCode, string description) { _statusCode = statusCode; _message = message; Numbers = message.Numbers.Split(',').ToList(); _serial = serial; Description = description; _succeed = succeed; SubmitTime = DateTime.Now; }
static bool frSMS_ReceiveMessage(RabbitMQHelper mq, string message) { PlainSMS sms = null; try { sms = JsonConvert.DeserializeObject <PlainSMS>(message); //短信过滤 if (sms.FilterType == (int)FilterType.Failure) { string[] rk = processKeyword.Find(sms.Content); if (rk.Length > 0) { int StatusCode = ((ushort)PlatformCode.SYS + (ushort)SystemCode.IllegalKeyword); string Description = "关键词: " + string.Join(",", rk); var reports = from num in sms.Numbers.Split(',') select new StatusReport() { SMSID = sms.ID, SendTime = sms.SendTime.Value, SerialNumber = System.Guid.NewGuid().ToString(), StatusCode = StatusCode, Succeed = false, Channel = sms.Channel, Gateway = GatewayName, Description = Description, Number = num, ResponseTime = DateTime.Now, StatusReportType = (StatusReportType)sms.StatusReportType }; ReportSend.Instance.BatchSend(reports.ToList()); return(true); } } else if (sms.FilterType == (int)FilterType.Replace) { sms.Content = processKeyword.Replace(sms.Content); } Gateway.SendSMS(sms); return(true); } catch (Exception ex) { LogHelper.LogError("Gateway", "GatewayHost.frSMS_ReceiveMessage", ex.ToString()); } return(true); }
private static void SendFail(PlainSMS sms, string message, ushort statusCode) { try { var reports = from ss in sms.Numbers.Split(',') select new StatusReport() { }; ReportSend.Instance.BatchSend(reports.ToList()); } catch (Exception ex) { LogHelper.LogError("SendQueue", "SendQueueHost._gatewayHandler_SendSMSError", ex.ToString()); } }
public GatewayInterface.SendResult SendSMS(PlainSMS sms) { Dictionary <string, string> par = new Dictionary <string, string>(); par.Add("action", "send"); par.Add("userid", Config.UserId); par.Add("account", Config.Account); par.Add("password", Config.Password); par.Add("mobile", sms.Numbers); var content = sms.Content + sms.Signature; if (Config.SignaturePos == 1) { content = sms.Signature + sms.Content; } par.Add("content", content); par.Add("sendTime", ""); if (Config.ExtendNo == 1) { par.Add("extno", sms.SPNumber); } else { par.Add("extno", ""); } string res = HttpUtil.Post(Config.SendUrl, par, Encoding.UTF8); var xdoc = XDocument.Parse(res); var sendresult = new SendResult() { Success = xdoc.Root.Element("returnstatus").Value.Equals("Success"), Message = xdoc.Root.Element("message").Value, SerialNumber = xdoc.Root.Element("taskID").Value, StatusCode = 2000 }; if (!sendresult.Success) { sendresult.StatusCode = 2099; } if (string.IsNullOrWhiteSpace(sendresult.SerialNumber)) { sendresult.SerialNumber = System.Guid.NewGuid().ToString(); } return(sendresult); }
public SendResult SendSMS(PlainSMS sms) { var r = ran.Next(100); if (r < 10) { //十分之一提交失败 return(new SendResult() { Message = "提交失败", SerialNumber = System.Guid.NewGuid().ToString(), StatusCode = 2099, Success = false }); } var sr = new SendResult() { Message = "提交成功", Success = true, SerialNumber = System.Guid.NewGuid().ToString(), StatusCode = 2000 }; smslist.Add(sr.SerialNumber, sms); lock (this) { foreach (var num in sms.Numbers.Split(',')) { r = ran.Next(100); if (r > 50) { var mo = new MOSMS() { Gateway = Config.GatewayName, SerialNumber = System.Guid.NewGuid().ToString(), Message = "回复:" + sms.Content, UserNumber = num, ReceiveTime = DateTime.Now }; molist.Add(mo); } } } return(sr); }
public void SendSMS(PlainSMS sms) { try { MessageHelper.Instance.WirteTest("提交短信:" + JsonConvert.SerializeObject(sms)); SendResult sr = Gateway.SendSMS(sms); if (string.IsNullOrWhiteSpace(sr.SerialNumber)) { sr.SerialNumber = System.Guid.NewGuid().ToString(); } MessageHelper.Instance.WirteTest("提交短信返回结果:" + JsonConvert.SerializeObject(sr)); ReportEventArgs re = new ReportEventArgs(); int i = 0; re.StatusReports.AddRange(sms.Numbers.Split(',').Select(n => new StatusReport() { SMSID = sms.ID, SerialNumber = sr.SerialNumber + (++i).ToString().PadLeft(5, '0'), SendTime = sms.SendTime.Value, StatusCode = sr.StatusCode, Succeed = sr.Success, Channel = sms.Channel, Description = sr.Message, Number = n, ResponseTime = null, Gateway = Gateway.Config.GatewayName, AccountID = sms.AccountID, StatusReportType = (StatusReportType)sms.StatusReportType })); SendEvent(this, re); if (sr.Success) { lock (locker) { sends.Add(sr.SerialNumber, re); } } if (this.Gateway.Config.EnableTrafficControl > 0) { tc.AddCountAndCheckTraffic(sms.NumberCount); } } catch (Exception ex) { MessageHelper.Instance.WirteError(ex.ToString()); LogClient.LogHelper.LogInfo(Gateway.Config.GatewayName, "SendSMS Error ->", ex.Message); } }
private static bool SMSMQHelper_RecieveMessage(RabbitMQHelper mq, string message) { try { MessageTools.MessageHelper.Instance.WirteTest(message); var sms = JsonConvert.DeserializeObject <SMSDTO>(message); SMSOriginalSend.Send(sms); foreach (var smsnumber in sms.SMSNumbers) { try { GatewayHelper gateway = GetGatewayByOperator(sms.Message.Channel, smsnumber.Operator); if (gateway == null) { SendFail(PlainSMS.CreatePlainSMS(sms.Message, smsnumber), "没有找到可用网关!", 2022); continue; } SMSDTO dto = new SMSDTO() { Message = sms.Message }; dto.SMSNumbers = new List <SMSNumber>() { smsnumber }; gateway.SendSMS(dto); } catch (Exception ex) { //记录异常 LogHelper.LogError("SendQueue", "SMSMQHelper_RecieveMessage", "发送短信时发生异常:" + ex.ToString()); SendFail(PlainSMS.CreatePlainSMS(sms.Message, smsnumber), "发送时失败!", 99); } } return(true); } catch (Exception ex) { LogHelper.LogError("SendQueue", "SMSMQHelper_RecieveMessage", "解析短信时发生异常:" + ex.ToString()); LogHelper.LogError("SendQueue", "SMSMQHelper_RecieveMessage", message); // throw ex; return(true); } }
public void SendSubmit(PlainSMS sms) { }
public void SendSMS(PlainSMS sms) { try { string post = ""; string send = string.Join(",", sms.Number); string content = sms.Signature + sms.Content; post = "act=sendmsg&unitid=" + _config.UserId + "&username="******"&passwd=" + _config.Password + "&phone=" + send + "&msg=" + content + "&port=&sendtime=" + DateTime.Now.ToString(); string t = HTTPRequest.PostWebRequest(sendUrl, post, Encoding.GetEncoding("GBK")); Console.WriteLine("发送字符串 " + post); //状态,批号,说明 bool ok = true; string rmsg = "短信提交成功"; string[] rt = t.Split(','); int rok = 0; int r = 1;//原来默认0 ,应为1 by lmw 1 代表已发送 if (int.TryParse(rt[0], out rok) && rok == 1) { } else { rmsg = GetErrorMsg(rok); Console.WriteLine(rmsg); LogClient.LogHelper.LogInfo("JCSY", "Connect Error ->", rmsg); ok = false; r = 99; } int i = 0; foreach (string number in sms.Number) { SMS s = new SMS(); s.Account = sms.Account; s.Audit = sms.Audit; s.Channel = sms.Channel; s.Content = sms.Content; s.Filter = sms.Filter; s.Level = sms.Level; s.Number = new List <string> { number }; s.SendTime = sms.SendTime; s.SerialNumber = sms.SerialNumber; s.StatusReport = sms.StatusReport; s.Signature = sms.Signature; s.SPNumber = sms.SPNumber; s.WapURL = sms.WapURL; i++; SendEventArgs se = new SendEventArgs(s, rt[1] + i.ToString().PadLeft(5, '0'), ok, (ushort)(2000 + r), rmsg, 1, 1); if (SendEvent != null) { SendEvent(this, se); } //string result = JsonSerialize.Instance.Serialize<SendEventArgs>(se); //Console.WriteLine("短信发送结果:" + result); ExSendEventArgs ese = new ExSendEventArgs(se); if (ok) { lock (locker) { sends.Add(se.SerialNumber, ese); } } } } catch (Exception ex) { Console.WriteLine(ex.Message); LogClient.LogHelper.LogInfo("JCSY", "SendSMS Error ->", ex.Message); } }
public void SendSMS(PlainSMS sms) { try { string post = ""; string send = string.Join(",", sms.Number); int mobile = 1, phone = 0; post = "action=send&userid=" + userId + "&account=" + account + "&password="******"&mobile=" + send + "&content=" + sms.Signature + sms.Content + "&sendTime=&taskName=&checkcontent=1&countnumber=1&mobilenumber=" + mobile + "&telephonenumber=" + phone; // Console.WriteLine("发送字符串 " + post); string t = HTTPRequest.PostWebRequest(sendUrl, post, Encoding.UTF8); //<? xml version = "1.0" encoding = "utf-8" ?> //< returnsms > //< returnstatus > status </ returnstatus > ----------返回状态值:成功返回Success 失败返回:Faild //<message> message</ message > ----------返回信息:见下表 //<remainpoint> remainpoint</ remainpoint > ----------返回余额 //< taskID > taskID </ taskID > -----------返回本次任务的序列ID //< successCounts > successCounts </ successCounts > --成功短信数:当成功后返回提交成功短信数 //</ returnsms > Console.WriteLine("发送回复字符串 " + t); bool ok = true; string rmsg = ""; string msgid = ""; XmlDocument doc = new XmlDocument(); doc.LoadXml(t); XmlElement root = null; root = doc.DocumentElement; XmlNodeList listNodes = root.ChildNodes; foreach (XmlNode node in listNodes) { switch (node.Name) { case "returnstatus": ok = (node.InnerText == "Success") ? true : false; break; case "message": if (node.InnerText == "ok") { rmsg = "短信提交成功."; } else { rmsg = node.InnerText; } break; case "remainpoint": break; case "taskID": msgid = node.InnerText; break; case "successCounts": break; } } int r = 1;//原来默认0 ,应为1 by lmw 1 代表已发送 if (!ok) { // r = 101; r = 99;//提交失败 错误码应该在100以内 by lmw } int i = 0; foreach (string number in sms.Number) { SMS s = new SMS(); s.Account = sms.Account; s.Audit = sms.Audit; s.Channel = sms.Channel; s.Content = sms.Content; s.Filter = sms.Filter; s.Level = sms.Level; s.Number = new List <string> { number }; s.SendTime = sms.SendTime; s.SerialNumber = sms.SerialNumber; s.StatusReport = sms.StatusReport; s.Signature = sms.Signature; s.SPNumber = sms.SPNumber; s.WapURL = sms.WapURL; i++; SendEventArgs se = new SendEventArgs(s, msgid + i.ToString().PadLeft(5, '0'), ok, (ushort)(2000 + r), rmsg, 1, 1); if (SendEvent != null) { SendEvent(this, se); } //string result = JsonSerialize.Instance.Serialize<SendEventArgs>(se); //Console.WriteLine("短信发送结果:" + result); ExSendEventArgs ese = new ExSendEventArgs(se); if (ok) { lock (locker) { sends.Add(se.SerialNumber, ese); } } } } catch (Exception ex) { Console.WriteLine(ex.Message); LogClient.LogHelper.LogInfo("DWWG", "SendSMS Error ->", ex.Message); } //if (_cm.ContainsKey(sms.Content)) //{ // var list = _cm.Get(sms.Content); // list.Add(sms); // if (list.Count > 100) // { // List<List<SMS>> caches = new List<List<SMS>>(); // caches.Add(list); // _cm_ExpireCache(caches); // _cm.Del(sms.Content); // } //} //else //{ // _cm.Add(sms.Content, new List<SMS>() { sms }); //} }
public void SendSMS(PlainSMS sms) { try { // List<SMS> caches = new List<SMS>(); string post = ""; string content = ""; if (SignaturePos == "0") { //签名在前 content = sms.Signature + sms.Content; } else { //签名在后 content = sms.Content + sms.Signature; } post = "action=send&userid=" + userId + "&account=" + account + "&password="******"&mobile=" + sms.Numbers + "&content=" + content + "&sendTime=&extno=" + SrcID + sms.SPNumber; // MessageHelper.Instance.WirteTest("发送字符串: " + post); string t = HTTPRequest.PostWebRequest(sendUrl, post, Encoding.UTF8); //string t = ""; MessageHelper.Instance.WirteTest("提交返回原始内容: " + t); //<? xml version = "1.0" encoding = "utf-8" ?> //< returnsms > //< returnstatus > status </ returnstatus > ----------返回状态值:成功返回Success 失败返回:Faild //<message> message</ message > ----------返回信息:见下表 //<remainpoint> remainpoint</ remainpoint > ----------返回余额 //< taskID > taskID </ taskID > -----------返回本次任务的序列ID //< successCounts > successCounts </ successCounts > --成功短信数:当成功后返回提交成功短信数 //</ returnsms > bool ok = true; string rmsg = ""; string msgid = ""; XmlDocument doc = new XmlDocument(); doc.LoadXml(t); XmlElement root = null; root = doc.DocumentElement; XmlNodeList listNodes = root.ChildNodes; foreach (XmlNode node in listNodes) { switch (node.Name) { case "returnstatus": ok = (node.InnerText == "Success") ? true : false; break; case "message": if (node.InnerText == "ok") { rmsg = "短信提交成功."; } else { rmsg = node.InnerText; } break; case "remainpoint": break; case "taskID": msgid = node.InnerText; break; case "successCounts": break; } } int r = 1;//原来默认0 ,应为1 by lmw 1 代表已发送 if (!ok) { // r = 101; r = 99;//提交失败 错误码应该在100以内吧 by lmw if (string.IsNullOrWhiteSpace(msgid) || msgid == "0") { msgid = System.Guid.NewGuid().ToString(); } } int i = 0; foreach (string num in sms.Numbers.Split(',')) { PlainSMS s = PlainSMS.GetPlainSMSWithOneNumber(sms, num); i++; SendEventArgs se = new SendEventArgs(s, msgid + i.ToString().PadLeft(5, '0'), ok, (ushort)(2000 + r), rmsg, 1, 1); if (SendEvent != null) { SendEvent(this, se); } //string result = JsonSerialize.Instance.Serialize<SendEventArgs>(se); //IService.ServiceProxy.Instance.WriteTest("短信发送结果:" + result); ExSendEventArgs ese = new ExSendEventArgs(se); if (ok) { lock (sendslocker) { sends.Add(se.SerialNumber, ese); } } } } catch (Exception ex) { MessageHelper.Instance.WirteError(ex.ToString()); LogClient.LogHelper.LogInfo("OPWO", "SendSMS Error ->", ex.Message); } }
public void SendSMS(PlainSMS sms) { try { string post = ""; for (int i = 0; i < sms.Number.Count; i++) { string md5p = MD5Helper.GetMD5(password); post = "Account=" + account + "&Password="******"&SubCode=&Phone=" + sms.Number[i] + "&Content=" + sms.Content + sms.Signature + "&SendTime="; string t = HTTPRequest.PostWebRequest(sendUrl, post, System.Text.Encoding.UTF8); bool ok = false; string rmsg = ""; string msgid = ""; XmlDocument doc = new XmlDocument(); doc.LoadXml(t); XmlElement root = null; root = doc.DocumentElement; XmlNodeList listNodes = root.ChildNodes; foreach (XmlNode node in listNodes) { if (node.Name == "response") { int c = int.Parse(node.InnerText); if (c <= 0) { msgid = System.Guid.NewGuid().ToString(); rmsg = GetSendErrorMsg(c); break; } } else { ok = true; rmsg = "短信提交成功."; foreach (XmlNode n in node.ChildNodes) { switch (n.Name) { case "smsID": msgid = n.InnerText; break; } } } } int r = 0; if (!ok) { r = 101; } SendEventArgs se = new SendEventArgs(sms, msgid, ok, (ushort)(2000 + r), rmsg, 1, 1); string result = JsonSerialize.Instance.Serialize <SendEventArgs>(se); Console.WriteLine("短信发送结果:" + result); ExSendEventArgs ese = new ExSendEventArgs(se); if (ok) { //sends.Add(se.Serial,ese); sends.Enqueue(ese); LogClient.LogHelper.LogInfo("WFLTQY", "SendSMS OK ->", result); } else { LogClient.LogHelper.LogInfo("WFLTQY", "SendSMS Fail ->", result); } if (SendEvent != null) { SendEvent(this, se); } } } catch (Exception ex) { Console.WriteLine(ex.Message); LogClient.LogHelper.LogInfo("WFLTQY", "SendSMS Error ->", ex.Message); } }
public void SendSMS(PlainSMS sms) { try { string post = ""; string content = ""; if (SignaturePos == "0") { //签名在前 content = sms.Signature + sms.Content; } else { //签名在后 content = sms.Content + sms.Signature; } post = "action=send&userid=" + userId + "&account=" + account + "&password="******"&mobile=" + sms.Numbers + "&content=" + content + "&sendTime=&extno=";//+ scrId + sms.SPNumber; // MessageHelper.Instance.WirteTest("发送字符串: " + post); string t = HTTPRequest.PostWebRequest(sendUrl, post, Encoding.UTF8); //string t = ""; MessageHelper.Instance.WirteTest("提交返回原始内容: " + t); //<? xml version = "1.0" encoding = "utf-8" ?> //< returnsms > //< returnstatus > status </ returnstatus > ----------返回状态值:成功返回Success 失败返回:Faild //<message> message</ message > ----------返回信息:见下表 //<remainpoint> remainpoint</ remainpoint > ----------返回余额 //< taskID > taskID </ taskID > -----------返回本次任务的序列ID //< successCounts > successCounts </ successCounts > --成功短信数:当成功后返回提交成功短信数 //</ returnsms > bool ok = true; string rmsg = ""; string msgid = ""; XmlDocument doc = new XmlDocument(); doc.LoadXml(t); XmlElement root = null; root = doc.DocumentElement; XmlNodeList listNodes = root.ChildNodes; foreach (XmlNode node in listNodes) { switch (node.Name) { case "returnstatus": ok = (node.InnerText == "Success") ? true : false; break; case "message": if (node.InnerText == "ok") { rmsg = "短信提交成功."; } else { rmsg = node.InnerText; } break; case "remainpoint": break; case "taskID": msgid = node.InnerText; break; case "successCounts": break; } } int r = 0; if (!ok) { r = 99; if (string.IsNullOrWhiteSpace(msgid) || msgid == "0") { msgid = System.Guid.NewGuid().ToString(); } } ReportEventArgs re = new ReportEventArgs(); int i = 0; re.StatusReports.AddRange(sms.Numbers.Split(',').Select(n => new StatusReport() { SMSID = sms.ID, SerialNumber = msgid + (++i).ToString().PadLeft(5, '0'), SendTime = sms.SendTime.Value, StatusCode = 2000 + r, Succeed = ok, Channel = sms.Channel, Description = rmsg, Number = n, ResponseTime = null })); SendEvent(this, re); if (ok) { lock (sendslocker) { sends.Add(msgid, re); } } } catch (Exception ex) { MessageHelper.Instance.WirteError(ex.ToString()); LogClient.LogHelper.LogInfo("ZSXWG", "SendSMS Error ->", ex.Message); } }
public void SendSMS(PlainSMS sms) { try { string post = ""; string content = ""; foreach (var num in sms.Numbers.Split(',')) { content = System.Web.HttpUtility.UrlEncode(sms.Content + sms.Signature, System.Text.Encoding.UTF8); post = "account=" + account + "&pswd=" + password + "&mobile=" + num + "&msg=" + content + "&needstatus=true&product="; Console.WriteLine("post-> " + post); string t = HTTPRequest.PostWebRequest(sendUrl, post, System.Text.Encoding.UTF8); Console.WriteLine("request-> " + t); string[] ts = t.Split((char)0xa); string msgid = ""; if (ts.Length > 1) { msgid = ts[1]; } ts = ts[0].Split(','); int r = int.Parse(ts[1]); bool ok = (r == 0) ? true : false; string rmsg = "发送成功."; switch (r) { case 101: rmsg = "无此用户。"; break; case 102: rmsg = "密码错。"; break; case 103: rmsg = "提交过快(提交速度超过流速限制)"; break; case 104: rmsg = "系统忙(因平台侧原因,暂时无法处理提交的短信)"; break; case 105: rmsg = "敏感短信(短信内容包含敏感词)"; break; case 106: rmsg = "消息长度错(> 536或 <= 0)"; break; case 107: rmsg = "包含错误的手机号码"; break; case 108: rmsg = "手机号码个数错(群发 > 50000或 <= 0; 单发 > 200或 <= 0)"; break; case 109: rmsg = "无发送额度(该用户可用短信数已使用完)"; break; case 110: rmsg = "不在发送时间内"; break; case 111: rmsg = "超出该账户当月发送额度限制"; break; case 112: rmsg = "无此产品,用户没有订购该产品"; break; case 113: rmsg = "extno格式错(非数字或者长度不对)"; break; case 115: rmsg = "自动审核驳回"; break; case 116: rmsg = "签名不合法,未带签名(用户必须带签名的前提下)"; break; case 117: rmsg = "IP地址认证错,请求调用的IP地址不是系统登记的IP地址"; break; case 118: rmsg = "用户没有相应的发送权限"; break; case 119: rmsg = "用户已过期"; break; } if (r > 100) { r = r - 100; //状态报告程序会根据r的值的范围进行不同的处理 } if (!ok) { msgid = System.Guid.NewGuid().ToString(); } SendEventArgs se = new SendEventArgs(sms, msgid, ok, (ushort)(2000 + r), rmsg, 1, 1); string result = JsonSerialize.Instance.Serialize <SendEventArgs>(se); Console.WriteLine("短信发送结果:" + result); if (ok) { LogClient.LogHelper.LogInfo("JCWG", "SendSMS OK ->", result); } else { LogClient.LogHelper.LogInfo("JCWG", "SendSMS Fail ->", result); } if (SendEvent != null) { SendEvent(this, se); } } } catch (Exception ex) { Console.WriteLine(ex.Message); LogClient.LogHelper.LogInfo("JCWG", "SendSMS Error ->", ex.Message); } }