Enviar SMS con SOAP y .NET

SMS masivo desde 2002
enviar sms soap .NET

Enviar sms SOAP .NET

Puedes realizar envío de SMS con .NET y SOAP empleando la pasarela sms web services de Altiria. Más adelante encontrarás dos ejemplos de código (Visual Basic y Visual C#) listos para ser utilizados. Ambos conjugan el protocolo de comunicación SOAP y el gateway SMS de Altiria para facilitarte el envío de SMS utilizando dos lenguajes de programación habituales: Visual Basic y Visual C#.

Para conocer las funciones completas de la pasarela resulta recomendable consultar la documentación técnica de envío de SMS, API SMS. Además de utilizar SOAP para enviar los SMS aunque también puedes emplear la pasarela HTTP, de la que encontrarás ejemplos de uso en .NET en enviar SMS .NET, para los lenguajes Visual C# y Visual Basic (tanto HttpWebRequest 4.0 como HttpClient 4.5).

Comprueba las tarifas de envío de SMS y si te parecen interesantes pídenos más información. Te haremos llegar los parámetros necesarios para que puedas probar el servicio gratuitamente integrándolo dentro de tu propio código en .NET con SOAP.

El ejemplo que se muestra a continuación ha sido probado y puedes integrarlo en tu código directamente tras modificar los valores de los parámetros que Altiria te enviará cuando solicites la información. Si encuentras algún problema para conseguir el envío de SMS con .NET utilizando SOAP, es probable que puedas solventarlo al revisar la especificación técnica.


Código de ejemplo de para el envío de SMS con SOAP usando Visual Basic .NET:

Imports System.Net
Imports SoapVB.SoapVB

Module SoapVB

 Sub Main()
   Dim dest(1) As String
   Dim sms As SmsGatewayService = New SmsGatewayService()

   Dim request As TextMessageRequest = New TextMessageRequest()
   Dim cr As Credentials = New Credentials()
   Dim tm As TextMessage = New TextMessage()
   Dim response As TextMessageResponse = New TextMessageResponse()

   ' Tiempo maximo de respuesta en milisegundos
   sms.Timeout = 60000 'milisec

   ' XX, YY y ZZ se corresponden con los valores de identificación 
   ' del usuario en el sistema	    	    
   ' que serán proporcionados por Altiria al contratar el servicio
   ' o solicitar una cuenta de prueba
   cr.domainId = "XX"
   cr.login = "YY"
   cr.passwd = "ZZ"

   tm.encoding = "UTF-8"
   tm.msg = "Mensaje de prueba"
   
   ' Se incluye el remitente autorizado por Altiria al dar de alta el servicio.
   ' No disponible en todos los países
   ' Omitir el parametro senderId si no se cuenta con ninguno. 
   tm.senderId = "remitente"

   dest(0) = "346xxxxxxxx"
   dest(1) = "346yyyyyyyy"

   request.credentials = cr
   request.destination = dest
   request.message = tm

   Try
     response = sms.sendSms(request)

     If (response.status <> "000") Then
       Console.WriteLine("Código de error de Altiria: " + response.status)
     Else
       Console.WriteLine("Código de Altiria: " + response.status)
       For Each rd As TextDestination In response.details
         Console.WriteLine("  " + rd.destination + ": Código de respuesta " + rd.status)
       Next rd

     End If
   Catch e As WebException
     If (e.Status = WebExceptionStatus.Timeout) Then
       Console.WriteLine("Error TimeOut")
     Else
       Console.WriteLine("ERROR " + e.Message)
     End If
   Catch e As Exception
       Console.WriteLine("ERROR " + e.Message)
   End Try

 End Sub

End Module


Código de ejemplo de SOAP en Visual C# .NET para el envío de SMS:

using System;
using System.Net;

namespace SoapC {
class SoapCS {
static void Main(string[] args) {
string[] dest = new string[2];
SmsGatewayService sms = new SmsGatewayService();
TextMessageRequest request = new TextMessageRequest();
Credentials cr = new Credentials();
TextMessage tm = new TextMessage();
TextMessageResponse response = new TextMessageResponse();

// Tiempo maximo de respuesta en milisegundos
sms.Timeout = 60000; //milisec

// XX, YY y ZZ se corresponden con los valores de 
// identificación del usuario en el sistema	    	    
// serán suministrados por Altiria al contratar el servicio
// o solicitar una cuenta de prueba
cr.domainId = "XX";
cr.login = "YY";
cr.passwd = "ZZ";

tm.encoding = "UTF-8";
tm.msg = "Mensaje de prueba";
// Se incluye el remitente autorizado por Altiria 
// al dar de alta el servicio.
// No disponible en todos los países
// Omitir el parametro senderId si no se cuenta con ninguno. 
tm.senderId = "remitente";

dest[0] = "346xxxxxxxx";
dest[1] = "346yyyyyyyy";

request.credentials = cr;
request.destination = dest;
request.message = tm;

try {
 response = sms.sendSms(request);

 if (response.status != "000")
   Console.WriteLine("Código de error de Altiria: " + response.status);
 else {
   Console.WriteLine("Código de Altiria: " + response.status);
   foreach (TextDestination rd in response.details)
     Console.WriteLine("  " + rd.destination + ": Código de respuesta " + rd.status);
 }
}
catch (WebException e) {
  if (e.Status == WebExceptionStatus.Timeout)
    Console.WriteLine("Error TimeOut");
  else
    Console.WriteLine("ERROR " + e.Message);   
}
catch (Exception e) {
  Console.WriteLine("ERROR: " + e.Message);
}            
}
}
}

Características adicionales del envío de SMS en .NET con SOAP utilizando Visual Basic o Visual C#

  • Remitente personalizado: Personalización en el envío de SMS con SOAP y .NET del remitente de origen por una cadena de texto, por ejemplo, el nombre de su empresa.(*)
  • Confirmación de entrega: Conozca la fecha y hora en la que se ha recibido el SMS enviado o las causas por las que no se ha recibido.
  • Sistema avanzado de control de crédito con aviso automático por email que impide quedarse sin crédito de envío de forma inesperada.(*)
  • Informes automáticos de envío de SMS y confirmación de entrega, permiten mantener un control periódico de los envíos de SMS en .NET a través de SOAP.
  • Posiblidad de reenvío de SMS pendientes por falta de crédito. Si realizó un envío de SMS mediante SOAP en .NET y no tenía crédito, los mensajes se quedan encolados en nuestros sistemas hasta que disponga de crédito, de forma que no necesita repetir el envío.

(*) La disponibilidad de la confirmación de entrega al usuario y del remitente personalizado depende de cada país, consúltenos para su país de interés.