Ejemplo n.º 1
0
        /// <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
        }
Ejemplo n.º 2
0
        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);
        }