8. Servicio de Notificación de Eventos
Este servicio permite el envío de notificaciones de múltiples eventos que ocurren en los productos o servicios de SMS Inteligente, de tal forma que no es necesario solicitar información de forma periódica; en su lugar, el cliente debe publicar un servicio web (WS) en el cuál nuestra plataforma realizará la petición a este WS con toda la información del evento en cuestión. Los eventos enviados pueden ser desde el estado final de un mensaje de texto (SMS), finalización de campañas, hasta un evento de clic realizado a una de nuestras URL corta, entre otros.
1. WS que debe ser expuesto por el cliente
a. Tipo REST
El servicio expuesto debe aceptar peticiones REST de tipo POST.
b. Tipo de contenido
El servicio debe poder recibir información en formato Json, para lo cual se le envía el encabezado “Content-Type”: “application/json”; lo anterior permite el envío del cuerpo como se muestra a continuación.
c. Cuerpo a recibir:
El servicio debe poder recibir la siguiente información:
{
"userName": {{user-name}},
"event": {{event-name}},
"eventDate": {{event-date}},
"detail": {
{{detail-object}}
}
}
Descripción:
● {{user-name}}: [tipo texto] Es el nombre del usuario configurado para recibir notificaciones de eventos.
● {{event-name}}: [tipo texto] Es el nombre del evento; este identifica cual es el evento que se recibe en el WS. Este puede ser:
○ SMS_DLR
○ CLICK
● {{event-date}}: [tipo fecha] Esta es la fecha de registro de creación del evento; su formato es “yyyy-MM-dd’T’HH:mm:ssZ” (ISO8601)
● {{detail-object}}: Este objeto contiene todo el detalle particular del evento,
está representado por una lista de pares clave, valor.
Ejemplo evento clic:
{
"userName": "clienteA",
"event": "CLICK",
"detail": {
"clickCount": 5,
"messageSentDate": "2018-11-04 12:21:26",
"shortUrl": "http://aldm.co/nDgsog3423eae",
"destination": 8714354,
"longUrl": "http://electroeing.wordpress.com",
"transactionId": "10056T11412LG3118714354Rn6hj1Pshrturl",
"info": {
"browser": "Firefox",
"operativeSystem": "Linux",
"device": "Personal computer",
"clickDate": "2018-12-04 12:52:48"
}
},
"eventDate": "2018-12-04T12:52:48-0500"
}
Parámetros:
Tabla 14 Parámetros Notificación de evento Clic
Parámetro | Descripción |
---|---|
clickCount | Contiene el número total de clics efectuados sobre la URL |
messageSentDate | Contraseña Fecha y hora del envío de la transacción con la URL |
shortUrl | URL acortada por el servicio y enviada a través de la notificación. |
destination | Contiene el destinatario de la URL. |
longUrl | Link original al que redirige la URL corta del servicio. |
transactionId | Identificador único de la transacción en plataforma. |
Info | Contiene el detalle del evento reportado: "browser": Navegador desde el que cual se accedió a la URL corta. "operativeSystem": Sistema Operativo del dispositivo desde el cual se accedió a la URL corta. "device": Tipo de dispositivo desde el cual se accedió a la URL corta. "clickDate": Fecha hora del evento clic notificado: AAAA-MM-DD hh:mm:ss |
Ejemplo evento DLR:
{ "userName":"ClienteA",
"detail": {
"processStatus": " Entregado al operador",
"messageFormat": "NORMAL_SMS",
"dateToSend: "2019-04-09 14:09:39",
"destination":"3043541901",
"totalMessages":"1",
"message": "Hola, esto es un mensaje de prueba",
"transactionId":"T3914L593G995809631Rm5uqisdsr"
},
"event":SMS_DLR,
"eventDate": "2019-04-09 14:09:39"
}
Parámetros:
Tabla 15 Parámetros Notificación de evento Clic
Parámetro | Descripción |
---|---|
processStatus | Contiene el nombre del estado de la transacción: • Entregado al operador • No enviado • Cancelado • Expirado • Operador fallido • Lista negra • Número inválido • Operador NO disponible • Lista negra por servicio • Fallido por enrutamiento con operador NO disponible • Ruta NO configurada • Reintento a otra ruta por servicio • Calendario no permitido por el operador • Mensaje Limitado por el operador • Entregado al operador, pendiente confirmación entrega al móvil NOTA: Los estados "Entregado al Operador" y "Entregado al operador, pendiente confirmación entrega la móvil", reflejan transacciones exitosas que consumen créditos de la bolsa habilitada, si luego de 24 horas de la transacción no se tiene un DLR que las modifique serán consideradas como exitosas. |
messageFormat | Es el tipo de mensaje enviado: • NORMAL_SMS, • FLASH_SMS, • DOC_SMS, • DOC_BUILDER, • DOC_SMS_2, • DOC_SMS_4; |
dateToSend | Es la fecha de envío de la transacción. |
destination | Contiene el destinatario de la transacción. |
totalMessages | Cantidad de mensajes de texto consumidos por la transacción. |
message | Contenido del mensaje. |
transactionId | Identificador único de la transacción en plataforma. |
d. opciones de seguridad
El servicio de notificaciones cuenta con la posibilidad de configurar seguridad, de tal forma que el servicio expuesto por el cliente pueda estar protegido; las siguientes son las opciones de configuración.
i. Básica
En esta configuración, se envía el siguiente encabezado al WS del cliente.
Este encabezado HTTP llamado “Authorization” debe tenerlos siguientes parámetros:
Username: {{auth-client_id}}
Password: {{auth-client-password}}
Estos parámetros conforman el valor del encabezado en base64*
tales que cumpla con la siguiente función:
Authorization: “Basic base64({{auth-client_id}}:{{auth-client-password}})”
Ejemplo para:
{{auth-client_id}} = client y {{auth-client-password}} = password
Authorization: Basic Y2xpZW50OnBhc3N3b3Jk
e. respuesta del WS (posibles estados)
El WS expuesto por el cliente debe responder a las peticiones elsiguiente cuerpo en formato Json
{
"status": {{status}},
"reason": {{reason}}
}
Descripción:
● {{status}}, {{reason}}: Este es el ID del estado de la petición y su descripción respectivamente;estos puedes contener los siguientes estados.
○ Caso exitoso: 1, “Request Received”
○ Falla en la autenticación: -1, “Authentication Error”
○ Falla interna del servicio expuesto: -5, “Transacction Error”
2. Requerimientos de configuración
Datos requeridos para la configuración del servicio se listan a continuación:
a. Usuario SMS inteligente
○ Solicitarlo al comercial a cargo
b. Sin autenticación
i. dominio completo del servicio
c. Con autenticación básica
i. dominio completo del servicio
ii. usuario
iii. contraseña