Enviar SMS, recibir SMS y contestar SMS

API HTTP Enviar SMS

API Enviar SMS y Envío masivo de SMS

1. Enviar SMS y SMS Masivo

El Interfaz HTTP te permite enviar mensajes prácticamente desde cualquier plataforma.

Solo tienes que integrar la llamada a una URL en el lenguaje de programación que estés utilizando.

Podrás enviar mensajes desde una página Web con un simple formulario, una aplicación gráfica en Windows, un script en linea de comandos en Linux, etc...

La llamada a la URL se hace pasando como parámetros las credenciales de autenticación, el mensaje y los destinatarios.

2. Documentación

URL:

Encriptada:

https://www.descomsms.com/dmapi/dmsend.php

sin encriptar:

http://www.descomsms.com/dmapi/dmsend.php

 

Petición de envío
Para poder enviar mensajes, deberás acceder a la URL arriba indicada
proporcionando la siguiente información en formato POST:

https://www.descomsms.com/dmapi/dmsend.php?
usuario=xxx&clave=xxx&idc=xxx&dest=xxxxxx&texto=xxxxxx

Parámetros POST:

Los valores ingresados deberán cumplir los siguientes valores, para ser enviados como parte de la petición:

 

Nombre
Parámetro
Requerido Descripción Posibles Valores Tipo de
Dato
usuario Identificador de usuario Identificador de usuario en Descom SMS Alfanumérico
clave

Contraseña de acceso a la plataforma Contraseña del usuario en Descom SMS

Alfanumérico

idc

Identificador de cliente Identificador de cliente en Descom SMS Numérico

 

rem   Remitente personalizado* Una cadena alfanumérica de hasta 11 caracteres Alfanumérico
dest Números de teléfono destinatario del mensaje

Teléfono en formato:
acceso internacional + cod. país + teléfono Ejemplo: 0034666555444

Para enviar varios destinatarios, separa cada número por coma.

Ej: 0034666555444,0034666555441,0034666555442

Numérico
texto Texto del mensaje

Texto del mensaje a enviar, URL codificado.

Alfanumérico
max   Numero máximo de sms a dividir

0 -> para no tener límite de SMS. (por defecto)

Un número mayor que cero para indicar el máximo de SMS de un mensaje largo.

Numérico
aviso  

Envía un aviso de notificación por email para cada SMS enviado.

0 -> No envía notificación por email (por defecto)
1 -> Sí envía notificación por email.

Numérico
idenvio   Identificador opcional del envío Cadena de texto para identificar un grupo de mensajes (opcional) Alfanumérico

 

* Puedes personalizar el remitente de los SMS, con su número de móvil autorizado, en formato no internacional (ej: 609111222), o con una cadena de texto; en este caso, consulte antes con Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo. para configurar su remitente.

Obtener saldo y comprobación de autenticación:

LLamada:

https://www.descomsms.com/dmapi/dmsend.php?usuario=xxx&clave=xxx&idc=xxx

 

Respuesta:

OK: IDENVIO: 0 MOK: 0 MERR: 0 SALDO: 30905

o en caso de error de autenticación

ERR: Descripcion del error de autenticación

Enviar un mensaje simple

LLamada:

https://www.descomsms.com/dmapi/dmsend.php?usuario=xxx&clave=xxx&idc=xxx&dest=00346xxxxxxxx&texto=Hola

 

Respuesta:

Envío correcto

OK: IDENVIO: 123456 MOK: 1 MERR: 0 SMSOK: 1 SMSERR: 0 CRED: 1 SALDO: xx

1:OK ID: 123 DEST: 00346xxxxxxxx RES: Mensaje Enviado

 

o en caso de error de envío

OK: IDENVIO: 123456 MOK: 0 MERR: 1 SMSOK: 0 SMSERR: 1 CRED: 0 SALDO: xx

1:ERR ID: 0 DEST: 00346xxxxxxxx RES Mensaje No Enviado. Movil no valido

 

Enviar un mensaje múltiple

LLamada:

https://www.descomsms.com/dmapi/dmsend.php?usuario=xxx&clave=xxx&idc=xxx&dest=00346xxxxxxx1,00346xxxxxxx2,00346xxxxxxx3&texto=Hola

 

Respuesta:

Envío correcto

OK: IDENVIO: 123456 MOK: 3 MERR: 0 SMSOK: 3 SMSERR: 0 CRED: 3 SALDO: xx

1:OK ID: 123 DEST: 00346xxxxxxx1 RES: Mensaje Enviado

2:OK ID: 124 DEST: 00346xxxxxxx2 RES: Mensaje Enviado

3:OK ID: 125 DEST: 00346xxxxxxx3 RES: Mensaje Enviado

 

o en caso de error de envío

OK: IDENVIO: 123456 MOK: 1 MERR: 2 SMSOK: 1 SMSERR: 2 CRED: 1 SALDO: xx

1:ERR ID: 0 DEST: 00346xxxxxxxx RES:  Mensaje No Enviado. Movil no valido

2:OK ID: 124 DEST: 00346xxxxxxx2 RES: Mensaje Enviado

3:ERR ID: 125 DEST: 00346xxxxxxx3 RES: Mensaje No Enviado. Movil no valido

 

Donde:

La primera línea devuelve el estado y resumen del envío.

Nombre Descripción Valores Tipo de Datos
IDENVIO Identificador alfanumérico del envío. Este identificador te puede servir para obtener el reporte de envío asociado.  

Alfanumérico

MOK

Número de mensajes enviados correctamente
Un mensajes puede ser dividido en varios SMS si este supera los 160 caracteres 

 

Numérico

MERR Número de mensajes no enviados  

Numérico

SMSOK Número de SMS enviados correctamente   Numérico
SMSERR Número de SMS no enviados   Numérico
CRED Crédito gastado en en enviar todos los mensajes   Numérico
SALDO Saldo actual en créditos después de realizar el envío   Numérico

Por cada mensajes enviado se devuelve una línea indicando el estado del mensaje.

Nombre Descripción Valores Tipo de Datos
x: Número de mensaje en el envío 1,2,3... Numérico
[OK,ERR] Estado de envío del mensaje.

OK -> Envío correcto.
ERR->Envío fallido

Texto
ID Identificador único del mensaje en Descom SMS. Este identificador se puede usar para obtener el report en entrega.   Numérico
DEST Número de móvil al que se ha enviado el mensaje   Numérico
RES Texto descriptivo del envío correcto o incorrecto   Alfanumérico

3. Ejemplos

Descarga nuestros ejemplos: ejemplo API SMS HTTP online

4. Gráfico

Enviar-SMS-InterfazHTTP

API PHP Enviar SMS

SDK-PHP

1. Descripción

El Interfaz HTTP te permite enviar mensajes a teléfonos móviles, desde tu página web, utilizando desde un simple formulario hasta un sitio web avanzado con múltiples usuarios accediendo.

Tu página web tendrá que enviar la información necesaria para el envío de mensajes SMS al FrontEnd de la plataforma Descom SMS, a través de un servidor seguro, y esta se encargará de enviar el mensaje SMS.

2. Documentación

La clase dms_class.php

La clase class_dms.php, te permite integrar en tu página Web el envío de mensajes SMS a teléfonos móviles. La clase tiene las propiedades y funciones necesarias para poder llevar a cabo esta labor.

¿Como llamar a la Clase?

Incluiremos en nuestro código una llamada a la clase:

include ("PATH/class_dms.php");

Siendo PATH, el directorio donde se encuentre la clase class_dms.php

Para crear una instancia de la clase, lo haremos de la siguiente forma:

$dms=new dms_send;

En este caso el objeto dms, tendrás todas la propiedades necesarias para realizar el envío.

Propiedades de Autentificacion

La clase dms_send, contiene una subclase, denominada autentificacion donde configuramos las credenciales de nuestra cuenta en Descom SMS, estos son los parámetros de autentificación de la clase:

  • idcli; Codigo de cliente de la cuenta en Descom SMS.
  • username; Nombre de usuario de la cuenta Descom SMS.
  • passwd; Contraseña de acceso de la cuenta de Descom SMS.
  • EmailNot; nos permite recibir por correo los reportes de entrega de los mensajes, vacio para no recibirlos, 1 para recibirlos.

Ejemplo:

include ("../class_dms.php");
$dms=new dms_send;
 
//Autentificar
$dms->autentificacion->idcli="codigo cliente";
$dms->autentificacion->username="nombre de usuario";
$dms->autentificacion->passwd="password";

Propiedades generales de envío

Puede ajustar estas propiedades opcionales en el envío de los mensajes:

  • Remitente; asignar el remitente por defecto en los mensaje.
  • MaxSMS; Número máximo de SMS que se enviará por cada uno de los mensajes (0, para no limitarlo)
  • idenvio; Para asignar un código de envío de mensajes, de esta forma los mensajes por lotes podrás catalogarse como un único envío.
  • mailError; En caso de que el script de php falle al enviar el SMS, ej: fallo de conexión al servidor, respuesta incorrecta, .. Podemos recibir en la cuenta de correo que definamos en esta propiedad, un correo informándonos del problema.

 

Funciones de envío

Dispone de funciones en el que podemos asignar como nos queremos conectar a la plataforma de envío de sms:

SupportSSL($bool);

Siendo $bool de tipo boolean; true para enviar los mensajes bajo SSL y de forma segura, o false, para enviar en texto plano el mensaje.

Por defecto se envía de forma segura bajo SSL, no recomendamos desactivar esta opción, salvo que su servidor no admita conexiones SSL.

 

Agregar mensajes en el envío

La clase dispone de una subclase donde podemos agregar mensajes para su envío, esta clase es 'mensajes' y donde disponemos de la función add para agregar un nuevo mensaje:

mensajes->add($id,$numero,$texto,$remitente);

Nombre
Argumento
Descripción Posibles Valores Tipo de
Dato
id Identificativo del mensaje en el envío

1, 2, 3, ...

