SMS Delphi. Enviar SMS Delphi
El envío de SMS en Delphi es sencillo de integrar mediante la SMS API de Altiria.
Ofrecemos dos ejemplos:
¿Cómo integrar el envío de SMS en Delphi?
Para integrar el envío de SMS con Delphi en tu propio software, lo más conveniente es 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 es HTTP.
Los siguientes códigos son ejemplos funcionales que han sido probados con éxito pero pueden resultar incompleto para integrar el envío de SMS masivo con Delphi. Para solucionar cualquier incidencia, se debe consultar la especificación técnica. Si tienes problemas en integración, consulta nuestra página de preguntas frecuentes de integración de envío de SMS.
Código de ejemplo utilizando IdHTTP
program HttpDelphiAltiria1;
// 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/
{$APPTYPE CONSOLE}
{$R *.res}
uses
System.SysUtils, Classes, IdHTTP,System.WideStrUtils;
var
DResultado,SUrl : String;
Parametros : TStringList;
IdHTTP1: TIdHTTP;
begin
try
//Se fija la URL sobre la que enviar la petición POST
SUrl:='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
Parametros := TStringList.Create();
Parametros.Add('cmd=sendsms');
Parametros.Add('login=YY');
Parametros.Add('passwd=ZZ');
Parametros.Add('dest=346xxxxxxxx');
Parametros.Add('dest=346yyyyyyyy');
Parametros.Add(UTF8Encode('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
//Parametros.Add('senderId=remitente');
IdHTTP1:= TIdHTTP.Create(nil);
//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)
IdHTTP1.ConnectTimeout := 5000;
IdHTTP1.ReadTimeout:=60000;
IdHTTP1.Request.ContentType :='application/x-www-form-urlencoded';
IdHTTP1.Request.Charset := 'UTF-8';
IdHTTP1.Request.ContentEncoding := 'UTF-8';
// Enviamos un mensaje, recibiendo en "DResultado" la respuesta del servidor
DResultado:=IdHTTP1.Post(SUrl,Parametros);
WriteLn(DResultado);
except
on E: Exception do
if E.ClassName='EIdConnectTimeout' then
WriteLn ('ERROR Connect Timeout')
else if E.ClassName='EIdReadTimeout' then
WriteLn ('ERROR Response Timeout')
else
Writeln(E.ClassName, ': ', E.Message);
end;
Parametros.Free;
IdHTTP1.Free;
end.
Código de ejemplo utilizando TnetHTTPClient
program HttpDelphiAltiria2;
// 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/
{$APPTYPE CONSOLE}
{$R *.res}
uses
System.SysUtils, Classes, System.Net.HTTPClient, System.Net.HTTPClientComponent;
var
SUrl : String;
client : TNetHTTPClient;
response : IHTTPResponse;
Parametros : TStringList;
begin
try
client := TNetHTTPClient.Create(nil);
client.ContentType :='application/x-www-form-urlencoded';
//Se fija la URL sobre la que enviar la petición POST
SUrl:='http://www.altiria.net/api/http';
//YY y ZZ se corresponden con los valores de identificación del usuario en el sistema
Parametros := TStringList.Create();
Parametros.Add('cmd=sendsms');
Parametros.Add('login=YY');
Parametros.Add('passwd=ZZ');
Parametros.Add('dest=346xxxxxxxx');
Parametros.Add('dest=346yyyyyyyy');
Parametros.Add(UTF8Encode('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
//Parametros.Add('senderId=remitente');
Response:=client.Post(SUrl,Parametros);
if Response.StatusCode = 200 then
WriteLn(Response.ContentAsString())
else
begin
WriteLn('Código de error: ' + IntToStr(Response.StatusCode));
WriteLn(Response.StatusText);
end;
except
on E: ENetHTTPClientException do
WriteLn ('ERROR Conexión. ' + E.Message);
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end;
Parametros.Free;
Client.Free;
end.
Paga solo por lo que necesitas
Sin cuotas de alta
Sin cuotas de mantenimiento
Protocolos de comunicación soportados
La API SMS se puede utilizar con los siguientes protocolos de comunicación:
Descarga
Guía para la integración de SMS API
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.
Países a los que damos servicio
España
México
Colombia
Perú
Chile
Ecuador
Argentina
Características
Descubre las funcionalidades avanzadas de Altiria para el envío de SMS
Confirmación de entrega
Remitente personalizado
Estadísticas
Programación de envíos
SMS largos, más de 160 caracteres
Editor de landing
Unicode. Acentos y otros alfabetos
Elimina teléfonos duplicados
Textos personalizados
Plantillas de mensajes
Recordatorio de citas