⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 submit.cs

📁 短信串口通信 于短信网关通信协议的封装 C#实现的类库
💻 CS
📖 第 1 页 / 共 2 页
字号:
using System;
using System.Collections.Generic;
using System.Text;

namespace JeasonZhao.Sms.SGIP.Command
{
    /// <summary>
    /// 在SP和SMG的通信中,SP用Submit命令向SMG提交MT短消息,发送到用户的手机中。SMG接收到Submit命令,会返回Submit_Resp应答。SMG根据Submit命令中的付费号码,判断出该命令是否应从本地SMSC发送,如果属于本地发送,则直接发送到相应的SMSC,否则路由至相应的SMG。
    /// 在SMG和SMG的通信中,Submit命令用于SMG客户端向服务器端路由从SP收到的MT短消息。服务器端接收到Submit命令后,再发送到与之相连的目的SMSC。
    /// </summary>
    public class Submit : BaseCommand
    {

        //private List<string> m_allUserNumbers = new List<string>();
        //public  List<string> AllUserNumbers 
        //{
        //    get { return m_allUserNumbers; }
        //}
        public Submit()
            : base(Commands.Submit)
        {
        }
        //public void AddUserNumber(String str)
        //{
        //    m_allUserNumbers.Add(str);
        //}
        #region 字段列表
        //SPNumber	21	Text	SP的接入号码
        private string m_SPNumber = null;
        //ChargeNumber	21	Text	付费号码,手机号码前加“86”国别标志;当且仅当群发且对用户收费时为空;如果为空,则该条短消息产生的费用由UserNumber代表的用户支付;如果为全零字符串“000000000000000000000”,表示该条短消息产生的费用由SP支付。
        private string m_ChargeNumber = null;
        //UserCount	1	Integer	接收短消息的手机数量,取值范围1至100
        private byte m_UserCount = 1;
        //UserNumber	21	Text	接收该短消息的手机号,该字段重复UserCount指定的次数,手机号码前加“86”国别标志
        private string m_UserNumber = null;
        //CorpId	5	Text	企业代码,取值范围0-99999
        private string m_CorpId = null;
        //ServiceType	10	Text	业务代码,由SP定义
        private string m_ServiceType = "DCGZ";
        //FeeType	1	Integer	计费类型
        private FeeTypes m_FeeType = FeeTypes.Free;
        //FeeValue	6	Text	取值范围0-99999,该条短消息的收费值,单位为分,由SP定义 对于包月制收费的用户,该值为月租费的值
        private string m_FeeValue = "0";
        //GivenValue	6	Text	取值范围0-99999,赠送用户的话费,单位为分,由SP定义,特指由SP向用户发送广告时的赠送话费
        private string m_GivenValue = "0";
        //AgentFlag	1	Integer	代收费标志,0:应收;1:实收
        private SubmitAgentFlag m_AgentFlag = SubmitAgentFlag.SouldIncome;
        //MorelatetoMTFlag	1	Integer	引起MT消息的原因0-MO点播引起的第一条MT消息;1-MO点播引起的非第一条MT消息;2-非MO点播引起的MT消息;3-系统反馈引起的MT消息。
        private SubmitMorelatetoMTFlags m_MorelatetoMTFlag = SubmitMorelatetoMTFlags.VoteFirst;
        //Priority	1	Integer	优先级0-9从低到高,默认为0
        private byte m_Priority = 0;
        //ExpireTime	16	Text	短消息寿命的终止时间,如果为空,表示使用短消息中心的缺省值。时间内容为16个字符,格式为”yymmddhhmmsstnnp” ,其中“tnnp”取固定值“032+”,即默认系统为北京时间
        private string m_ExpireTime = null;
        //ScheduleTime	16	Text	短消息定时发送的时间,如果为空,表示立刻发送该短消息。时间内容为16个字符,格式为“yymmddhhmmsstnnp” ,其中“tnnp”取固定值“032+”,即默认系统为北京时间
        private string m_ScheduleTime = null;
        //ReportFlag	1	Integer	状态报告标记0-该条消息只有最后出错时要返回状态报告1-该条消息无论最后是否成功都要返回状态报告2-该条消息不需要返回状态报告3-该条消息仅携带包月计费信息,不下发给用户,要返回状态报告其它-保留缺省设置为0
        private SubmitReportFlag m_ReportFlag = SubmitReportFlag.NoReport;
        //TP_pid	1	Integer	GSM协议类型。详细解释请参考GSM03.40中的9.2.3.9
        private byte m_TP_pid = 0;
        //TP_udhi	1	Integer	GSM协议类型。详细解释请参考GSM03.40中的9.2.3.23,仅使用1位,右对齐
        private byte m_TP_udhi = 0;
        //MessageCoding	1	Integer	短消息的编码格式。0:纯ASCII字符串3:写卡操作4:二进制编码8:UCS2编码15: GBK编码其它参见GSM3.38第4节:SMS Data Coding Scheme
        private MessageCodings m_MessageCoding = MessageCodings.Gbk;
        //MessageType	1	Integer	信息类型:0-短消息信息其它:待定
        private byte m_MessageType = 0;
        //MessageLength	4	Integer	短消息的长度
        private uint m_MessageLength = 0;
        //MessageContent	Message Length	Text	短消息的内容
        private string m_MessageContent = null;
        //Reserve	8	Text	保留,扩展用
        private string m_Reserve = null;
        #endregion
        #region 属性列表
        /// <summary>
        ///SPNumber	21	Text	SP的接入号码
        /// </summary>
        [SmsField(false, 0, 21)]
        public string SPNumber
        {
            get { return m_SPNumber; }
            set { m_SPNumber = value; }
        }
        /// <summary>
        ///ChargeNumber	21	Text	付费号码,手机号码前加“86”国别标志;当且仅当群发且对用户收费时为空;如果为空,则该条短消息产生的费用由UserNumber代表的用户支付;如果为全零字符串“000000000000000000000”,表示该条短消息产生的费用由SP支付。
        /// </summary>
        [SmsField(false, 1, 21)]
        public string ChargeNumber
        {
            get { return m_ChargeNumber; }
            set { m_ChargeNumber = value; }
        }
        /// <summary>
        ///UserCount	1	Integer	接收短消息的手机数量,取值范围1至100
        /// </summary>
        [SmsField(false, 2, 1)]
        public byte UserCount
        {
            get { return m_UserCount; }
            set { m_UserCount = value; }
        }
        /// <summary>
        ///UserNumber	21	Text	接收该短消息的手机号,该字段重复UserCount指定的次数,手机号码前加“86”国别标志
        /// </summary>
        [SmsField(false, 3, 21)]
        public string UserNumber
        {
            get { return m_UserNumber; }
            set { m_UserNumber = value; }
        }
        /// <summary>
        ///CorpId	5	Text	企业代码,取值范围0-99999
        /// </summary>
        [SmsField(false, 4, 5)]
        public string CorpId
        {
            get { return m_CorpId; }
            set { m_CorpId = value; }
        }
        /// <summary>
        ///ServiceType	10	Text	业务代码,由SP定义
        /// </summary>
        [SmsField(false, 5, 10)]
        public string ServiceType
        {
            get { return m_ServiceType; }
            set { m_ServiceType = value; }
        }
        /// <summary>
        ///FeeType	1	Integer	计费类型
        /// </summary>
        [SmsField(false, 6, 1)]
        public FeeTypes FeeType
        {
            get { return m_FeeType; }
            set { m_FeeType = value; }
        }
        /// <summary>
        ///FeeValue	6	Text	取值范围0-99999,该条短消息的收费值,单位为分,由SP定义 对于包月制收费的用户,该值为月租费的值
        /// </summary>
        [SmsField(false, 7, 6)]
        public string FeeValue
        {
            get { return m_FeeValue; }
            set { m_FeeValue = value; }
        }
        /// <summary>
        ///GivenValue	6	Text	取值范围0-99999,赠送用户的话费,单位为分,由SP定义,特指由SP向用户发送广告时的赠送话费
        /// </summary>
        [SmsField(false, 8, 6)]
        public string GivenValue
        {
            get { return m_GivenValue; }
            set { m_GivenValue = value; }
        }
        /// <summary>
        ///AgentFlag	1	Integer	代收费标志,0:应收;1:实收
        /// </summary>
        [SmsField(false, 9, 1)]
        public SubmitAgentFlag AgentFlag
        {
            get { return m_AgentFlag; }
            set { m_AgentFlag = value; }
        }
        /// <summary>
        ///MorelatetoMTFlag	1	Integer	引起MT消息的原因0-MO点播引起的第一条MT消息;1-MO点播引起的非第一条MT消息;2-非MO点播引起的MT消息;3-系统反馈引起的MT消息。
        /// </summary>
        [SmsField(false, 10, 1)]
        public SubmitMorelatetoMTFlags MorelatetoMTFlag
        {
            get { return m_MorelatetoMTFlag; }
            set { m_MorelatetoMTFlag = value; }
        }
        /// <summary>
        ///Priority	1	Integer	优先级0-9从低到高,默认为0
        /// </summary>
        [SmsField(false, 11, 1)]
        public byte Priority
        {

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -