Classe de mensagem SMS API em C#
A classe de mensagens SMS na API de SMS em C# é responsável por transportar uma mensagem entre a aplicação da API de SMS em C# e o Ozeki SMS Gateway. Esta é a classe que você passa para o método Client.Send() quando deseja enviar um SMS através da API de SMS em C#/Net.
API de SMS em C# / ID da mensagem SMS
ID: O ID da mensagem é usado para identificar o SMS. Este ID é retornado para relatórios de envio de SMS e relatórios de entrega de SMS.
API de SMS em C# / ID do remetente SMS
FromConnection: O nome da conexão da rede móvel de SMS onde o SMS entrou no Ozeki SMS Gateway. Por exemplo, se você se conectar à rede móvel usando uma conexão de cliente SMPP, será "SMPPClient1" quando um SMS entrar nessa conexão. Se você usar um gateway SMS para Android, isso seria "Vodafone UK" se o SMS entrou através do cartão SIM que serve a rede Vodafone.
FromAddress: O ID do remetente da mensagem SMS. Se o SMS foi enviado de um telefone móvel com o número +44123467, esta propriedade conterá o valor +44123467. Se você deseja especificar um ID de remetente personalizado para um SMS que deseja enviar, esta é a propriedade que você deve definir. Você pode colocar um número de telefone neste campo, um código curto de SMS associado à API de SMS em C#, ou um ID de remetente alfanumérico identificando a API de SMS em C#.
FromStation: Este é o ID do computador do gateway SMS que recebeu o SMS. Cada Ozeki SMS Gateway tem um ID global único (GUID). Se sua API em C# se conectar a vários gateways SMS, este ID é útil para identificar de onde vem a mensagem SMS.
API de SMS em C# / Destinatário do SMS
ToConnection: Use este campo se desejar substituir a tabela de roteamento de SMS no Gateway SMS. Você pode especificar o nome da conexão da rede móvel de SMS a ser usada para a entrega do SMS neste campo.
ToAddress: O número de telefone para onde o SMS deve ser enviado. Se você deseja enviar uma mensagem de texto para o telefone móvel +3620123456, coloque +3620123456 neste campo. Este campo é obrigatório para mensagens SMS de saída.
ToStation: Este campo pode ser usado se você deseja encaminhar seu SMS através de um gateway SMS específico. Este campo só é relevante se você trabalhar com vários gateways SMS. É seguro deixá-lo vazio.
API de SMS em C# / Texto do SMS
Text: Este é o campo onde você deve colocar o texto da mensagem. Este campo pode conter mensagens de até 65.536 caracteres. Se o comprimento da mensagem for maior que 160 caracteres, seu SMS será enviado como uma mensagem SMS multiparte. Este campo é obrigatório para toda mensagem SMS.
API de SMS em C# / Datas
CreateDate: Este carimbo de data e hora é automaticamente definido como Datetime.Now quando uma instância da classe de mensagens é criada.
ValidUntil: Defina este tempo em sua implementação da API de SMS em C# para especificar uma data de expiração para o SMS. Se seu SMS expirar, ele será removido da pasta de saída. Esta data também é usada para definir o período de validade para o SMS antes de ser enviado para a rede móvel.
TimeToSend: Para agendar um SMS para entrega futura em sua API de SMS em C#, defina esta data para um momento futuro. Sua mensagem SMS permanecerá na caixa de saída do Gateway SMS até que chegue o momento de enviá-la. (Observe que o Ozeki SMS Gateway é um servidor SMS, o que significa que ele é capaz de armazenar e encaminhar suas mensagens SMS).
API de SMS em C# / Solicitação de relatório de entrega
IsSubmitReportRequested: Defina como true se desejar receber um relatório SubmitAccepted em sua implementação da API de SMS em C#.
IsDeliveryReportRequested: Defina como true se desejar receber um relatório de entrega em sua implementação da API de SMS em C#.
IsViewReportRequested: Defina como true se desejar receber um relatório de visualização em sua implementação da API de SMS em C#. Observe que os relatórios de visualização para mensagens SMS não são retornados pela rede móvel. O relatório de visualização é usado se você enviar suas mensagens para um destinatário de chat, e o destinatário visualizar suas mensagens no aplicativo de chat.
API de SMS em C# / Tags
Tags: As tags de mensagem são campos opcionais. Você pode especificar campos no formato nome/valor. Esta lista de parâmetros adicionais pode ser usada para especificar valores personalizados usados na transmissão de SMS, como PDU bruto, esquema de codificação de dados, números de porta SMS e outros valores semelhantes, que podem ser usados para codificação.
C# sms api classe de mensagem fonte
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace OZX
{
public class OzxMessage : IOzxMessage
{
public string ID { get; set; }
public string FromConnection { get; set; }
public string FromAddress { get; set; }
public string FromStation { get; set; }
public string ToConnection { get; set; }
public string ToAddress { get; set; }
public string ToStation { get; set; }
public string Text { get; set; }
public DateTime CreateDate { get; set; }
public DateTime ValidUntil { get; set; }
public DateTime TimeToSend { get; set; }
public bool IsSubmitReportRequested { get; set; }
public bool IsDeliveryReportRequested { get; set; }
public bool IsViewReportRequested { get; set; }
//**********************************************
// Tags opcionais
//**********************************************
static Dictionary<string, string> _tags;
static Dictionary<string, string> Tags
{
get { return _tags ?? (_tags = new Dictionary<string,string>()); }
}
public Dictionary<string, string> GetTags()
{
lock (Tags)
{
return Tags.ToDictionary(entry => entry.Key, entry => entry.Value);
}
}
public void AddTag(string key, string value)
{
lock (Tags)
{
if (Tags.ContainsKey(key))
Tags[key] = value;
else
Tags.Add(key, value);
}
}
//**********************************************
// Construção
//**********************************************
public OzxMessage()
{
ID = Guid.NewGuid().ToString();
CreateDate = DateTime.Now;
TimeToSend = DateTime.MinValue;
ValidUntil = DateTime.Now.AddDays(7);
IsSubmitReportRequested = true;
IsDeliveryReportRequested = true;
IsViewReportRequested = true;
}
//**********************************************
// Para string
//**********************************************
public override string ToString()
{
var sb = new StringBuilder();
if (!string.IsNullOrEmpty(FromAddress))
sb.Append(FromAddress.ToString());
else
sb.Append(FromConnection);
sb.Append("->");
if (!string.IsNullOrEmpty(ToAddress))
sb.Append(ToAddress.ToString());
else
sb.Append(ToConnection);
if (Text != null)
{
sb.Append(" '");
sb.Append(Text);
sb.Append("'");
}
return sb.ToString();
}
}
}