public static string MessageOper(Dat_MsgTel_List singleDat_MsgTel_List) { //先发送短信 singleDat_MsgTel_List.sendSj = DateTime.Now.ToString(); object sendState = null; //if ("0".Equals(singleDat_MsgTel_List.isTiming)) //{ sendState = SendMessage(singleDat_MsgTel_List.sendDoc, singleDat_MsgTel_List.getTel); //} //else //{ // sendState = SendMessageTimer(singleDat_MsgTel_List.sendDoc, singleDat_MsgTel_List.getTel,singleDat_MsgTel_List.timingSj); //} //处理返回值 string strState = ""; string strPh = ""; string strFlag = "S";//S-发送成功;E-发送不成功 if (sendState != null) { System.Reflection.FieldInfo fieldInfoId = sendState.GetType().GetField("Id"); int intId = (int)fieldInfoId.GetValue(sendState); strPh = intId.ToString(); System.Reflection.FieldInfo fieldInfoState = sendState.GetType().GetField("State"); int intState = (int)fieldInfoState.GetValue(sendState);; System.Reflection.FieldInfo fieldInfoFailPhone = sendState.GetType().GetField("FailPhone"); string strFailPhone = (string)fieldInfoFailPhone.GetValue(sendState); switch (intState) { case 0: strState = "帐户处于禁止使用状态"; break; case 1: strState = "发送短信成功"; break; case -1: strState = "发送失败"; break; case -2: strState = "帐户信息错误"; break; case -3: strState = "机构代码、用户名或密码错误"; break; case -4: strState = "不是普通帐户"; break; case -5: strState = "发送短信内容为空"; break; case -6: strState = "短信内容过长"; break; case -7: strState = "发送号码为空"; break; case -8: strState = "余额不足"; //如果余额不足,应提醒系统管理员 break; case -9: strState = "接收数据失败"; break; case -10: strState = "号码错误"; break; case -11: strState = "发送时间格式错误"; break; case -12: strState = "定时时间必须大于当前时间"; break; case -13: //如是失败-13,返回strFailPhone是包含的关键字 strState = "内容含关键字" + strFailPhone; break; case -14: strState = "信息内容格式与限定格式不符"; break; case -15: strState = "信息没带签名"; break; case -30: strState = "非绑定IP"; break; case -100: strState = "客户端获取状态失败"; break; default: strState = "发送失败,不明原因"; break; } //如果strFailPhone不是空值,说明该批次有部分接收电话发送失败 if (intState != -13 && !String.IsNullOrWhiteSpace(strFailPhone)) { strState = strFailPhone + "发送失败"; } } else { strState = "发送失败,连接不到短信接口"; strFlag = "E"; } singleDat_MsgTel_List.retMsg = strState; singleDat_MsgTel_List.retSj = DateTime.Now.ToString(); singleDat_MsgTel_List.retPh = strPh; singleDat_MsgTel_List.flag = strFlag; //短信保存到数据库 //AddDat_MsgTel_List(singleDat_MsgTel_List); string seqno = Dat_MsgTel_List.AddDat_MsgTel_List(singleDat_MsgTel_List); JObject jo = new JObject(); jo.Add("seqno", seqno); jo.Add("state", strState); return(jo.ToString()); }
public static string MessageOper(String sendDoc, String getTel, String isTiming, String timingSj, String sendUser, String sendCust, String Class) { JObject retJObject = new JObject(); //验证字段有效性 if (!String.IsNullOrWhiteSpace(sendDoc)) { if (sendDoc.Length > 500) { retJObject.Add("state", "短信内容不能超过500个字符"); return(retJObject.ToString()); } else { //可以过滤关键字 } } else { retJObject.Add("state", "发送短信内容为空"); return(retJObject.ToString()); } if (!String.IsNullOrWhiteSpace(getTel)) { if (getTel.Length > 1200) { retJObject.Add("state", "接收短信电话号码不能超过100个号码"); return(retJObject.ToString()); } else { //可以验证电话号码有效性 } } else { retJObject.Add("state", "接收短信电话号码为空"); return(retJObject.ToString()); } if (!String.IsNullOrWhiteSpace(isTiming) && "1".Equals(isTiming)) { isTiming = "1"; if (!String.IsNullOrWhiteSpace(timingSj)) { try { if (Convert.ToDateTime(timingSj) < DateTime.Now) { retJObject.Add("state", "定时时间必须大于当前时间"); return(retJObject.ToString()); } timingSj = Convert.ToDateTime(timingSj).ToString("yyyy-MM-dd HH:mm:ss");//转换时有问题 } catch { retJObject.Add("state", "发送时间格式错误"); return(retJObject.ToString()); } } else { retJObject.Add("state", "定时发送时间为空"); return(retJObject.ToString()); } } else { isTiming = "0"; timingSj = null; } if (String.IsNullOrWhiteSpace(sendUser)) { retJObject.Add("state", "发送人为空"); return(retJObject.ToString()); } if (String.IsNullOrWhiteSpace(sendCust)) { retJObject.Add("state", "发送用户为空"); return(retJObject.ToString()); } if (String.IsNullOrWhiteSpace(Class)) { Class = "1"; } Dat_MsgTel_List dat_MsgTel_List = new Dat_MsgTel_List(); dat_MsgTel_List.sendDoc = sendDoc; dat_MsgTel_List.getTel = getTel; dat_MsgTel_List.sendUser = sendUser; dat_MsgTel_List.sendCust = sendCust; dat_MsgTel_List.rqsj = DateTime.Now.ToString(); dat_MsgTel_List.isTiming = isTiming; dat_MsgTel_List.timingSj = timingSj; dat_MsgTel_List.Class = Class; dat_MsgTel_List.flag = "N"; string result = "短信已存入数据库,等待发送"; if ("1".Equals(isTiming))//如果是定时发送,直接保存信息至数据库 { string seqno = Dat_MsgTel_List.AddDat_MsgTel_List(dat_MsgTel_List); retJObject.Add("seqno", seqno); retJObject.Add("state", result); result = retJObject.ToString(); } else { result = MessageOper(dat_MsgTel_List); } return(result); }