Int
numero Número de móvil del destinatario del SMS String
texto Texto del mensaje
    String
    remitente remitente para este mensaje. Si todos los mensajes deben tener el mismo remitente, se aconseja definirlo como remitente generico String

    Ejemplo:

    $dms->mensajes->add("1","61111111","prueba sms");
    $dms->mensajes->add("2","61111112","prueba sms","Info");
    

     

    Realizar el envío de mensajes

    Una vez configurado el envío a realizar, con la función send, enviamos la orden para que estos se realicen:

    $dms->send();
    

     

    Respuesta del envío

    Una vez realizado el envío del SMS, podemos comprobar la respuesta y verificar si el envío se realizo correctamente. Es importante verificar por este orden:

     

    • Verificar la conexión con la plataforma
    • Verificar el envío de cada mensaje

    Respuesta de la conexión al servidor

    Leeremos los parámetros de la clase autentificacion para comprobar que se ha realizado correctamente, para ello dicha clase dispone de las siguientes propiedades:

     

    Nombre
    Propiedades
    Descripción Posibles Valores Tipo de
    Dato
    error Nos informa si se ha producido error o no al comunicarnos con la plataforma
    • true; si hay error
    • false; si se conecto sin problemas
    Bool
    mensajeerror Descripción del error que se ha producido al conectar con Descom SMS String
    saldo Saldo disponible en la cuenta 0, 1, 2, ... Double

     

    Respuesta del envío de mensajes

    Leeremos los parámetros de la clase mensajes para comprobar que se ha realizado correctamente, para ello dicha clase dispone de las siguientes propiedades:

     

    Nombre
    Propiedades
    Descripción Posibles Valores Tipo de
    Dato
    idenviodm Identificativo del envío de mensajes en Descom; nos servirá para obtener reportes de envío
      String
      total_mensajes Número de mensajes que se han tratado de envíar Int
      total_ok Número de mensajes enviados correctamente Int
      total_error Número de mensajes que no se han enviado Int
      total_creditos Número de créditos/Saldo gastado en el envío. Double

       

      Además disponemos de una función, llamada get que nos devuelve un Array donde cada elemento esta definido por la subclase que tiene las siguientes propiedades:

       

      Nombre
      Propiedades
      Descripción Posibles Valores Tipo de
      Dato
      key id inicial que le proporcionamos al mensaje String
      destino Número de móvil del destinatario String
      mensaje Texto del mensaje que enviamos String
      idDM Identificador del mensaje enviado, nos servirá para obtener el informe de entrega de este mensaje. String
      error Nos informa si ha habido un error al enviar este mensaje. true; false Bool
      mensajeerror Descripción del error del mensaje String

       

      3. Ejemplo




      Envío de Mensajes:

      include ("class_dms.php");
      $dms=new dms_send;
       
      //Autentificar
      $dms->autentificacion->idcli="codigo cliente";
      $dms->autentificacion->username="nombre de usuario";
      $dms->autentificacion->passwd="password";
      
      
      //Configurar envio
      $dms->remitente="";
      
      //Agregar mensajes
      $dms->mensajes->add("1","611111111","prueba de envio de sms","Info");
      $dms->mensajes->add("2","611111112","prueba de envio de sms");
      
      //enviar SMS's
      $dms->send();
      
      //Verificar Resultado
      if ($dms->autentificacion->error){
           //Error de autentificacion con la plataforma
          echo "Error: ".$dms->autentificacion->mensajeerror."\n";
      }else{
         //Autentificacion correcta
         echo "ID Envio Descom: ".$dms->mensajes->idenviodm."\n";
         echo "Saldo Actual: ".$dms->autentificacion->saldo."\n";
         echo "Mensajes enviados: ".$dms->mensajes->total_mensajes."\n";
         echo "Mensajes OK: ".$dms->mensajes->total_ok."\n";
         echo "Mensajes errores: ".$dms->mensajes->total_error."\n";
         echo "Creditos gastados: ".$dms->mensajes->total_creditos."\n";
         if ($dms->mensajes->total_error>0){
             echo "\nMensajes con errores: ".$dms->mensajes->errores."\n";
             foreach ($dms->mensajes->get() as $msg){
                 if ($msg->error){
                     echo "\t". $msg->destino . " -> " . $msg->mensajeerror . "\n";
                 }
            }
            echo "\n";
         }
      }
      

      Obtener Saldo:

      include ("class_dms.php");
      $dms=new dms_send;
       
      //Autentificar
      $dms->autentificacion->idcli="codigo cliente";
      $dms->autentificacion->username="nombre de usuario";
      $dms->autentificacion->passwd="password";
      
      
      //enviar SMS's
      $dms->send();
      
      //Verificar Resultado
      if ($dms->autentificacion->error){
           //Error de autentificacion con la plataforma
          echo "Error: ".$dms->autentificacion->mensajeerror."\n";
      }else{
         //Autentificacion correcta
         echo "Saldo Actual: ".$dms->autentificacion->saldo."\n";
         echo "\n";
      }
      

      4. Gráfico


      Enviar-SMS-InterfazHTTP

      API DLL Activex Enviar SMS

      SDK-DLL-Activex

      1. Descripción

      Esta DLL te ofrece una serie de objetos y métodos con los que podrás realizar los envíos de forma muy sencilla sin tener que implementar un código complicado. 

      2. Documentación

       

      Creación del objeto e instancia:

      Primero debemos iniciar una instancia de la DLL en nuestro programa, para posteriormente llamar a la clase

      Dim oDMEnvio As Object
      Set oDMEnvio = Nothing
      Set oDMEnvio = CreateObject("dcXMLSend.XMLSendClass");
      
      

      De esta forma, el objeto oDMEnvio, nos permitirá interactuar con la plataforma de Descom SMS.

       

      Configuración de la autentificación

      Definiremos la autentificación a la Plataforma de Descom Mensajes SMS, asignando los siguientes parámetros:

      oDMEnvio.Usuario = “nombre_de_usuario”
      oDMEnvio.Clave = “contraseña_de_acceso”
      

       

       
      Configurar datos opcionales de envío:

      Disponemos de varios parámetros para configurar el envío que queremos realizar, a continuación te exponemos los parámetros disponibles

      Nombre
      Parámetro
      Descripción Posibles Valores Tipo de
      Dato
      Remitente

      Remitente que vamos a utilizar en el envío.

       

      String
      idEnvioExt

      Puede definir un id de envío, de esta forma Descom asociará los envíos con el mismo identificativo (máx 30 caracteres), para poder obtener reportes de un envío de bloques de mensajes.

      String
      MaxNumSMS Número máximo de SMS que enviará en un solo mensaje. Si este campo es Cero, no tendrá ninguna limitación. 0, 1, 2, ... Int

      Ejemplo:

      oDMEnvio.Remitente = “Info”
      oDMEnvio.idEnvioExt = “34"
      oDMEnvio.MaxNumSMS=5
      

      Agregar mensajes para su envío

      La DLL dispone de una sub-clase para configurar los mensajes a enviar, se denomina, XMLMensajes, que a su vez dispone de 2 subclases para gestionar cada tipo de mensajes:

       

      • XMLMensajes.MensajesSMS

      Es una colección con todos los mensajes a enviar o enviados. Para agregar un mensaje a la colección, disponemos de la función ADD la cual acepta los siguientes argumentos:

      Nombre
      Argumentos
      Descripción Posibles Valores Tipo de
      Dato
      Id

      Identificador del mensaje que vamos a enviar

       1, 2, 3, ...

      Int
      Destino

      Número de móvil del destinatario del mensaje.

      String
      Mensaje Texto del mensaje a enviar String
      Remitente Opcional; remitente para este mensaje   String

      ControlarMensajesRepetidos

      Control para no enviar mensajes repetidos por error.

      True (por defecto); realizará dicho control, False; para deshabilitar este control

      Bool

      Ejemplo:

      oDMEnvio.XMLMensajes.MensajesSMS.Add "1", "0034xxxxxxxxx", "SMS pruebas", ""
      oDMEnvio.XMLMensajes.MensajesSMS.Add "2", "0034xxxxxxxxx", "SMS pruebas 2", "DescomSMS"
      oDMEnvio.XMLMensajes.MensajesSMS.Add "2", "0034xxxxxxxxx", "SMS pruebas 2", "DescomSMS", False
      

      • XMLMensajes.MensajesWAP

      Es una colección con todos los mensajes WAP a enviar o enviados. Para agregar un mensaje a la colección, disponemos de la función ADD la cual acepta los siguientes argumentos:

      Nombre
      Argumentos
      Descripción Posibles Valores Tipo de
      Dato
      Id

      Identificador del mensaje que vamos a enviar

       1, 2, 3, ...

      Int
      Destino

      Número de móvil del destinatario del mensaje.

      String
      Asunto Asunto del mensaje WAP String

      URL

      Dirección URL con el contenido multimedia

       

      String
      Remitente Opcional; remitente para este mensaje String

      Ejemplo:

      oDMEnvio.XMLMensajes.MensajesWAP.Add "3", "0034xxxxxxxxx", "Mi Foto", "<a href="http://www.mipagina.com/mifoto.jpg">http://www.mipagina.com/mifoto.jpg</a>", ""
      oDMEnvio.XMLMensajes.MensajesWAP.Add "4", "0034xxxxxxxxx", "Melodia", "<a href="http://www.mipagina.com/cancion.mp3">http://www.mipagina.com/cancion.mp3</a>", ""
      

       

      Enviar la petición

      Una vez formalizada la autentificación y definido los mensajes, enviaremos los mismos con el siguiente comando:

      DMSMS.SendXML "", ""
      

      En el caso que solo queramos consultar el Saldo, sin enviar mensajes, ejecute:

      DMSMS.getSaldo
      


      Con esta función se establece la comunicación con nuestra plataforma y se procede a realizar la autenticación y posterior envío de mensajes.

       

      Analizar la Respuesta

      Respuesta de Autentificación y saldo

      Para analizar el resultado del envío u obtención de saldo, debemos analizar la clase RXAutentificacion que nos ofrece las siguientes propiedades:

      Nombre
      Parámetro
      Descripción Posibles Valores Tipo de
      Dato
      Resultado

      Resultado de la autentificación en la plataforma

      • 1; si es correcto
      • 0; si no se a llevado acabo a autentificación.
      String
      Comentario

      Texto descriptivo del error al conectar con la plataforma

      String
      Saldo Saldo actual de la cuenta, si ha autentificado correctamente en la plataforma Descom SMS 0, 1, 2, ... Int

      IdEnviodm

      Si hemos enviado varios mensajes en bloque, ver: IdEnvioext, con esta propiedad obtenemos el identificativo del envío de mensajes dentro de la plataforma Descom SMS, que podremos utilizar para posteriormente recuperar el reporte de entrega de este envío de mensajes.

      String

      Respuesta de envíos de mensajes globales

      La clase dcXMLSend.XMLSendClass, contiene los siguientes parámetros globales para determirar cuantos mensajes han sido enviados correctamente:

      Nombre
      Parámetro
      Descripción Posibles Valores Tipo de
      Dato
      TotalMensajesEnviados

      Devuelve el número de mensajes que hemos enviado

      0, 1, 2, ... Int

      TotalMensajesEnviadosOK

      Número de mensajes enviados correctamente.

      0, 1, 2, ... Int

      TotalMensajesEnviadosError

      Número de mensajes que no se pueden envíar por algún error. 0, 1, 2, ... Int

      TotalCreditosGastados

      Créditos gastados en el envío de los mensajes

      String

      Respuesta de cada mensaje

      Tanto XMLMensajes.MensajesSMS como XMLMensajes.MensajesWAP son colecciones de los mensajes que hemos enviado. Para comprobar mensaje a mensaje su estado de envío, podemos recorrer dicha colección y comprobar en cada mensaje los siguientes parámetros:

      Nombre
      Parámetro
      Descripción Posibles Valores Tipo de
      Dato
      Resultado

      Si el mensaje ha podido enviarse o no

      • 1; se envío correctamente
      • 0; error en el envío
      Int

      Comentario

      Descripción del error de envío del mensaje.

      String

      iddm

      Identificativo único del mensaje enviado en la plataforma Descom SMS. Con este identificativo, puede posteriormente comprobar el estado de entrega del mensaje.

      String

      Destino

      Número de móvil del destinatario

      String
      Key Identificativo que se asigno en el momento de agregar el mensaje en la cola. String

      3. Ejemplos y Descargas

      Pulsa aquí para descargar la DLL de Descom Mensajes SMS, documentación y ejemplos de uso.

       

      Ejemplo en VB .NET

      Dim DMSMS As Object 
      DMSMS = CreateObject ("dcXMLSend.XMLSendClass") 
       
      DMSMS.Usuario = “nombre_de_usuario” 
      DMSMS.Clave = “contraseña_de_acceso” 
      DMSMS.Remitente = "Remitente personalizado"
      DMSMS.XMLMensajes.MensajesSMS.Add ("1", "0034xxxxxxxxx", "SMS pruebas", "")
      DMSMS.XMLMensajes.MensajesWAP.Add ("4", "0034xxxxxxxxx", "Melodia", "<a href="http://www.mipagina.com/cancion.mp3">http://www.mipagina.com/cancion.mp3</a>", "")
      DMSMS.SendXML ("", "") 
       
      If DMSMS.RXAutentificacion.Resultado="1" Then 
                  Dim MSG As Object 
                  For Each MSG In DMSMS.XMLMensajes.MensajesSMS 
                              If MSG.Resultado Then 
                                         MsgBox ("OK: Mensaje (" & MSG.Key & ") enviado.",, "Envío Correcto") 
                              Else 
                                         MsgBox ("ERROR: Mensaje (" & MSG.Key & "): " & MSG.Comentario, , "Envío Fallido ") 
                              End If 
                  Next 
      Else 
                 MsgBox (DMSMS.RXAutentificacion.Comentario, , "Error de Acceso") 
      End If
      

       

      Ejemplo en C++

      //Incluimos la cabecera de la DLL 
      #import "C:\Windows\System32\dcXMLSend.dll" 
       
       
      // Inicializamos la DLL 
      CoInitialize(NULL); 
      CLSID clsid; 
      HRESULT hr = CLSIDFromProgID(L"dcXMLSend.XMLSendClass", &clsid); 
       
      if(FAILED(hr)) { 
           MessageBox(NULL, _T("Debe registrar la DLL regsvr32 dcXMLSend.dll."), _T("Error"), MB_OK); 
           return -1; 
      } 
       
      dcXMLSend::_XMLSendClassPtr pXlApp; 
       
      hr = CoCreateInstance(clsid, NULL, CLSCTX_ALL, IID_IDispatch, (void **)&pXlApp); 
      if(FAILED(hr)) { 
            MessageBox(NULL, _T("No es posible cargar la Dll dcXMLSend.dll."), _T("Error"), MB_OK); 
            return -2; 
      } 
       
      // Configuramos el acceso a la plataforma Descom Mensajes 
      pXlApp->Usuario="usuario"; 
      pXlApp->Clave="contraseña"; 
       
      BSTR vacio=SysAllocString(L""); 
      VARIANT_BOOL cero=0; 
      BSTR id=SysAllocString(L"1"); 
      // Agregamos un mensaje 
      BSTR destino=SysAllocString(L"xxx"); 
      BSTR mensaje=SysAllocString(L"texto del mensaje"); 
      dcXMLSend::_XMLMensajesPtr MENSAJES; 
      pXlApp->get_XMLMensajes(&MENSAJES) ; 
      MENSAJES->Add(&id,&destino,&mensaje); 
      VARIANT_BOOL h=0; 
       
       
      // Conectamos con la Platafroma de Descom Mensajes 
      pXlApp->SendXML(&vacio,&vacio,&cero); 
       
      // Obtenemos el resultado de la Autentificación 
      dcXMLSend::_clsRXAutentificacionPtr rx; 
      pXlApp->get_RXAutentificacion(&rx); 
       
      BSTR result; 
      rx->get_Resultado(&result); 
       
      if (wcscmp(result,L"1")==0){ 
            // Autentificación Correcta 
           MessageBox(NULL, _T("Saldo de la cuenta: ") + rx->Saldo + _T(" créditos."), _T("Autentificacion Correcta"), MB_OK); 
            int c=MENSAJES->Count; 
       
            for (int i=1;i<=c;i++){ 
                 VARIANT v2; 
                 v2.vt = VT_I4; 
                 v2.lVal = i; 
                 dcXMLSend::_XMLMensajePtr MENSAJE; 
                 MENSAJES->get_Item(&v2,&MENSAJE); 
                 MessageBox(NULL, _T("Resultado: ") + MENSAJE->Comentario, _T("Envio -> ") + MENSAJE->Destino, MB_OK); 
            } 
      }else{ 
           // Autentificación Incorrecta 
            MessageBox(NULL, rx->Comentario, _T("ERROR"), MB_OK); 
      }
      

      4. Gráfico

      Interfaz DLL para enviar SMS

      API HTTP-XML Enviar SMS y envío masivo de SMS

      sdk-httpxml-a

      1. API para envío de SMS y envío masivo de SMS

      El Interfaz HTTP-XML te permite enviar mensajes prácticamente desde cualquier plataforma.

      Solo tienes que integrar la llamada a una URL en el lenguaje de programación que estés utilizando.

      Podrás enviar mensajes desde una página Web con un simple formulario, una aplicación gráfica en Windows, un script en linea de comandos en Linux, etc...

      La llamada a la URL se hace pasando un parámetro con la trama XML completa en la que se especifica los datos de autenticación y los mensajes a enviar.

      2. Documentación

      URL:

      https://www.descomsms.com/AP/descomMessage.servlet.Servlet

       

      Petición de envío

      Para poder enviar mensajes, deberás acceder al servidor seguro, a la URL arriba indicada
      proporcionando el parámetro xml con la trama XML en el formato más abajo especificado en esta documentación.

      Toda petición de envío tiene como respuesta un documento XML con el resultado de la operación realizada.

      Parámetros POST:

      Nombre Descripción
      xml Trama XML con los datos de autentificación y acciones a realizar

       

      Estructura básica XML de petición:

      Etiqueta Raiz: <TXEnvio>

      Esta etiqueta debe envolver todos los datos XML de la llamada.

      <TXEnvio>  Tus datos....  </TXEnvio>

       

      Definición de trama de autentificación:

      Deberás pasar en primer lugar el nodo de autentificación, donde figurarán sus credenciales en Descom SMS

      <Autentificacion>
          <Usuario>login usuario</Usuario>
          <Passwd>contraseña de usuario </Passwd>
          <Idcli>código de cliente</Idcli>
          <Remitente>texto remitente</Remitente>
      </Autentificacion>
      

      Donde:

      Nombre
      Parámetro
      Descripción Posibles Valores Tipo de
      Dato
      Usuario Identificador de Usuario en Descom SMS Nombre de usuario Alfanumérico en Hexadecimal
      Passwd Contraseña de acceso Contraseña Alfanumérico en Hexadecimal
      IdCli Identificador de Cliente en Descom SMS Identificador Numérico
      Remitente* Remitente personalizado para los mensajes Texto remitente hasta 11 caracteres Alfanumérico en Hexadecimal

      * Puede personalizar el remitente de los SMS, con su número de móvil autorizado, en formato no internacional (ej: 111222333), o con una cadena de texto; en este caso, consulte antes con Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo. para configurar su remitente.

       

      Definición de trama de envío de mensajes:

      Para el envío de mensajes deberás enviar en la trama XML el nodo <mensajes> según la estructura definida a continuación.

      <Mensajes  idenvioext="xxxxxxxx">
          <EmailNot>n</EmailNot>
          <MaxSMS>n</MaxSMS>
          <Total>nnn</Total>
          <Control>n</Control>
          <Mensaje>
              <ID>xx</ID>
              <Destino>nnnnnnnnnn</Destino>
              <Texto>xxxxxxxxxxxxxxxxxxx</Texto>
              <Remitente></Remitente>
          </Mensaje>
          <Mensaje>
              <ID>xx</ID>
              <Destino>nnnnnnnnnn</Destino>
              <Texto>xxxxxxxxxxxxxxxxxxx</Texto>
              <Remitente></Remitente>
          </Mensaje>
          ...............................
      </Mensajes>
      

       

      Donde:

      Parámetro Requerido Descripción Posibles Valores Tipo de
      Dato
      idenvioext No

      Identificador del envío.

      Este identificador sirve para identificar un envío en el servidor. El envío de bloques de mensajes con el mismo idenvioext hará que todos los mensajes se agrupen en un mismo envío. Si se deja en blanco se genera uno automáticamente en el servidor.

      Cadena alfanumérica de hasta 25 caracteres Hexadecimal
      EmailNot No

      Nos permite recibir por correo los reportes de entrega de los mensajes

      1 -> para recibir el reporte de los envíos. 
      Déjalo en blanco para no recibir reportes.
      Numérico
      MaxSMS No Número máximo de SMS que se enviarán por cada uno de los mensajes
      Si se deja en blanco no hay límite.
      1,2,3....
      0 - sin límite 
      Numérico
      Total Número total de mensajes en el envío   Numérico
      Control Control de mensajes dependiendo del saldo 0 - Si saldo es insuficiente, no enviar ningún mensaje
      1 - Si saldo es insuficiente, enviar tantos mensajes como saldo exista
      Numérico
      Por cada mensaje:    
      ID Identificador de cada mensaje en la trama  1,2,3,...  Numérico 
      destino Número de teléfono del destinatario del mensaje Teléfono en formato:
      acceso internacional + cod. país + teléfono Ejemplo: 0034111222333
      Numérico
      texto Texto del mensaje.
      Si el mensaje tiene más de 160 caracteres se dividirá en varios SMS según parámetro MaxSMS
      Texto del mensaje en formato hexadecimal Hexadecimal

      Remitente No Remitente personalizado específico para este mensaje. Si se deja en blanco se utilizará el remitente principal del nodo de autentificación   Hexadecimal

       

      Ejemplo de trama de envío XML para 3 mensajes:

      <TXEnvio>
      <Autentificacion>
          <Usuario>xxxxxxxxxxxxx</Usuario>
          <Passwd>xxxxxxxx</Passwd>
          <Idcli>99</Idcli>
          <Remitente>xxxxxxxx</Remitente>
      </Autentificacion>
      <Mensajes  idenvioext="123456ABC">
          <EmailNot>1</EmailNot>
          <MaxSMS>0</MaxSMS>
          <Total>3</Total>
          <Control>1</Control>
          <Mensaje>
              <ID>1</ID>
              <Destino>0034111222333</Destino>
              <Texto>4F74726120507275656261</Texto>
          </Mensaje>
          <Mensaje>
              <ID>2</ID>
              <Destino>0034111222444</Destino>
              <Texto>4F74726120507275656261</Texto>
          </Mensaje>
          <Mensaje>
              <ID>3</ID>
              <Destino>0034111222555</Destino>
              <Texto>4F74726120507275656261</Texto>
          </Mensaje>
      </Mensajes>
      </TXEnvio>
      

       

      Ejemplo de trama de para obtener el Saldo en Descom SMS:

      Se envía la misma trama pero quitando el nodo de <Mensajes>

      <TXEnvio>
      <Autentificacion>
          <Usuario>xxxxxxxxxxxxx</Usuario>
          <Passwd>xxxxxxxx</Passwd>
          <Idcli>99</Idcli>
          <Remitente>xxxxxxxx</Remitente>
      </Autentificacion>
      </TXEnvio>
      

       

      Obtendremos la trama de respuesta de autentificación explicada más abajo.

       

      Respuesta de envío.

      Estructura básica XML de respuesta:

      Etiqueta Raiz: <RXEnvio>

      Esta etiqueta debe envolver todos los datos XML de la llamada.

      <RXEnvio>  Tus datos....  </RXEnvio>

       

      Definición de trama de autentificación:

      Todas las peticiones serán respondidas con un documento XML, conteniendo la siguiente estructura.
      En primer lugar recibirás el resultado de tu autentificación Descom SMS.

      <Autentificacion>    
        <Usuario>xxxxxxxxxxxx</Usuario>
        <Resultado>1</Resultado>
        <Comentario>Autentificacion satisfactoria.Remitente Aceptado</Comentario>
        <Saldo>xxxxx</Saldo>
      </Autentificacion>
      

      Donde:

      Nombre
      Parámetro
      Descripción Posibles Valores Tipo de
      Dato
      Usuario Identificador de Usuario en Descom SMS Nombre de usuario Alfanumérico en Hexadecimal
      Resultado Resultado de la autentificación en Descom SMS 1-> autentificación correcta
      0->Fallo en la autentificación 
      Numérico
      Comentario Texto descriptivo del resultado de la autentificación   Alfanumérico
      Saldo Saldo actual en Descom SMS de tu cuenta   Numérico

       

      Definición de trama de respuesta de mensajes:

      Para los mensajes enviados, recibirás la información del resultado de los envío en el nodo <mensajes> según la estructura definida a continuación.

       
      <Mensajes idenvioext="xxxxxxxxxx" idenviodm="nnnnnnnnn" total_mensajes="nn" total_ok="nn" total_error="nn" total_creditos="nn" total_sms_ok="nn" total_sms_error="nn">
          <Mensaje>
              <Id>x</Id>
              <IdDM>xx</IdDM>
              <Resultado>1</Resultado>
              <Comentario>Mensaje Enviado</Comentario>
          </Mensaje>
          ...............................
      </Mensajes>
      

       

      Donde:

      Parámetro Descripción Posibles Valores Tipo de
      Dato
      idenvioext

      Identificador  externo del envío. El identificador que pasas cuando realizas el envío o que se genera automáticamente.

      Cadena alfanumérica de hasta 25 caracteres Hexadecimal
      idenviodm

      Identificador numérico del envío. Este es el identificador proporcionado por Descom SMS para poder usarlo a posteriori a la hora de obtener información acerca de este envío.

        Numérico
      total_mensajes Número total de mesnajes enviados.   Numérico
      total_ok Número total de mensajes enviados correctamente. (1 mensaje puede contener varios SMS)   Numérico
      total_error Número total de mensajes no enviados por contener algún error.   Numérico
      total_creditos Total de créditos gastados en el envío.   Numérico
      total_sms_ok Número total de SMS enviados correctamente.   Numérico
      total_sms_error Número total de SMS no enviados por contener algún error.   Numérico
      Por cada mensaje:    
      ID Identificador de cada mensaje que has pasado en el envío 1,2,3,...  Numérico 
      IdDM Identificador del mensaje. Este es el identificador proporcionado por Descom SMS para poder usarlo a posteriori a la hora de obtener información acerca de este mensaje.   Numérico
      Resultado Resultado del envío del mensaje. 1-> Envío correcto
      0-> Fallo en el envío
      Numérico

      Comentario Texto descriptivo del resultado del envío del mensaje.   Alfanumérico

       

      Ejemplo de trama de respuesta XML para 3 mensajes enviados:

      <?xml version="1.0" encoding="ISO-8859-1"?>
      <RXEnvio>
      <Autentificacion>
        <Usuario>7065706f7465</Usuario>
        <Resultado>1</Resultado>
        <Comentario>Autentificacion satisfactoria.Remitente Aceptado</Comentario>
        <Saldo>8888</Saldo>
      </Autentificacion>
      <Mensajes idenvioext="313233343536373839" idenviodm="123456" total_mensajes="3" total_ok="2" total_error="1" total_creditos="2" total_sms_ok="2" total_sms_error="1">
          <Mensaje>
              <Id>1</Id>
              <IdDM>123</IdDM>
              <Resultado>1</Resultado>
              <Comentario>Mensaje Enviado</Comentario>
          </Mensaje>
          <Mensaje>
              <Id>2</Id>
              <IdDM>0</IdDM>
              <Resultado>0</Resultado>
              <Comentario>Mensaje no Enviado</Comentario>
          </Mensaje>
          <Mensaje>
              <Id>3</Id>
              <IdDM>125</IdDM>
              <Resultado>1</Resultado>
              <Comentario>Mensaje Enviado</Comentario>
          </Mensaje>
      </Mensajes>
      </RXEnvio>
      

       

      3. Ejemplos

      Descarga nuestros ejemplos de API para enviar SMS y SMS masivo:

      4. Gráfico

      Enviar-SMS-InterfazHTTP

      API HTTP-XML Mensajes Programados

      sdk-httpxml-a

       

      1. Descripción

      La interfaz HTTP-XML de mensajes programados te permitirá gestionar tus programaciones para altas, bajas y modificaciones.
      Podrás obtener el listado completo de las programaciones que tengas o seleccionarlas según un filtro de búsqueda.
      Para realizar nuevas programaciones o añadir mensajes a una programación ya existente, deberás consultar el apartado de cómo programar mensajes dentro de la API Enviar SMS.

      2. Documentación

      URL:
       http://www.descomsms.com/AP/dmapi.servlet.Servlet

      Peticiones de envío:
      Para poder recibir el listado de programaciones, deberán de acceder a la URL arriba indicada proporcionando la siguiente información en formato POST:

       

      Parámetros POST:
      xml: Trama XML de petición de búsqueda de reports 

      Definición de trama de autentificación y parámetros de Acciones 

      <TXEnvio>
         <Autentificacion>
             <Usuario>login usuario</Usuario>        
             <Passwd>contraseña de usuario </Passwd>        
             <Idcli>código de cliente</Idcli>    
         </Autentificacion>
         <Progset accion=”PGET”>
              <prog_id>id de report</prog_id>
          </Progset>
      </TXEnvio>
      

       


      El elemento <Autentificacion> contiene :

       

      <usuario> Login  del usuario en formato hexadecimal
      <passwd> Password del usuario en formato hexadecimal
      <idcli> Código numérico de Cliente al que pertenece el usuario

       

      El elemento <Progset> contiene :

      <accion>

      Acción a realizar en la petición

      Tipos de Acciones:

      PGET Obtener listado de programaciones, o programación seleccionada.
      PDEL Borrar Programación seleccionada.
      PELMENS Borrar Todos los mensajes de la programación seleccionada.

       

      <prog_id> Identificador de la Programación

       

       

       

      Definición de Trama de Respuesta de Mensajes enviados:

      <RXEnvio>
          <Autentificacion>
              <Usuario>8865736572303038</Usuario>
              <Resultado>1</Resultado>
              <Comentario>Autentificacion satisfactoria.</Comentario>
          </Autentificacion>
      

       

      El elemento <Autentificacion> contiene :

       

      <Usuario> Login  del usuario en formato hexadecimal
      <Resultado>

      Resultado de la autenticación
      1 -> autenticación correcta
      0 -> fallo de autenticación

      <Comentario>
      comentario del resultado de la autenticación

       

       

       

      Lista de Programaciones recibidas:

      <PROGSLIST ntotal="1">
          <PROG>
              <PN>31</PN>
              <PID>37</PID> 
              <PNAME>50726f676f6e6c696e655f392f362f323031302031353a3035</PNAME> 
              <PREM>70616c6f6d696e6f</PREM> 
              <PDESC>556e612056657a20656c203c623e30392f30362f323031303c2f623e2061206c61732031353a3035</PDESC> 
              <PACTIVA>31</PACTIVA> 
              <PHH>3135</PHH> 
              <PHM>3135</PHM> 
              <PFINI>323031302d30362d3039</PFINI> 
              <PFFIN>323031302d30362d3039</PFFIN> 
              <PDIAS></PDIAS> 
              <PDIAM>31</PDIAM> 
              <PMES>31</PMES> 
              <PLASTMENS>312064652031</PLASTMENS> 
              <PLAST>323031302d30362d30392031353a30353a31312e30</PLAST> 
              <PAVISAR>31</PAVISAR> 
              <PNC>31</PNC> 
          </PROG>
      </PROGSLIST>
      </RXEnvio>
      

       

      El elemento <Progslist> contiene :

       

      <ntotal> Número total de programaciones obtenidas
      <PN> Contador de la programación en la lista devuelta
      <PID> Identificador de la programación en el servidor
      <PNAME> Nombre de la programación
      <PREM> Remitente para los mensajes programados
      <PDESC> Descripción de la programación
      <PACTIVA> Nos dice si la programación está activa o no
      <PHH> Hora de la programación
      <PHM> Minutos de la programación
      <PFINI> Fecha de inicio
      <PFFIN> Fecha de fin
      <PDIAS> Dias de la semana
      <PDIAM> Dia del mes
      <PMES> Mes
      <PLASTMENS> Número de mensajes enviados
      <PLAST> Fecha de último envío
      <PAVISAR> Avisar por correo del envío
      <PNC> Número de contactos

       

       

      {codecitation class="brush: xml; gutter: false;toolbar:false"}

      3. Ejemplos

      Descarga nuestros ejemplos o accede a una demo online: demo online PHPdescargar ejemplos en PHP.

      4. Gráfico

      API HTTP Programar envío de SMS

      SDK-HTTP-B

      1. Programar envío diferido de SMS

      El Interfaz HTTP para programar mensajes te permite enviar mensajes prácticamente desde cualquier plataforma.

      Solo tienes que integrar la llamada a una URL en el lenguaje de programación que estés utilizando.

      Podrás enviar mensajes desde una página Web con un simple formulario, una aplicación gráfica en Windows, un script en linea de comandos en Linux, etc...

      La llamada a la URL se hace pasando como parámetros las credenciales de autenticación, el mensaje y los destinatarios.

      2. Documentación para programar SMS

      URL:

      Encriptada:

      https://www.descomsms.com/dmapi/dmsend.php

      sin encriptar:

      http://www.descomsms.com/dmapi/dmsend.php

       

      Petición de envío
      Para poder programar mensajes, deberás acceder a la URL arriba indicada
      proporcionando la siguiente información en formato POST:

      https://www.descomsms.com/dmapi/dmsend.php ?usuario=xxx&clave=xxx&idc=xxx&dest=xxxxxx&texto=xxxxxx&progini=ddmmyyyy&proghora=hhmm

       

      Parámetros POST:

      Los valores ingresados deberán cumplir los siguientes valores, para ser enviados como parte de la petición:

       

      Nombre
      Parámetro
      Descripción Posibles Valores Tipo de
      Dato
      usuario Identificador de usuario Identificador de usuario en Descom SMS Alfanumérico
      clave Contraseña de acceso a la plataforma Contraseña del usuario en Descom SMS

      Alfanumérico

      idc Identificador de cliente Identificador de cliente en Descom SMS Numérico

       

      rem Remitente personalizado* Una cadena alfanumérica de hasta 11 caracteres Alfanumérico
      dest Números de teléfono destinatario del mensaje

      Teléfono en formato:
      acceso internacional + cod. país + teléfono Ejemplo: 0034666555444

      Para enviar varios destinatarios, separa cada número por coma.

      Ej: 0034666555444,0034666555441,0034666555442

      Numérico
      texto Texto del mensaje

      Texto del mensaje a enviar, URL codificado.

      Alfanumérico
      max Numero máximo de sms a dividir

      0 -> para no tener límite de SMS. (por defecto)

      Un número mayor que cero para indicar el máximo de SMS de un mensaje largo.

      Numérico
      aviso

      Envía un aviso de notificación cuando se envíe la programación

      0 -> No envía notificación por email (por defecto)
      1 -> Sí envía notificación por email.

      Numérico
      progini Fecha de inicio de la programación

      Formato de  fecha: ddmmyyyy

      Si se omite este parámetro se toma como fecha la del día actual

      Ej: 01122010 -> 1 de Diciembre de 2010,

      31062010 -> 31 de Junio de 2010

      Numérico
      proghora Hora de la programación

      Formato de Hora: hhmm

      Ej: 1233 -> 12 horas y 33 minutos.  0805-> 8 horas y 5 minutos

      Numérico

       

      * Puedes personalizar el remitente de los SMS, con su número de móvil autorizado, en formato no internacional (ej: 609111222), o con una cadena de texto; en este caso, consulte antes con Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo. para configurar su remitente.

      Programar un mensaje simple

      LLamada:

      https://www.descomsms.com/dmapi/dmsend.php?usuario=xxx&clave=xxx&idc=xxx&dest=00346xxxxxxxx&texto=Hola&progini=ddmmyyyy&proghora=hhmm

      Respuesta:

      Programación correcta

      OK: IDPROG: 123456 POK: 1 PERR: 0

       

       

      o en caso de error de programación

      ERR: IDPROG: 0 POK: 0 PERR: 1

       

      Enviar un mensaje múltiple

      LLamada:

      https://www.descomsms.com/dmapi/dmsend.php?usuario=xxx&clave=xxx&idc=xxx&dest=00346xxxxxxx1,00346xxxxxxx2,00346xxxxxxx3&texto=Hola

       

      Respuesta:

      Programación correcta

      OK: IDPROG: 123456 POK: 3 PERR: 0

       

      o en caso de error de programación

      ERR: IDPROG: 0 POK: 0 PERR: 3

       

      Donde:

      La primera línea devuelve el estado y resumen de la progrmación.

      Nombre Descripción Valores Tipo de Datos
      IDPROG Identificador alfanumérico de la programación. Este identificador te puede servir para obtener el reporte de envío asociado.   Alfanumérico
      POK Número de mensajes programados correctamente   Numérico
      PERR Número de mensajes no programados   Numérico

       

       

      3. Ejemplos

      Descarga nuestros ejemplos: ejemplo API HTTP SMS online

      4. Gráfico

      Enviar-SMS-InterfazHTTP

      API PHP Programar Envío de SMS

      SDK-PHP

      1. Envío diferido de SMS

      La API PHP te permite hacer un envío de SMS en diferido, estos mensajes se podrán programar para que su envío se realice a determinadas fechas y/o horas.

      2. Documentación para programar SMS

      Llamada

      Para enviar un mensaje programado, lo hacemos exactamente igual como con un envío normal, salvo que debemos indicar la programción gracias a la clase programacion. Esta clase tiene la siguientes funciones que nos ayudará a programar el mensaje en le momento adecuado:

      • nunca; para que no se programe, el envío se realizaría en ese mismo momento
      • unavez; para enviar el mensaje una única vez en un momento determinado. Estos son los argumentos:
      Nombre
      Argumento
      Descripción Posibles Valores Tipo de
      Dato
      idprog Establecer un identificativo único de programación, para sucesivas programaciones

      1, 2, 3, ...

      Int
      nombre Nombre que le asignaremos a esta programación.   String
      fecha Fecha en la que se realizará en envío de mensajes. Formato: dd/mm/yyyy String
      hora Hora en la que se realizará el envío del mensaje Formato: hhmm String
      • diariamente; para enviar el mensaje diariamente a una hora determinada. Estos son los argumentos:
      Nombre
      Argumento
      Descripción Posibles Valores Tipo de
      Dato
      idprog Establecer un identificativo único de programación, para sucesivas programaciones

      1, 2, 3, ...

      Int
      nombre Nombre que le asignaremos a esta programación.   String
      fecha Fecha en la que se comenzará el envío programado. Formato: dd/mm/yyyy String
      hora Hora en la que se realizará el envío del mensaje Formato: hhmm String
      fechafin Fecha en la que finalizará de enviarse el mensaje programado. Formato: ff/mm/yyyy String
      • semanalmente; para enviar el mensaje semanalmente en un día ya hora determinada. Estos son los argumentos:
      Nombre
      Argumento
      Descripción Posibles Valores Tipo de
      Dato
      idprog Establecer un identificativo único de programación, para sucesivas programaciones

      1, 2, 3, ...

      Int
      nombre Nombre que le asignaremos a esta programación.   String
      fecha Fecha en la que se comenzará el envío programado. Formato: dd/mm/yyyy String
      hora Hora en la que se realizará el envío del mensaje Formato: hhmm String
      fechafin Fecha en la que finalizará de enviarse el mensaje programado. Formato: ff/mm/yyyy String
      diaSemana Día de la semana que se enviará el mensaje 1 (lunes), 2, 3, 4, 5, 6, y 7 (Domingo) Int
      • mensualmente; para enviar el mensaje mensualmente en un día de lmes y a una hora determinada. Estos son los argumentos:
      Nombre
      Argumento
      Descripción Posibles Valores Tipo de
      Dato
      idprog Establecer un identificativo único de programación, para sucesivas programaciones

      1, 2, 3, ...

      Int
      nombre Nombre que le asignaremos a esta programación.   String
      fecha Fecha en la que se comenzará el envío programado. Formato: dd/mm/yyyy String
      hora Hora en la que se realizará el envío del mensaje Formato: hhmm String
      fechafin Fecha en la que finalizará de enviarse el mensaje programado. Formato: ff/mm/yyyy String
      diaMes Día del mes en el cual se enviará el mensaje. 1, 2, 3, ..., 31 Int
      • anualmente; para enviar el mensaje en un día del año a una hora determinada. Estos son los argumentos:
      Nombre
      Argumento
      Descripción Posibles Valores Tipo de
      Dato
      idprog Establecer un identificativo único de programación, para sucesivas programaciones

      1, 2, 3, ...

      Int
      nombre Nombre que le asignaremos a esta programación.   String
      fecha Fecha en la que se comenzará el envío programado. Formato: dd/mm/yyyy String
      hora Hora en la que se realizará el envío del mensaje Formato: hhmm String
      fechafin Fecha en la que finalizará de enviarse el mensaje programado. Formato: ff/mm/yyyy String
      diaMes Día del año en el cual se enviará el mensaje 1, 2, 3, ..., 31 Int
      mes Mes del año que se enviará el mensaje. 1, 2, 3, ..., 12 Int

       

      Respuesta

      Una vez enviado la petición de programar el mensaje, comprobaremos el resultado del mismo. Para ello, en la subclase programacion, podemos leer las siguientes propiedades:

      Nombre
      Propiedad
      Descripción Posibles Valores Tipo de
      Dato
      result_id Idendtificativo único del mensaje programado en la plataforma Descom SMS

      1, 2, 3, ...

      Int
      result_resultado Descripción del resultado de la programación.   String

      result_msg_ok

      Número de mensajes que se han programado correctamente. 0, 1, 2, 3, ... Int

      result_msg_err

      Número de mensajes que no se han programado correctamente.

      0, 1, 2, 3, ... Int

      3. Ejemplos y descargas


      include ("class_dms.php");
      $dms=new dms_send;
       
      //Autentificar
      $dms->autentificacion->idcli="codigo cliente";
      $dms->autentificacion->username="nombre de usuario";
      $dms->autentificacion->passwd="password";
      
      //Configurar envio
      $dms->remitente="";
      //Agregar mensajes
      $dms->mensajes->add("1","611111111","Felicidades, que cumplas muchos más","Felicidades");
      $dms->mensajes->add("2","611111112","Feilz cumpleaños", "Felicidades");
      //programar el mensaje anualmnte cada 27 de Noviembre a las 7 y media de la tarde.
      $dms->programacion->anualmente("1","felicitanciones","01/01/2002","1930","01/01/4000",27,11);
      //enviar SMS's
      $dms->send();
      //Verificar Resultado
      if ($dms->autentificacion->error){
           //Error de autentificacion con la plataforma
          echo "Error: ".$dms->autentificacion->mensajeerror."\n";
      }else{
          //Autentificacion correcta
          echo "\nProgramacion:\n";
          echo "\tid Programacion: ".$dms->programacion->result_id."\n";
          echo "\tResultado:       ".$dms->programacion->result_resultado."\n";
          echo "\tMensajes OK:     ".$dms->programacion->result_msg_ok."\n";
          echo "\tMensajes Error:  ".$dms->programacion->result_msg_err."\n";
      }
      

       

      4. Gráfico


      Enviar-SMS-InterfazHTTP

      API DLL Activex para programar el envío de SMS

      SDK-DLL-Activex

      1. Programar el envío de SMS

      Esta DLL te ofrece una serie de objetos y métodos con los que podrás realizar los envíos de forma muy sencilla sin tener que implementar un código complicado.  En este documento explicamos como realizar un envío en diferido o programarlo a determinadas fechas.

      2. Documentación

       

      Creación del objeto e instancia:

      Primero debemos iniciar una instancia de la DLL en nuestro programa, para posteriormente llamar a la clase

      Dim oDMEnvio As Object
      Set oDMEnvio = Nothing
      Set oDMEnvio = CreateObject("dcXMLSend.XMLSendClass");
      
      

      De esta forma, el objeto oDMEnvio, nos permitirá interactuar con la plataforma de Descom SMS.

       

      Configuración de la autentificación

      Definiremos la autentificación a la Plataforma de Descom Mensajes SMS, asignando los siguientes parámetros:

      oDMEnvio.Usuario = “nombre_de_usuario”
      oDMEnvio.Clave = “contraseña_de_acceso”
      

       

       
      Configurar datos opcionales de envío:

      Disponemos de varios parámetros para configurar el envío que queremos realizar, a continuación les exponemos los parámetros disponibles

      Nombre
      Parámetro
      Descripción Posibles Valores Tipo de
      Dato
      Remitente

      Remitente que vamos a utilizar en el envío.

       

      String
      idEnvioExt

      Puede definir un id de envío, de está forma podrá agregar nuevos mensajes a una programación, siempre que tenga este mismo identificativo.

        String
      MaxNumSMS Número máximo de SMS que enviará en un solo mensaje. Si este campo es Cero, no tendrá ninguna limitación, salvo las impuestas por el protocolo (actualmente 99) 0, 1, 2, ... Int

      Ejemplo:

      oDMEnvio.Remitente = “Info”
      oDMEnvio.idEnvioExt = “34"
      oDMEnvio.MaxNumSMS=5
      

      Agregar mensajes en la programación

      La DLL dispone de una sub-clase para configurar los mensajes a enviar, se denomina, XMLMensajes, que a su vez dispone de 2 subclases para gestionar cada tipo de mensajes:

       

      • XMLMensajes.MensajesSMS

      Es una colección con todos los mensajes a enviar o enviados. Para agregar un mensaje a la colección, disponemos de la función ADD la cual acepta los siguientes argumentos:

      Nombre
      Argumentos
      Descripción Posibles Valores Tipo de
      Dato
      Id

      Identificador del mensaje que vamos a enviar

       1, 2, 3, ...

      Int
      Destino

      Número de móvil del destinatario del mensaje.

        String
      Mensaje Texto del mensaje a enviar   String
      Remitente Opcional; remitente para este mensaje   String

      ControlarMensajesRepetidos

      Control para no enviar mensajes repetidos por error.

      True (por defecto); realizará dicho control, False; para deshabilitar este control

      Bool

      Ejemplo:

      oDMEnvio.XMLMensajes.MensajesSMS.Add "1", "0034xxxxxxxxx", "SMS pruebas", ""
      oDMEnvio.XMLMensajes.MensajesSMS.Add "2", "0034xxxxxxxxx", "SMS pruebas 2", "DescomSMS"
      oDMEnvio.XMLMensajes.MensajesSMS.Add "2", "0034xxxxxxxxx", "SMS pruebas 2", "DescomSMS", False
      

      • XMLMensajes.MensajesWAP

      Es una colección con todos los mensajes WAP a enviar o enviados. Para agregar un mensaje a la colección, disponemos de la función ADD la cual acepta los siguientes argumentos:

      Nombre
      Argumentos
      Descripción Posibles Valores Tipo de
      Dato
      Id

      Identificador del mensaje que vamos a enviar

       1, 2, 3, ...

      Int
      Destino

      Número de móvil del destinatario del mensaje.

        String
      Asunto Asunto del mensaje WAP   String

      URL

      Dirección URL con el contenido multimedia

       

      String
      Remitente Opcional; remitente para este mensaje   String

      Ejemplo:

      oDMEnvio.XMLMensajes.MensajesWAP.Add "3", "0034xxxxxxxxx", "Mi Foto", "<a href="http://www.mipagina.com/mifoto.jpg">http://www.mipagina.com/mifoto.jpg</a>", ""
      oDMEnvio.XMLMensajes.MensajesWAP.Add "4", "0034xxxxxxxxx", "Melodia", "<a href="http://www.mipagina.com/cancion.mp3">http://www.mipagina.com/cancion.mp3</a>", ""
      

       

      Creación de la programación.

      Para programar el envío, debemos crear una clase dcXMLSend.Programacion, tal como se muestra en este ejemplo:

      Dim Prog As Object
      Set Prog = Nothing
      Set Prog = CreateObject("dcXMLSend.Programacion");
      

      Para iniciar el objeto, y dependiendo del tipo de programación de los mensajes que deseemos, realizaremos una de estas llamadas:
       

      • Enviar SMS una sola vez (diferido):

      Set Prog = sms.programadoUnaSolaVez(nombreProgramacion, fecha)
      

      • nombreProgramacion (string); el nombre que deseamos que tenga dicha programación
      • fecha (date); la fecha y hora en las que se enviará el mensaje.
      • Enviar SMS Diariamente:

      Set Prog = sms.programadoUnaSolaVez(nombreProgramacion, fecha)
      

      • nombreProgramacion (string); el nombre que deseamos que tenga dicha programación
      • fecha (date); la fecha y hora en las que se comenzará a enviar los mensajes. La hora determina la hora de cada envío.
      • Enviar SMS Semanalmente:

      Set Prog = sms.programadoUnaSolaVez(nombreProgramacion, fecha, diaSemana)
      

      • nombreProgramacion (string); el nombre que deseamos que tenga dicha programación
      • fecha (date); la fecha y hora en las que se comenzará a enviar los mensajes. La hora determina la hora de cada envío.
      • diaSemana (integer); día de la semana en la que se enviaran el mensaje (0=Lunes ... 6=Domingo)
      • Enviar SMS Mensualmente:

      Set Prog = sms.programadoUnaSolaVez(nombreProgramacion, fecha, diaMes)
      

      • nombreProgramacion (string); el nombre que deseamos que tenga dicha programación
      • fecha (date); la fecha y hora en las que se comenzará a enviar los mensajes. La hora determina la hora de cada envío.
      • diaMes (integer); día del mes en la que se enviarán el mensaje (1 .. 31)
      • Enviar SMS Anualmente:

      Set Prog = sms.programadoUnaSolaVez(nombreProgramacion, fecha, diaMes, Mes)
      

      • nombreProgramacion (string); el nombre que deseamos que tenga dicha programación
      • fecha (date); la fecha y hora en las que se comenzará a enviar los mensajes. La hora determina la hora de cada envío.
      • diaMes (integer); día del mes en la que se enviarán el mensaje (1 .. 31)
      • Mes (integer); mes en el que se envía los mensajes (1 .. 12)




      Una vez inciada el objecto Prog, podemos definir sobre él, los siguientes parametros:

      • Prog.ProgAvisar (boolean); avisar por correo cada vez que se produzca el envío de un mensaje programado.
      • Prog.ProgFechaFinal (date); especifique aquí cuando desea que se finalice la programación de los mensajes.

      Es posible que una vez creemos una programación, queramos agregar más mensajes a la misma programación, para ello debemos enviar el mismo campo IdEnvioext, esto hará que en una previa programación con dicho ID, agreguemos nuevos mensajes.
       
      IMPORTANTE: en este caso solo se agregan los nuevos mensajes en la programación, no se modifican las propiedades.

       

      Enviar la petición

      Una vez formalizada la autentificación y definido los mensajes, enviaremos los mismos con el siguiente comando:

      DMSMS.SendXML "", "",,Prog
      


      Con esta función se establece la comunicación con nuestra plataforma y se procede a realizar la autenticación y posterior programación de los mensajes.

       

      Analizar la Respuesta

      Respuesta de Autentificación y saldo

      Para analizar el resultado de la programación, debemos analizar la clase RXAutentificacion que nos ofrece las siguientes propiedades:

      Nombre
      Parámetro
      Descripción Posibles Valores Tipo de
      Dato
      Resultado

      Resultado de la autentificación en la plataforma

      • 1; si es correcto
      • 0; si no se a llevado acabo a autentificación.
      String
      Comentario

      Texto descriptivo del error al conectar con la plataforma

        String
      Saldo Saldo actual de la cuenta, si ha autentificado correctamente en la plataforma Descom SMS 0, 1, 2, ... Int

      Respuesta de la programación

      La clase dcXMLSend.XMLSendClass, contiene los siguientes parámetros globales para determirar si los mensajes han sido programados correctamente:

      Nombre
      Parámetro
      Descripción Posibles Valores Tipo de
      Dato
      ResultProgramacion

      Devuelve si la programación se ha creado correctamente

      • true, si se creo
      • false; en caso de error
      Bool

      ResultProgramacionId

      Identificativo único de la porgramación

      0, 1, 2, ... long

      ResultProgramacionMsgOk

      Número de mensajes programados correctamente. 0, 1, 2, ... Int

      ResultProgramacionMsgErr

      Número de mensajes que no se han agregado en la programación.

      0, 1, 2, ... Int

       

      3. Ejemplos y Descargas

      Pulsa aquí para descargar la DLL de Descom Mensajes SMS, documentación y ejemplos de uso.

       

      Ejemplo en VB .NET

          'Crear Clase 
          Dim DMSMS As New dcXMLSend.XMLSendClass 
       
          'Definición de programación 
          Dim Programacion As dcXMLSend.Programacion 
          If Me.chkProgramacion.Value = 1 Then 
              Dim fechaInicio As Date 
              On Error Resume Next 
              fechaInicio = CDate(frmCProgramacion.txtFechaInicio.Text & " " & frmCProgramacion.txtHora.Text) 
              If Err Then 
                  MsgBox "Error: fecha de programación incorrecta.", vbCritical, "Error" 
                  Exit Sub 
              End If 
              On Error GoTo 0 
              Select Case frmCProgramacion.cmbRepeticion.ListIndex 
                  Case 0 
                      Set Programacion = DMSMS.programadoUnaSolaVez(frmCProgramacion.txtNombre.Text, fechaInicio) 
                  Case 1 
                      Set Programacion = DMSMS.programadoDiariamente(frmCProgramacion.txtNombre.Text, fechaInicio) 
                  Case 2 
                      Set Programacion = DMSMS.programadoSemanalmente(frmCProgramacion.txtNombre.Text, fechaInicio, frmCProgramacion.cmbDiaSemana.ListIndex) 
                  Case 3 
                      Set Programacion = DMSMS.programadoMensualmente(frmCProgramacion.txtNombre.Text, fechaInicio, frmCProgramacion.txtDiaMes.Text) 
                  Case 4 
                      Set Programacion = DMSMS.programadoAnualmente(frmCProgramacion.txtNombre.Text, fechaInicio, frmCProgramacion.txtDiaMes.Text, frmCProgramacion.cmbMes.ListIndex + 1) 
              End Select 
              If Not Programacion Is Nothing Then 
                  Programacion.ProgAvisar = frmCProgramacion.chkAvisar.Value = 1 
                  If frmCProgramacion.txtFechaFin.Enabled And frmCProgramacion.txtFechaFin.Text <> "" Then 
                      Dim fechaFin As Date 
                      On Error Resume Next 
                      fechaFin = CDate(frmCProgramacion.txtFechaFin.Text) 
                      If Err Then 
                          MsgBox "Error: fecha fin de programación incorrecta.", vbCritical, "Error" 
                          Exit Sub 
                      Else 
                          Programacion.ProgFechaFinal = fechaFin 
                      End If 
                      On Error GoTo 0 
                  End If 
              End If 
          End If 
       
          'Asignar acceso a plataforma Descom Mensajes 
          DMSMS.Usuario = Me.txtUsuario.Text 
          DMSMS.Clave = Me.txtClave.Text 
       
          'Crear Mensaje 
          DMSMS.XMLMensajes.MensajesSMS.Add 1, Me.txtDestinatario.Text, Me.txtMensaje.Text, Me.txtRemitente.Text 
       
          'Id Envío 
          If Me.txtIdEnvio.Text <> "" Then DMSMS.IdEnvioext = Me.txtIdEnvio.Text 
       
          'Enviar 
          DMSMS.SendXML "", "", , Programacion 
       
          'Verificar acceso 
          If DMSMS.RXAutentificacion.resultado = "1" Then 
              If Me.chkProgramacion.Value = 1 Then 
                  MsgBox "Saldo de la cuenta: " & DMSMS.RXAutentificacion.Saldo _ 
                  & vbCrLf & "ID Envio Descom: " & DMSMS.IdEnviodm _ 
                  & vbCrLf & "ID Envio DLL: " & DMSMS.IdEnvioext _ 
                  & vbCrLf & "Mensajes Programado: " & IIf(DMSMS.ResultProgramacion, "Correctamente", "Error: revise que la programación es correcta.") _ 
                  & vbCrLf & "Identificativo de la programación: " & DMSMS.ResultProgramacionId _ 
                  & vbCrLf & "Mensajes programados correctamente: " & DMSMS.ResultProgramacionMsgOk _ 
                  & vbCrLf & "Mensajes programados con errores: " & DMSMS.ResultProgramacionMsgErr _ 
                  , vbInformation, "Informe" 
              Else 
                  MsgBox "Saldo de la cuenta: " & DMSMS.RXAutentificacion.Saldo _ 
                  & vbCrLf & "ID Envio Descom: " & DMSMS.IdEnviodm _ 
                  & vbCrLf & "ID Envio DLL: " & DMSMS.IdEnvioext _ 
                  & vbCrLf & "Total mensajes: " & DMSMS.TotalMensajesEnviados _ 
                  & vbCrLf & "Total mensajes enviaros: " & DMSMS.TotalMensajesEnviadosOK _ 
                  & vbCrLf & "Total errores: " & DMSMS.TotalMensajesEnviadosError _ 
                  & vbCrLf & "Créditos gastados: " & DMSMS.TotalCreditosGastados _ 
                  , vbInformation, "Informe" 
                  Dim MSG As MensajeSMS 
                  For Each MSG In DMSMS.XMLMensajes.MensajesSMS 
                      If MSG.resultado Then 
                          MsgBox "Mensajes " & MSG.Key & ": " & MSG.Comentario & vbCrLf & "Id envio: " & MSG.Iddm, vbInformation 
                      Else 
                          MsgBox "Mensajes " & MSG.Key & ": " & MSG.Comentario & vbCrLf & "Id envio: " & MSG.Iddm, vbExclamation 
                      End If 
                  Next 
              End If 
          Else 
              MsgBox DMSMS.RXAutentificacion.Comentario, vbCritical, "Error de Acceso" 
          End If 
          'Vaciamos la colección de mnesajes para no replicar envíos 
          DMSMS.XMLMensajes.MensajesSMS.Clean
      

       

       

      4. Gráfico

      Interfaz DLL para enviar SMS