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:
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
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:
En el caso que solo queramos consultar el Saldo, sin enviar mensajes, ejecute:
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
