Descarga la documentación y código fuente de ejemplo de nuestra API SMS y crea una cuenta de prueba gratis. Recibirás las credenciales para utilizar el código de ejemplo en .NET.
Para integrar el envío de SMS con .NET, resulta conveniente leer la documentación técnica de envío de SMS, nuestra API SMS. El protocolo de comunicaciones más sencillo para implementar el envío de SMS desde el lenguaje .NET es el protocolo HTTP.
Envia SMS a tus clientes con alertas de servicio, enviar ofertas por SMS o comunicaciones desde tu software de gestión con información relevante.Si tienes problemas en integración, consulta nuestra página de preguntas frecuentes de integración de envío de SMS.
Ejemplos en Visual C#
Ejemplo para .NET en Visual C# utilizando HttpWebRequest 4.0
// Copyright (c) 2021, Altiria TIC SL // All rights reserved. // El uso de este código de ejemplo es solamente para mostrar el uso de la pasarela de envío de SMS de Altiria // Para un uso personalizado del código, es necesario consultar la API de especificaciones técnicas, donde también podrás encontrar // más ejemplos de programación en otros lenguajes de programación y otros protocolos (http, REST, web services) // https://www.altiria.com/api-envio-sms/
using System; using System.Text; using System.Net; using System.IO;
//Se fija la URL sobre la que enviar la petición POST HttpWebRequest loHttp = (HttpWebRequest)WebRequest.Create("http://www.altiria.net/api/http");
// Compone el mensaje a enviar // YY y ZZ se corresponden con los valores de identificación del usuario en el sistema. string lcPostData = "cmd=sendsms&login=YY&passwd=ZZ&dest=346xxxxxxxx&dest=346yyyyyyyy" + "&msg=Mensaje de prueba"; //No es posible utilizar el remitente en América pero sí en España y Europa //Descomentar la línea solo si se cuenta con un remitente autorizado por Altiria //cmd=cmd + "&senderId=remitente";
// Se codifica en utf-8 byte[] lbPostBuffer = System.Text.Encoding.GetEncoding("utf-8").GetBytes(lcPostData); loHttp.Method = "POST"; loHttp.ContentType = "application/x-www-form-urlencoded"; loHttp.ContentLength = lbPostBuffer.Length;
//Fijamos tiempo de espera de respuesta = 60 seg loHttp.Timeout = 60000; String error = ""; String response = ""; // Envía la peticion try { Stream loPostData = loHttp.GetRequestStream(); loPostData.Write(lbPostBuffer, 0, lbPostBuffer.Length); loPostData.Close(); // Prepara el objeto para obtener la respuesta HttpWebResponse loWebResponse = (HttpWebResponse)loHttp.GetResponse(); // La respuesta vendría codificada en utf-8 Encoding enc = System.Text.Encoding.GetEncoding("utf-8"); StreamReader loResponseStream = new StreamReader(loWebResponse.GetResponseStream(), enc); // Conseguimos la respuesta en una cadena de texto response = loResponseStream.ReadToEnd(); loWebResponse.Close(); loResponseStream.Close(); } catch (WebException e) { if (e.Status == WebExceptionStatus.ConnectFailure) error = "Error en la conexión"; else if (e.Status == WebExceptionStatus.Timeout) error = "Error TimeOut"; else error = e.Message; } finally { if (error != "") Console.WriteLine(error); else Console.WriteLine(response); } } } }
Ejemplo para .NET en Visual C# utilizando HttpClient 4.5
// Copyright (c) 2021, Altiria TIC SL // All rights reserved. // El uso de este código de ejemplo es solamente para mostrar el uso de la pasarela de envío de SMS de Altiria // Para un uso personalizado del código, es necesario consultar la API de especificaciones técnicas, donde también podrás encontrar // más ejemplos de programación en otros lenguajes de programación y otros protocolos (http, REST, web services) // https://www.altiria.com/api-envio-sms/
using System; using System.Collections.Generic; using System.Net; using System.Net.Http; using System.Net.Http.Headers;
namespace ConsoleCOld { class HttpCSHCAltiria { static void Main(string[] args) { Envio(); } static async void Envio() { HttpClient client = new HttpClient(); client.BaseAddress = new Uri("http://www.altiria.net"); //Establecemos el TimeOut para obtener la respuesta del servidor client.Timeout = TimeSpan.FromSeconds(60);
//Se compone el mensaje a enviar // YY y ZZ se corresponden con los valores de identificación del usuario en el sistema. var postData = new List<KeyValuePair<string, string>>(); postData.Add(new KeyValuePair<string, string>("cmd", "sendsms")); postData.Add(new KeyValuePair<string, string>("login", "YY")); postData.Add(new KeyValuePair<string, string>("passwd", "ZZ")); postData.Add(new KeyValuePair<string, string>("dest", "346xxxxxxxx")); postData.Add(new KeyValuePair<string, string>("dest", "346yyyyyyyy")); postData.Add(new KeyValuePair<string, string>("msg", "Mensaje de prueba")); //No es posible utilizar el remitente en América pero sí en España y Europa //Descomentar la línea solo si se cuenta con un remitente autorizado por Altiria //postData.Add(new KeyValuePair<string, string>("senderId", "remitente"));
HttpContent content = new FormUrlEncodedContent(postData); String err = ""; String resp=""; try { //Se fija la URL sobre la que enviar la petición POST HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "/api/http"); request.Content = content; content.Headers.ContentType.CharSet = "UTF-8"; request.Content.Headers.ContentType = new MediaTypeHeaderValue("application/x-www-form-urlencoded"); HttpResponseMessage response = client.SendAsync(request).Result; var responseString = response.Content.ReadAsStringAsync(); resp = responseString.Result; } catch (Exception e) { err = e.Message; } finally { if (err != "") Console.WriteLine(err); else Console.WriteLine(resp); } } } }
Ejemplos en Visual Basic
Ejemplo para .NET en Visual Basic utilizando HttpWebRequest 4.0
Imports System.Net
' Copyright (c) 2021, Altiria TIC SL ' All rights reserved. ' El uso de este código de ejemplo es solamente para mostrar el uso de la pasarela de envío de SMS de Altiria ' Para un uso personalizado del código, es necesario consultar la API de especificaciones técnicas, donde también podrás encontrar ' más ejemplos de programación en otros lenguajes de programación y otros protocolos (http, REST, web services) ' https://www.altiria.com/api-envio-sms/
Module HttpVBWRAltiria
Sub Main() 'Se fija la URL sobre la que enviar la petición POST Dim loHttp As HttpWebRequest loHttp = CType(WebRequest.Create("http://www.altiria.net/api/http"), HttpWebRequest)
'Compone el mensaje a enviar 'XX, YY y ZZ se corresponden con los valores de identificación del usuario en el sistema. Dim lcPostData As String = "cmd=sendsms&login=YY&passwd=ZZ&dest=346xxxxxxxx&dest=346yyyyyyyy" + "&msg=Texto de prueba" ' No es posible utilizar el remitente en América pero sí en España y Europa ' Descomentar la línea solo si se cuenta con un remitente autorizado por Altiria ' lcPostData += "&senderId=remitente"
'Lo codifica en utf-8 Dim lbPostBuffer As Byte() = System.Text.Encoding.GetEncoding("utf-8").GetBytes(lcPostData)
'Fijamos TimeOut de espera de respuesta del servidor = 60 seg loHttp.Timeout = 60000 Dim err As String = "" Dim response As String = ""
'Envía la peticion Try Dim loPostData As System.IO.Stream = loHttp.GetRequestStream() loPostData.Write(lbPostBuffer, 0, lbPostBuffer.Length) loPostData.Close()
'Prepara el objeto para obtener la respuesta Dim loWebResponse As HttpWebResponse = CType(loHttp.GetResponse(), HttpWebResponse) 'La respuesta vendría codificada en utf-8 Dim enc As System.Text.Encoding = System.Text.Encoding.GetEncoding("utf-8") Dim loResponseStream As System.IO.StreamReader = New System.IO.StreamReader(loWebResponse.GetResponseStream(), enc) 'Conseguimos la respuesta en una cadena de texto response = loResponseStream.ReadToEnd() loWebResponse.Close() loResponseStream.Close()
Catch e As WebException If (e.Status = WebExceptionStatus.ConnectFailure) Then err = "Error en la conexión" ElseIf (e.Status = WebExceptionStatus.Timeout) Then err = "Error Time Out" Else err = e.Message End If
Finally If (err <> "") Then Console.WriteLine(err) Else Console.WriteLine(response) End If End Try End Sub End Module
Ejemplo para .NET en Visual Basic utilizando HttpClient 4.5
Imports System.Net Imports System.Net.Http
' Copyright (c) 2021, Altiria TIC SL ' All rights reserved. ' El uso de este código de ejemplo es solamente para mostrar el uso de la pasarela de envío de SMS de Altiria ' Para un uso personalizado del código, es necesario consultar la API de especificaciones técnicas, donde también podrás encontrar ' más ejemplos de programación en otros lenguajes de programación y otros protocolos (http, REST, web services) ' https://www.altiria.com/api-envio-sms/
Module HttpVBHCAltiria
Sub Main() Dim client As HttpClient = New HttpClient client.BaseAddress = New Uri("Http://www.altiria.net") 'Fijamos TimeOut de espera de respuesta del servidor = 60 seg client.Timeout = TimeSpan.FromSeconds(60)
'Se compone el mensaje a enviar 'YY y ZZ se corresponden con los valores de identificación del usuario en el sistema. Dim postData As List(Of KeyValuePair(Of String, String)) postData = New List(Of KeyValuePair(Of String, String)) postData.Add(New KeyValuePair(Of String, String)("cmd", "sendsms")) postData.Add(New KeyValuePair(Of String, String)("login", "YY")) postData.Add(New KeyValuePair(Of String, String)("passwd", "ZZ")) postData.Add(New KeyValuePair(Of String, String)("dest", "346xxxxxxxx")) postData.Add(New KeyValuePair(Of String, String)("dest", "346yyyyyyyy")) postData.Add(New KeyValuePair(Of String, String)("msg", "Mensaje de prueba")) ' No es posible utilizar el remitente en América pero sí en España y Europa ' Descomentar la línea solo si se cuenta con un remitente autorizado por Altiria ' postData.Add(New KeyValuePair(Of String, String)("senderId", "remitente"))
Dim content As HttpContent = New FormUrlEncodedContent(postData) Dim err = "" Dim resp = "" Try 'Se fija la URL sobre la que enviar la petición POST Dim request As HttpRequestMessage request = New HttpRequestMessage(HttpMethod.Post, "/api/http") request.Content = content content.Headers.ContentType.CharSet = "UTF-8" Dim contentType = "application/x-www-form-urlencoded" request.Content.Headers.ContentType = New Headers.MediaTypeHeaderValue(contentType) Dim response As HttpResponseMessage = client.SendAsync(request).Result
Dim responseString = response.Content.ReadAsStringAsync resp = responseString.Result
Catch e1 As Exception err = e1.Message Finally If (err <> "") Then Console.WriteLine(err) Else Console.WriteLine(resp) End If End Try End Sub
Lista de tareas detallada, checklist, para asegurarte que no se olvida nada importante en la integración de API SMS. Independiente del lenguaje de programación elegido.
Protocolos de comunicación soportados
La API SMS se puede utilizar con los siguientes protocolos de comunicación: