📄 submit.cs
字号:
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 + -