/// <summary> /// /// </summary> /// <param name="pms"></param> /// <param name="rm"></param> /// <returns>是否发送成功</returns> public bool Send(List <SmsPhoneMsg> pms, out SmsResponseMsg rm, bool isMass) { #region try { DateTime now = DateTime.Now; Guid PostGuid = Guid.Empty; PostGuid = Guid.NewGuid(); MTPack pack = new MTPack(); MessageData[] Messagedatas = null; if (isMass) { //群发 if (pms.Count > 0) { Messagedatas = new MessageData[pms.Count]; for (int i = 0; i < pms.Count; i++) { Messagedatas[i] = new MessageData(); Messagedatas[i].Content = pms[i].Content; Messagedatas[i].Phone = pms[i].Phone.Trim(); Messagedatas[i].vipFlag = false; Messagedatas[i].customMsgID = Guid.NewGuid().ToString(); } pack.sendType = (int)PostMsg_Net.SendType.MASS;//具体是哪种发送模式具体分析下 } } else { //组发 Messagedatas = new MessageData[pms.Count]; for (int i = 0; i < pms.Count; i++) { Messagedatas[i] = new MessageData(); Messagedatas[i].Content = pms[i].Content.Trim(); Messagedatas[i].Phone = pms[i].Phone.Trim(); Messagedatas[i].vipFlag = false; Messagedatas[i].customMsgID = Guid.NewGuid().ToString(); } pack.sendType = (int)PostMsg_Net.SendType.GROUP;//具体是哪种发送模式具体分析下 } pack.msgs = Messagedatas; pack.msgType = (int)PostMsg_Net.MsgType.SMS; pack.batchID = PostGuid; #region 可选设置 //DateTime ttt; //bool flag1, flag2; //可选设置 //if (!string.IsNullOrEmpty(txtSubid.Text.Trim())) // pack.customNum = txtSubid.Text.Trim();//扩展号 //if (!string.IsNullOrEmpty(textBox4.Text)) //{ // flag1 = DateTime.TryParse(textBox4.Text, out ttt); // if (!flag1) // { // txtResult.AppendText("发送批次号:00000000-0000-0000-0000-000000000000\r\n返回处理结果状态码:-2\r\n结果信息:参数无效"); // return; // } //} //if (!string.IsNullOrEmpty(textBox8.Text)) //{ // flag2 = DateTime.TryParse(textBox8.Text, out ttt); // if (!flag2) // { // txtResult.AppendText("发送批次号:00000000-0000-0000-0000-000000000000\r\n返回处理结果状态码:-2\r\n结果信息:参数无效"); // return; // } //} //if (!string.IsNullOrEmpty(textBox4.Text)) // pack.scheduleTime = DateAndTicks.GetTicksFromDate(DateTime.Parse(textBox4.Text)); //if (!string.IsNullOrEmpty(textBox8.Text)) // pack.deadline = DateAndTicks.GetTicksFromDate(DateTime.Parse(textBox8.Text)); //if (!string.IsNullOrEmpty(textBox12.Text)) // pack.batchName = textBox12.Text; //if (!string.IsNullOrEmpty(comboBox1.Text)) //{ // pack.distinctFlag = comboBox1.Text == "是" ? true : false; //} #endregion //业务类型(0-20之间) pack.bizType = 0; GsmsResponse getresponse = postMsg.Post(postMsg.GetAccount(), pack); TimeSpan t = DateTime.Now.Subtract(now); int tt = Convert.ToInt32(t.Seconds); rm = new SmsResponseMsg(); if (getresponse != null) { rm.Uuid = getresponse.uuid; rm.Result = getresponse.result; rm.Message = getresponse.message; rm.Attributes = getresponse.attributes; rm.UseMillisecond = tt; struuid = getresponse.uuid.ToString(); if (getresponse.result != (int)Result.SUCCESS) { return(false); } } return(true); } catch (Exception ex) { rm = new SmsResponseMsg(); rm.Result = -1; rm.Message = ex.Message; return(false); } #endregion }
public static int PostMsg(string MchUName, string MchUPass, string MchIP, int MoPort, int MtPort, string mobile, string content, string customMsgID, out string msg) { int result = -1; string errMsg = ""; postMsg.SetUser(MchUName, MchUPass); postMsg.SetMOAddress(MchIP, MoPort, LinkType.SHORTLINK); /// 设置上行网关地址、端口 postMsg.SetGateWay(MchIP, MtPort, LinkType.SHORTLINK); /// 设置下行网关地址、端口 //普通端口,http端口 9050 18088 //postMsg.SetMOAddress("211.147.239.62",9070, LinkType.SHORTLINK); /// 设置上行网关地址、端口 //postMsg.SetGateWay("211.147.239.62",9080, LinkType.SHORTLINK); /// 设置下行网关地址、端口 //400端口 //postMsg.SetMOAddress("211.147.239.62", 8460, LinkType.SHORTLINK); /// 设置上行网关地址、端口 //postMsg.SetGateWay("211.147.239.62", 8450, LinkType.SHORTLINK); /// 设置下行网关地址、端口 MessageData[] messagedatas = new MessageData[1]; // 号码数量 #region 群发 ///////////////////////<<群发>>///////////////// for (int i = 0; i < messagedatas.Length; i++) { messagedatas[i] = new MessageData(); messagedatas[i].Content = content; messagedatas[i].Phone = mobile; messagedatas[i].vipFlag = true; messagedatas[i].customMsgID = customMsgID; messagedatas[i].customNum = ""; } #endregion #region 组发 ///////////////////////<<组发>>///////////////// //for (int i = 0; i < messagedatas.Length; i++) //{ // messagedatas[i] = new MessageData(); // messagedatas[i].Content = "内容" + i; // messagedatas[i].Phone = "135" + i.ToString("D8"); // messagedatas[i].vipFlag = true; // messagedatas[i].customMsgID = "3241111"; //} #endregion #region ///////////////<<手动>>/////////////////// //messagedatas[0] = new MessageData(); //messagedatas[0].Content = "34"; //messagedatas[0].Phone = ""; //messagedatas[0].vipFlag = true; //messagedatas[0].customMsgID = "121"; //messagedatas[1] = new MessageData(); //messagedatas[1].Content = "rw"; //messagedatas[1].Phone = "13580550705"; //messagedatas[1].vipFlag = true; //messagedatas[1].customMsgID = "121"; #endregion MTPack mtpack = new MTPack(); mtpack.batchID = Guid.NewGuid(); mtpack.batchName = "Rtxx" + DateTime.Now.ToString("yyyyMMdd"); /// 分批名称 mtpack.msgs = messagedatas; mtpack.msgType = 1; mtpack.bizType = 1; mtpack.customNum = ""; /// 扩展号 mtpack.scheduleTime = 0; /// 时间使用int64类型,是指从1970-1-1 00:00:00开始到当前的毫秒数 mtpack.sendType = 0; /// 发送类型 0为群发 1为组发 mtpack.distinctFlag = true; /// 是否过滤重复号码 mtpack.deadline = 0; /// 时间使用int64类型,是指从1970-1-1 00:00:00开始到当前的毫秒数 mtpack.remark = ""; /// 备注 GsmsResponse gr = postMsg.Post(new Account() { Name = MchUName, Password = MchUPass }, mtpack); if (gr != null) { //Console.WriteLine("发送批次号:" + gr.uuid.ToString() + "\r\n"); result = gr.result; errMsg = gr.message.ToString(); //Console.WriteLine("结果信息:" + gr.attributes.ToString() + "\r\n"); if (result != 0) { Console.WriteLine("发送失败:" + errMsg + "\r\n"); } } msg = errMsg; return(result); }