Contenido
1
01/09/2014
Actualización general del manual de integración sobre VPN
Ivens Zambrano
2
08/10/2014
Hader Ceron
3
05/11/2014
4
25/01/2016
Daniel Valero
5
02/05/2016
Actualización tipo de conexión
Daniel Gómez
6
07/Julio/2016
Inclusión ejemplos Recepción de mensajes
7
16/01/2017
8
01/09/2017
Actualización Método Post Flash
9
04/12/2017
Actualización Métodos de Consulta
10
29/01/2018
Actualización método REST
11
09/02/2018
12
11/09/2018
13
09/01/2019
Actualización Cambios en WS Reports
14
03/02/2020
Actualización Notificador de Eventos DLR y nueva URL WS SMS
Para la integración de nuestros clientes a la plataforma SMS Inteligente, contamos con varios APIs que permiten a nuestros aliados el envío y recepción de mensajes de texto, estas tecnologías facilitan una integración rápida y transparente con el fin de potencializar el negocio de nuestros clientes y asociados.
A continuación se detallan cada una de estas tecnologías (API) para un mayor entendimiento de su uso y complejidad.
La plataforma SMS Inteligente permite la integración para envió de mensajes originados por su plataforma (MT: Mobile Terminated) por medio de varios servicios de integración expuestos:
*Para envíos masivos se recomienda utilizar el método HTTP POST para evitar cargas masivas en el servidor que pueden causar fallas en el funcionamiento del servicio.
*Las URL o IP:Puerto que se listan a continuación son un ejemplo, la ruta de envío debe ser suministrada por su consultor comercial.
Este API está basado en llamados HTTP GET ideales para transacciones básicas y rápidas hechas por el cliente a una URL. Bajo este esquema los parámetros de la solicitud de envío se adjuntan a la petición HTTP vía GET.
El usuario se autentica por medio de usuario y contraseña codificados (en base 64) en el encabezado “Authorization” bajo el estándar “basic” de la siguiente forma:
Formato
SMS Flash (2) – Requiere configuración previa.
Opcional
Tabla 1 Parámetros HTTP GET
{
“status”: 1,
“reason”: “Request Received”, “result”: {
“totalRequest”: 1,
“totalFailed”: 0, “receivedRequests”: [
“mobile”: “3118644939”,
“transactionId”: “postT02615L57G3118644939Rm4yx8Psmsi”, “status”: 1,
“reason”: “Request Received”
}
],
“failedRequests”: [],
“dateToSend”: “2018-01-26 14:42:00”,
“timeZone”: “America/Bogota”
Descripción de la respuesta:
Tabla 2 Parámetros Respuesta HTTP GET
Este api está basado en llamados HTTP POST hechos por el cliente a una URL, bajo este esquema se encuentran varias funcionalidades adicionales como:
Envíos por lotes de mensajes: Posibilidad de enviar el mismo mensaje a una lista de destinatarios en una misma petición, la respuesta de la petición retorna la información de cada mensaje por lo que se recomiendan lotes de hasta 50 SMS. Permite también el envío de mensajes personalizados por cada destinatario de la petición.
Envíos Tipo Flash: Previa configuración y de acuerdo a la disponibilidad de la tecnología por operador/país, podrá realizar envío de peticiones tipo Flash.
Programación de envíos: Podrá realizar peticiones con un parámetro de fecha/hora en la que realizarán el envío.
URLs Cortas: este servicio permite el envío de URL corta, al usarse en batches podrá enviar el mismo vínculo a todos los destinatarios o una diferente a cada contacto.
CorrelationLabel: Permite añadir un identificador de mensajes que podrá consultar en reportes para agrupar peticiones.
Bajo este esquema se debe enviar una petición con la siguiente estructura.
“country”: “string”, “dateToSend”: “string”, “message”: “string”, “encoding”: “string”, “messageFormat”: 0, “addresseeList”: [
“mobile”: “string”,
“correlationLabel”: “corelation ejemplo”, “url”: “string”
},
]
Mensaje
Nota: para incluir Saltos de Línea* en los mensajes, use la etiqueta <br>.
*Esta funcionalidad no está disponible en todos los operadores/países, por favor valide con su asesor
comercial la disponibilidad de la llegada del salto de línea en su destino de SMS.
Obligatorio
AdresseeList
Encoding: Tipo de codificación en la que se recibe el texto del mensaje (ej: GSM7)
asociar transacciones en reportes.
dateToSend
Tabla 3 Parámetros HTTP POST
Tabla 4 Parámetros Respuesta HTTP POST
Este API está basado en la comunicación de servicios web a través de SOAP, permite además realizar envío de peticiones con las siguientes funcionalidades:
La autenticación en este servicio se realiza por medio de Basic Authentication, en el que se deberá enviar el usuario y la contraseña asignada
Para el envío de mensajes se debe implementar el método getSmsSoapRequest con los siguientes parámetros:
Texto del mensaje; no debe tener caracteres que afecten la URL de la petición.
*Esta funcionalidad no está disponible en todos los operadores/países, por favor valide con su asesor comercial la disponibilidad de la llegada del salto de línea
en su destino de SMS.
Tabla 5 Parámetros Petición SOAP
<soapenv:Envelope xmlns:soapenv=”http://schemas.xmlsoap.org/soap/envelope/” xmlns:hab=”http://habitatclient.service.soapws.core.axesnet.com/“>
<soapenv:Header/>
<soapenv:Body>
<hab:getSmsSoapRequest>
<hab:country>57</hab:country>
<hab:message>Hola esto es una prueba</hab:message>
<hab:encoding></hab:encoding>
<hab:messageFormat></hab:messageFormat>
<hab:dateToSend></hab:dateToSend>
<!–1 o más peticiones para envíos por batch:–>
<hab:addresseeList>
<hab:mobile>3229462890</hab:mobile>
<hab:url></hab:url>
<hab:transactionId></hab:transactionId>
<hab:correlationLabel></hab:correlationLabel>
<hab:message>Hola test 1</hab:message>
</hab:addresseeList>
<hab:message>Hola test 2</hab:message>
</hab:getSmsSoapRequest>
</soapenv:Body>
</soapenv:Envelope>
<SOAP-ENV:Envelope xmlns:SOAP-ENV=”http://schemas.xmlsoap.org/soap/envelope/”>
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns2:getSmsSoapResponse xmlns:ns2=”http://habitatclient.service.soapws.core.axesnet.com/“>
<ns2:status>1</ns2:status>
<ns2:result>
<ns2:failedRequests/>
<ns2:receivedRequests>
<ns2:mobile>3229462890</ns2:mobile>
<ns2:reason>Request Received</ns2:reason>
<ns2:transactionId>soapT3169L57G3229462890R1cte2Psmsi</ns2:transactionId>
</ns2:receivedRequests>
<ns2:transactionId>soapT3169L57G3229462890Rn3eiuPsmsi</ns2:transactionId>
<ns2:totalFailed>0</ns2:totalFailed>
<ns2:totalRequest>2</ns2:totalRequest>
</ns2:result>
</ns2:getSmsSoapResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Tabla 6 Parámetros Respuesta SOAP
Para la integración de nuestra plataforma SMS Inteligente hacia Web Services expuestos por nuestros clientes en el proceso de entrega de mensajes originados por los usuarios desde sus celulares (MO: Mobile Originated), se sugiere generar un servicio web en alguno de los API que se describen en el presente documento.
A continuación se detallan y ejemplifica el API ideal para poder guiar su construcción.
Este api está basado en llamados HTTP POST hechos a una URL del cliente. Bajo este esquema se debe poder enviar una petición con la estructura similar a la siguiente.
http://{ip}:{port}/sms_in/smsPost/
“Mobile”: “12345678”,
“Message”:”Hola esto es una prueba”
Se espera retorne una línea de texto con los siguientes posibles valores:
“Status”: “(http code)”,
“Reason”: “(Descripción del estado de la transacción)”
NOTA: En el ejemplo expuesto en el presente documento puede añadirse parámetros de autenticación (Usuario, contraseña, Key) al Web Service para añadir seguridad de acceso.
HTTP GET
Tabla 7 Caracteres Permitidos en el Mensaje Http Get
HTTP POST y SOAP
Tabla 8 Caracteres Permitidos en el Mensaje Post y Soap
*Por limitantes de los operadores, el servicio de SMSi puede no soportar los siguientes caracteres:
£¥&áéíóúàèìòùÁÉÍÓÚÀÈÌÒÙÇØøÅ寿ߤÄÖÑñܧäöü\~€
SMSi ofrece la posibilidad de realizar consultas a su Web Service HTTP POST para consulta de reportes paginados con múltiples filtros NO excluyentes para conocer el estado de las transacciones. El servicio se consume con la siguiente petición
“filters”: { “clickReport”: true,
“dateToSendFrom”: “2018-01-01 01:00:00”,
“dateToSendTo”: “2018-01-09 01:00:00”,
“externalIdList”: [], “groupName”: “”,
“gsmList”: [],
“land”: “57”, “messageFormatList”: [], “page”: 1, “referenceName”: “”, “rowsPerPage”: 10, “shortCodeList”: [], “transactionIdList”: [], “userNameList”: []
es un reporte detallado y lo hace por cada destinatario. Posibles valores: “true” o “false”
Web.
1 – SMS Normal
2 – SMS Flash 3 – SMSDocs
petición y se retorna al consumir el WS REST; este busca ese detallado.
Tabla 9 Parámetros HTTP POST Reportes
“reportList”: [
“dateIn”: “2017-11-17 09:08:37”,
“dateToSend”: “2017-11-17 09:08:37”,
“clickDateUpdated”: null, “clickCount”: 0,
“totalMessages”: 820281,
“sentMessages”: 0,
“inProcessMessages”: 0,
“failedMessages”: 0,
“canceledMessages”: 0,
“message”: “[GSM][NOMBRE][MENSAJE]”,
“shortCode”: “N/A”,
“transactionId”: “”, “externalId”: “26619831”, “userName”: “jperea”,
“processStatusName”: “ERROR”, “groupName”: ” “,
“referenceName”: “”,
“operatorName”: “Operator Unavailable”, “url”: “”,
“codedUrl”: “”,
“gsm”: “N/A”,
“messageFormatName”: “DEF_SMS_MESS”
“totalPages”: 130,
“currentPage”: 1
Tabla 10 Parámetros Respuesta HTTP POST Reportes
El servicio cuenta con un reporte de consulta de estado de paquetes; este tiene el mismo esquema de autenticación.
“land”: “”, “packageStateList”: [ “”
“packageTypeList”: [ “”
land: Indicativo del país a buscar. (Obligatorio)
packageStateList: Lista de estados a filtrar; puede tener uno de los siguientes valores. (Opcional)
Tabla 11 Tipo de paquetes disponibles
packageTypeList: Lista de filtros por tipo de paquete; puede usarse uno de los siguientes estados. (Opcional)
Tabla 12 Estado de paquetes
“reason”: “Request Received”, “result”: [
“totalSpent”: 5236,
“total”: 100000,
“available”: 94764, “state”: “ENABLED”,
“packageType”: “SMS”
“totalSpent”: 504,
“total”: 10000,
“available”: 9496, “state”: “ENABLED”,
“packageType”: “FLASH”
“totalSpent”: 0,
“available”: 10000, “state”: “ENABLED”,
“packageType”: “DOC”
Tabla 13 Parámetros Respuesta HTTP POST
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.
El servicio expuesto debe aceptar peticiones REST de tipo POST.
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.
El servicio debe poder recibir la siguiente información:
“userName”: {{user-name}},
“event”: {{event-name}},
“eventDate”: {{event-date}}, “detail”: {
{{detail-object}}
Descripción:
evento; su formato es “yyyy-MM-dd’T’HH:mm:ssZ” (ISO8601)
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”
“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
Tabla 14 Parámetros Notificación de evento Clic
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”
· 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.
· NORMAL_SMS,
· FLASH_SMS,
· DOC_SMS,
· DOC_BUILDER,
· DOC_SMS_2,
· DOC_SMS_4;
Tabla 15 Parámetros Notificación de evento Clic
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
En esta configuración, se envía el siguiente encabezado al WS del cliente.
El WS expuesto por el cliente debe responder a las peticiones el siguiente cuerpo en formato Json
“status”: {{status}},
“reason”: {{reason}}
1 https://www.base64encode.org/
Datos requeridos para la configuración del servicio se listan a continuación
Powered by BetterDocs
Save my name, email, and website in this browser for the next time I comment.
Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.
Selecciona tus temas favoritos sobre los que recibir notificaciones