Enviar SMS con SOAP y Java
El envío de SMS con SOAP y Java puede efectuarse con la API web services SOAP SMS 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 con 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 otras pasarelas SMS 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 masivo en Java utilizando SOAP, la especificación técnica SMS te puede ayudar a resolverlo o consulta nuestra página de preguntas frecuentes de integración de envío de SMS.
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 SoapJavaAltiria {
public static void main(String[] args) {
try {
//Se suministra la URL del fichero WSDL en SOAP 1.2
URL wsdlURL = new URL("http://www.altiria.net/api/ws/soap12?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();
//YY y ZZ se corresponden con los valores de identificación del usuario en el sistema
net.altiria.api.soap.Credentials credentials = new net.altiria.api.soap.Credentials();
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");
//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
//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
Descubre las funcionalidades avanzadas de Altiria para el envío de SMS