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();
        }

    }
}

More information