SMS Java. Mandar SMS con Java

SMS masivo desde 2002

enviar sms con java

Enviar sms con java


Altiria ofrece a los integradores facilidades para enviar SMS con Java a través de un gateway o pasarela SMS API Java.

SMS Java API: Para mandar SMS con Java, es necesario en primer lugar leer la documentación técnica de envío de SMS, API SMS. El protocolo de comunicaciones más sencillo para implementar el envío de SMS con tu página Java es el protocolo HTTP.

Consulta nuestras tarifas de envío de SMS y pídenos más información. Te enviaremos una cuenta de prueba gratuita para que evalúes la calidad del servicio Java SMS api.

El siguiente código actualizado es un ejemplo ilustrativo de cómo enviar SMS con Java utilizando HttpClient 4.5. Si quieres conocer todos los detalles, consulta la especificación técnica.

package mypackage;

import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;

public class HttpJava {
public static void main(String[] args) {
 
//Se fija el tiempo máximo de espera para conectar con el servidor (5000)
//Se fija el tiempo máximo de espera de la respuesta del servidor (60000)
RequestConfig config = RequestConfig.custom()
 .setConnectTimeout(5000)
 .setSocketTimeout(60000)
 .build();
 
//Se inicia el objeto HTTP
HttpClientBuilder builder = HttpClientBuilder.create();
builder.setDefaultRequestConfig(config);
CloseableHttpClient httpClient = builder.build();
 
//Se fija la URL sobre la que enviar la petición POST
//Como ejemplo la petición se envía a www.altiria.net/sustituirPOSTsms
//Se debe reemplazar la cadena '/sustituirPOSTsms' por la parte correspondiente
//de la URL suministrada por Altiria al dar de alta el servicio o pedir cuenta
// de prueba
HttpPost post = new HttpPost("http://www.altiria.net/sustituirPOSTsms");
 
//Se crea la lista de parámetros a enviar en la petición POST
List<NameValuePair> parametersList = new ArrayList <NameValuePair>();
//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 pedir cuenta de prueba
parametersList.add(new BasicNameValuePair("cmd", "sendsms"));
parametersList.add(new BasicNameValuePair("domainId", "XX"));
parametersList.add(new BasicNameValuePair("login", "YY"));
parametersList.add(new BasicNameValuePair("passwd", "ZZ"));
parametersList.add(new BasicNameValuePair("dest", "346xxxxxxxx"));
parametersList.add(new BasicNameValuePair("dest", "346yyyyyyyy"));
parametersList.add(new BasicNameValuePair("msg", "Mesaje de prueba"));
//Remitente autorizado por Altiria al dar de alta el servicio. No disponible
//en todos los países. Omitir el parametro si no se cuenta con ninguno.
parametersList.add(new BasicNameValuePair("senderId", "remitente"));
 
try {
 //Se fija la codificacion de caracteres de la peticion POST
 post.setEntity(new UrlEncodedFormEntity(parametersList,"UTF-8"));
}
catch(UnsupportedEncodingException uex) {
 System.out.println("ERROR: codificación de caracteres no soportada");
}
 
CloseableHttpResponse response = null;
 
try {
 System.out.println("Enviando petición");
 //Se envía la petición
 response = httpClient.execute(post);
 //Se consigue la respuesta
 String resp = EntityUtils.toString(response.getEntity());
 
 //Error en la respuesta del servidor
 if (response.getStatusLine().getStatusCode()!=200){
 System.out.println("ERROR: Código de error HTTP: " + response.getStatusLine().getStatusCode());
 System.out.println("Compruebe que ha configurado correctamente la direccion/url ");
 System.out.println("suministrada por Altiria");
 return;
 }else {
 //Se procesa la respuesta capturada en la cadena 'response'
 if (resp.startsWith("ERROR")){
 System.out.println(resp);
 System.out.println("Código de error de Altiria. Compruebe las especificaciones");
 } else
 System.out.println(resp);
 }
 }
 catch (Exception e) {
 System.out.println("Excepción");
 e.printStackTrace();
 return;
 }
 finally {
 //En cualquier caso se cierra la conexión
 post.releaseConnection();
 if(response!=null) {
 try {
 response.close();
 }
 catch(IOException ioe) {
 System.out.println("ERROR cerrando recursos");
 }
 }
 }
}
}

Para realizar el envío de SMS con Java utilizando el protocolo HTTP, en primer lugar es necesario seleccionar un cliente HTTP que facilite la utilización de este protocolo. Es muy importante configurar adecuadamente los timeouts y el charset de la petición HTTP para asegurar la calidad del código Java implementado. También es imprescindible realizar un procesado de la respuesta, para conocer si el envío de SMS se ha realizado correctamente o no.

Java es un lenguaje de programación muy utilizado en software de empresas. Integra el envío de SMS en tu software Java para añadir la posibilidad de enviar un SMS a los usuarios registrados en una base de datos, por ejemplo, de forma que se integre de manera natural con las funcionalidades propias de tu software: enviar códigos de activación, notificaciones o alertas a tus clientes, informaciones de servicio.

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

  • Remitente personalizado: Personalización en el envío de SMS con Java 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 Java.
  • Posiblidad de reenvío de SMS pendientes por falta de crédito. Si realizó un envío de SMS mediante 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 depende de cada país, consúltenos para su país de interés.