Enviar SMS javaEnviar SMS con SOAP y Java

SMS masivo desde 2002

El envío de SMS con SOAP y Java puede efectuarse con la pasarela web services desarrollada por Altiria. Utilizando el código de ejemplo que aparece más adelante puedes emplear el protocolo de comunicaciones SOAP con Java y el gateway SMS de Altiria para conseguir enviar un SMS a través de SOAP y Java.

El comportamiento de la pasarela se detalla en la documentación técnica de envío de SMS (API SMS). Además de utilizar SOAP para mandar SMS, también puedes utilizar la pasarela HTTP y así enviar notificaciones a tus clientes, avisos, publicidad o cualquier otro contenido relevante.

El siguiente código actualizado te mostrará cómo utilizar el servicio, tan sólo debes sustituir los valores de los parámetros que proporciona Altiria al solicitar la cuenta de prueba. Si encuentras algún problema para integrar el envío de SMS en Java utilizando SOAP, la especificación técnica SMS te puede ayudar a resolverlo.

Código de ejemplo de SOAP – Java para envío de SMS:

package net.altiria.api.soap;

import java.net.URL;
import java.util.List;
import javax.xml.ws.BindingProvider;
import javax.xml.ws.WebServiceException;

public class SoapJava {

public static void main(String[] args) {
try {
  //Se suministra la URL del fichero 
  //WSDL www.altiria.net/sustituirWSDLUrl?wsdl
  //Se debe reemplazar la cadena /sustituirWSDLUrl 
  //por la parte correspondiente de la URL suministrada 
  //por Altiria para el fichero WSDL en SOAP 1.2 al 
  //dar de alta el servicio o solicitar cuenta de prueba
  URL wsdlURL = new URL("http://www.altiria.net/sustituirWSDLUrl?wsdl");

  net.altiria.api.soap.SmsGatewayService service =
    new net.altiria.api.soap.SmsGatewayService(wsdlURL);
  net.altiria.api.soap.SmsGatewayPort soapApi = service.getSmsGatewayApi();
			    
  BindingProvider bp = (BindingProvider)soapApi;
  //Tiempo maximo de respuesta. 
  bp.getRequestContext().put("com.sun.xml.internal.ws.request.timeout", 60000);

  //Se preparan los datos del servicio web
  net.altiria.api.soap.TextMessageRequest textMessageRequest = 
    new net.altiria.api.soap.TextMessageRequest();

  //XX, YY y ZZ se corresponden con los valores 
  //de identificación del usuario en el sistema	    	    
  //proporcionados por Altiria al dar de alta el servicio
  //o solicitar una cuenta de prueba
  net.altiria.api.soap.Credentials credentials = new net.altiria.api.soap.Credentials();
  credentials.setDomainId("XX");
  credentials.setLogin("YY");
  credentials.setPasswd("ZZ");

  textMessageRequest.setCredentials(credentials);
			    
  net.altiria.api.soap.TextMessage message = new net.altiria.api.soap.TextMessage();
  message.setMsg("Mensaje de prueba");

  //Se incluye el remitente autorizado por Altiria al dar de alta el servicio.
  //Omitir el parametro senderId si no se cuenta con ninguno.
  message.setSenderId("remitente");

  textMessageRequest.setMessage(message);
			    
  textMessageRequest.getDestination().add("346xxxxxxxx");
  textMessageRequest.getDestination().add("346yyyyyyyy");
			    
  net.altiria.api.soap.TextMessageResponse textMessageResponse = null;
			    
  try {
    textMessageResponse = soapApi.sendSms(textMessageRequest);	

    String status = textMessageResponse.getStatus();
		    
    if(!status.equals("000")) 
      System.out.println("ERROR. Codigo de Altiria: " + status);
    else {
      List destinations = 
        textMessageResponse.getDetails();
				
      for(int i=0;i<destinations.size();i++) {
        System.out.println("sendSms.destination("+i+").status=" 
           + destinations.get(i).getStatus());
				    
        System.out.println("sendSms.destination("+i+").msisdn=" 
           + destinations.get(i).getDestination());
				    
        if(destinations.get(i).getIdAck()!=null) 
          System.out.println("sendSms.destination("+i+").idAck=" 
            + destinations.get(i).getIdAck());
      }
    }
  } 
  catch (WebServiceException e){
    System.out.println("Excepcion:"+e.toString());
    return;
  }
} 
catch (Exception e) {
  System.out.println("Excepcion:"+e.toString());
}
}
}

Características adicionales del envío de SMS en SOAP con Java

  • Remitente personalizado: Personalización en el envío de SMS con Java usando SOAP 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 o las causas por las que no se ha entregado al destinatario.
  • Sistema avanzado de control de crédito con aviso automático por correo electrónico para evitar quedarse sin crédito 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 usando SOAP y Java.
  • Posiblidad de reenvío de SMS pendientes por falta de crédito. Si realizó un envío de SMS mediante SOAP con Java 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 varían según el país, consúltanos para cada país concreto.