C# SMS API klasa poruka

Klasa SMS poruka u C# SMS API odgovorna je za prijenos poruke između C# SMS API aplikacije i Ozeki SMS Gatewaya. Ovo je klasa koju prosljeđujete metodi Client.Send() kada želite poslati SMS putem C#/Net SMS API-ja.

C# SMS API / ID SMS poruke

ID: ID poruke koristi se za identifikaciju SMS-a. Ovaj ID se vraća za izvješća o slanju SMS-a i izvješća o isporuci SMS-a.

C# SMS API / ID pošiljatelja SMS-a

FromConnection: Naziv veze s mobilnom mrežom SMS-a gdje je SMS stigao u Ozeki SMS Gateway. Na primjer, ako se povezujete s mobilnom mrežom pomoću SMPP klijentske veze, bit će "SMPPClient1" kada SMS stigne na tu vezu. Ako koristite Android SMS gateway, ovo bi bilo "Vodafone UK" ako je SMS stigao putem SIM kartice koja opslužuje Vodafone mrežu.

FromAddress: ID pošiljatelja SMS poruke. Ako je SMS poslan s mobilnog telefona s brojem +44123467, ovo svojstvo će sadržavati vrijednost +44123467. Ako želite odrediti prilagođeni ID pošiljatelja za SMS koji želite poslati, ovo je svojstvo koje biste trebali postaviti. Možete staviti broj telefona u ovo polje, SMS kratki kod povezan s C# SMS API-jem, ili alfanumerički ID pošiljatelja koji identificira C# SMS API.

FromStation: Ovo je ID računala SMS gatewaya koje je primilo SMS. Svaki Ozeki SMS Gateway ima jedinstveni globalni ID (GUID). Ako se vaš C# API povezuje s više SMS Gatewaya, ovaj ID je koristan za identifikaciju odakle SMS poruka dolazi.

C# SMS API / Primatelj SMS-a

ToConnection: Koristite ovo polje ako želite nadjačati tablicu usmjeravanja SMS-a u SMS Gatewayu. Možete odrediti naziv veze s mobilnom mrežom SMS-a koja će se koristiti za isporuku SMS-a u ovom polju.

ToAddress: Broj telefona na koji bi SMS trebao biti poslan. Ako želite poslati tekstualnu poruku na mobilni telefon +3620123456, stavite +3620123456 u ovo polje. Ovo polje je obavezno za odlazne SMS poruke.

ToStation: Ovo polje može se koristiti ako želite proslijediti svoj SMS putem određenog SMS gatewaya. Ovo polje je relevantno samo ako radite s više SMS Gatewaya. Sigurno je ostaviti ga praznim.

C# SMS API / Tekst SMS-a

Text: Ovo polje je mjesto gdje biste trebali staviti tekst poruke. Ovo polje može sadržavati poruke do 65 536 znakova. Ako je duljina poruke duža od 160 znakova, vaš SMS će biti poslan kao višedijelna SMS poruka. Ovo polje je obavezno za svaku SMS poruku.

C# SMS API / Datumi

CreateDate: Ovaj vremenski pečat automatski je postavljen na Datetime. Now kada se stvori instanca klase poruka.

ValidUntil: Postavite ovo vrijeme u vašoj C# SMS API implementaciji kako biste odredili datum isteka za SMS. Ako je vaš SMS istekao, bit će uklonjen iz mape outbox. Ovaj datum se također koristi za postavljanje razdoblja valjanosti za SMS prije nego što se pošalje u mobilnu mrežu.

TimeToSend: Da biste zakazali SMS za buduću isporuku u vašem C# SMS API-ju, postavite ovaj datum na buduću točku u vremenu. Vaša SMS poruka će ostati u outboxu SMS Gatewaya dok ne dođe vrijeme za njeno slanje. (Imajte na umu da je Ozeki SMS Gateway SMS server što znači da može pohraniti i proslijediti vaše SMS poruke).

C# SMS API / Zahtjev za izvješćem o isporuci

IsSubmitReportRequested: Postavite ovo na true ako želite primiti izvješće SubmitAccepted u vašoj C# SMS API implementaciji.

IsDeliveryReportRequested: Postavite ovo na true ako želite primiti izvješće o isporuci u vašoj C# SMS API implementaciji.

IsViewReportRequested: Postavite ovo na true ako želite primiti izvješće o pregledu u vašoj C# SMS API implementaciji. Imajte na umu da izvješća o pregledu za SMS poruke nisu vraćena od strane mobilne mreže. Izvješće o pregledu koristi se ako šaljete svoje poruke primatelju chata, a primatelj pregleda vaše poruke u aplikaciji za chat.

C# SMS API / Oznake

Tags: Oznake poruka su opcionalna polja. Možete odrediti polja u formatu naziv/vrijednost. Ovaj popis dodatnih parametara može se koristiti za određivanje prilagođenih vrijednosti koje se koriste u prijenosu SMS-a, kao što su sirovi PDU, shema kodiranja podataka, brojevi SMS portova i druge slične vrijednosti koje se mogu koristiti za kodiranje.

C# SMS API klasa poruke izvorni kod

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

        //**********************************************
        // Opcijski tagovi
        //**********************************************

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

        //**********************************************
        // Konstrukcija
        //**********************************************

        public OzxMessage()
        {
            ID = Guid.NewGuid().ToString();
            CreateDate = DateTime.Now;
            TimeToSend = DateTime.MinValue;
            ValidUntil = DateTime.Now.AddDays(7);
            IsSubmitReportRequested = true;
            IsDeliveryReportRequested = true;
            IsViewReportRequested = true;
        }


        //**********************************************
        // Pretvaranje u 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