BotServices API
Información General
BotServices es una aplicación .NET Framework diseñada para proporcionar servicios automatizados a través de bots para ETB. El proyecto sigue las mejores prácticas de la industria y está estructurado para máxima mantenibilidad y seguridad.
Descripción General
BotServices actúa como API Gateway centralizado que orquesta y gestiona las comunicaciones entre aplicaciones de negocio, sistemas de soporte y servicios externos de ETB. Proporciona una capa de abstracción para la integración de operaciones, facturación, soporte, inventario, referidos y más, permitiendo la automatización y trazabilidad de procesos clave.
Propósito Principal
- Gestión de Operaciones: Centraliza la gestión de órdenes, incidentes y procesos operativos.
- Integración Multisistema: Orquesta la comunicación con sistemas como MongoDB, Oracle, IVR, Service-PAPI, Billing, MDM, entre otros.
- Automatización y Trazabilidad: Facilita la automatización de flujos y el registro de logs y auditorías.
- Gestión de Clientes y Referidos: Administra información de clientes, contactos y referidos.
- Soporte y Facturación: Integra servicios de soporte, facturación y tramitaciones.
Arquitectura del Sistema
La arquitectura de BotServices está compuesta por varias capas bien definidas, cada una con responsabilidades claras:
- API Gateway: Recepción y enrutamiento de requests HTTP a través de ASP.NET Web API.
- Controller Layer: Validación y preparación de requests para cada recurso.
- Business Layer: Lógica de negocio y orquestación de procesos.
- Data Access Layer: Comunicación con servicios y sistemas externos.
- External Services: Sistemas backend especializados (MongoDB, Oracle, IVR, Billing, etc).
Consulta el diagrama Mermaid de arquitectura para una visualización detallada.
graph TD
A[Cliente/API Consumer] --> B[BotServices API Gateway]
B --> C[ASP.NET Web API]
C --> D[Controllers]
D --> E[Business Layer]
E --> F[Data Access Layer]
F -->|REST/SOAP| G[MongoDB Service]
F -->|REST/SOAP| H[Oracle Service]
F -->|REST/SOAP| I[IVR Service]
F -->|REST/SOAP| J[Service-PAPI]
F -->|REST/SOAP| K[Audits Service]
F -->|REST/SOAP| L[Billing Service]
F -->|REST/SOAP| M[ETB MDM]
F -->|REST/SOAP| N[Support Service]
F -->|REST/SOAP| O[Remedy SAPI]
F -->|REST/SOAP| P[SAP SAPI]
F -->|REST/SOAP| Q[Common SAPI]
F -->|REST/SOAP| R[Salesforce Service]
F -->|REST/SOAP| S[LISIM Service]
F -->|REST/SOAP| T[DirectTV Service]
F -->|REST/SOAP| U[PayU Service]
F -->|REST/SOAP| V[Wompi Service]
B --> W[Error Handler]
B --> X[Logging System]
B --> Y[JWT Authentication]
classDef api fill:#e3f2fd,stroke:#1565c0,stroke-width:2px
classDef controller fill:#e8f5e9,stroke:#2e7d32,stroke-width:2px
classDef business fill:#fffde7,stroke:#fbc02d,stroke-width:2px
classDef data fill:#f3e5f5,stroke:#6a1b9a,stroke-width:2px
classDef ext fill:#fce4ec,stroke:#ad1457,stroke-width:2px
class B,C api
class D controller
class E business
class F data
class G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V ext
class W,X,Y api
Capas del Sistema
Capa | Componente | Responsabilidad |
---|---|---|
API Gateway | ASP.NET Web API | Recepción y enrutamiento de requests |
Controller Layer | API Controllers | Validación y preparación de requests |
Business Layer | Business Controllers | Lógica de negocio y orquestación |
Data Access Layer | Data Access Classes | Comunicación con servicios externos |
External Services | MongoDB, Oracle, IVR, Billing, etc | Servicios backend especializados |
Clasificación de Servicios por Categorías
🔐 AUTENTICACIÓN Y SEGURIDAD
- MiETBApiController - Autenticación y gestión de usuarios MiETB
- SecurityController - Gestión de seguridad y tokens
- ValidationCodeController - Validación de códigos de seguridad
👥 GESTIÓN DE CLIENTES
- CustomersController - Operaciones CRUD de clientes
- MiETBController - Gestión específica de usuarios MiETB
- MultiUserController - Gestión de múltiples usuarios
📋 GESTIÓN DE ÓRDENES Y PROCESOS
- OrdersController - Gestión general de órdenes
- SaleOrderController - Órdenes de venta
- PRCHController - Procesos de portabilidad (PRCH)
- ASERController - Agenda de servicios (ASER)
- SVAController - Servicios de valor agregado
⚙️ GESTIÓN DE SERVICIOS
- ServicesController - Operaciones de servicios móviles/fijos
- Soporte1NController - Soporte técnico 1N
- HelpCenterController - Centro de ayuda y soporte
💰 FACTURACIÓN Y PAGOS
- BillController - Gestión de facturas
- PaymentGatewayController - Gateway de pagos
- PayUController - Integración PayU
- BancolombiaController - Integración bancaria
- ScheduledPaymentsController - Pagos programados
📞 ATENCIÓN Y SOPORTE
- PQRController - Gestión de PQRs (Peticiones, Quejas, Reclamos)
- SupportController - Soporte general
- IVRController - Integración con IVR
- WhatsAppController - Integración WhatsApp
- MaxController - Integración con Max
🛒 COMERCIAL Y CATÁLOGO
- CommercialCatalogController - Catálogo comercial
- ProductCatalogController - Catálogo de productos
- KioskosController - Gestión de kioskos
- KioscosController - Operaciones de kioscos
🔗 INTEGRACIONES EXTERNAS
- SalesForceController - Integración Salesforce
- ScrapingController - Web scraping
- ApiGatewayController - Gateway de APIs externas
📊 REPORTES Y DOCUMENTOS
- PdfGeneratorController - Generación de PDFs
- DocumentManagerController - Gestión de documentos
- CarruselController - Gestión de carruseles
⚙️ UTILIDADES Y CONFIGURACIÓN
- ParametersController - Gestión de parámetros
- NotificationsController - Sistema de notificaciones
- MailboxController - Gestión de buzones
- RetentionsController - Gestión de retenciones
📱 SERVICIOS ESPECIALIZADOS
- FamilyAndFriendsController - Familia y amigos
- SpendResourcesController - Gestión de recursos
- BSEController - Servicios BSE
📈 ANÁLISIS Y MONITOREO
- HomeController - Dashboard y monitoreo
- DocsController - Documentación
- SwaggerController - Documentación API
Sistemas Integrados
Sistema | Propósito | Tipo | Descripción |
---|---|---|---|
MongoDB Service | Gestión de datos operativos | Negocio | Almacenamiento y consulta de datos |
Oracle Service | Procesos de negocio y soporte | Negocio | Procesamiento de órdenes y operaciones |
IVR Service | Integración de voz y telefonía | Experiencia | Plataforma de atención telefónica |
Service-PAPI | Servicios de negocio internos | Negocio | Procesos internos de ETB |
Billing Service | Facturación y pagos | Negocio | Procesamiento de facturación y cobros |
ETB MDM | Gestión de datos maestros | Datos | Centralización de información clave |
Support Service | Soporte y atención | Soporte | Gestión de tickets y soporte técnico |
Remedy SAPI | Integración Remedy | Soporte | Sistema de gestión de incidencias |
SAP SAPI | Integración SAP | Negocio | Procesos de negocio SAP |
Common SAPI | Servicios comunes | Utilidad | Utilidades y servicios compartidos |
Salesforce Service | CRM y gestión de clientes | Negocio | Gestión de relaciones con clientes |
LISIM Service | Validación de identidad | Seguridad | Validación de códigos y autenticación |
DirectTV Service | Servicios de televisión | Entretenimiento | Gestión de servicios de TV |
PayU Service | Procesamiento de pagos | Financiero | Gateway de pagos online |
Wompi Service | Pagos digitales | Financiero | Procesamiento de transacciones digitales |
Flujos de Datos
BotServices interactúa con múltiples sistemas externos para cumplir sus funciones. Consulta el diagrama Mermaid de flujos de datos para visualizar las dependencias y relaciones.
graph LR
A[BotServices API] --> B[MongoDB Service]
A --> C[Oracle Service]
A --> D[IVR Service]
A --> E[Service-PAPI]
A --> F[Audits Service]
A --> G[Billing Service]
A --> H[ETB MDM]
A --> I[Support Service]
A --> J[Remedy SAPI]
A --> K[SAP SAPI]
A --> L[Common SAPI]
A --> M[Salesforce Service]
A --> N[LISIM Service]
A --> O[DirectTV Service]
A --> P[PayU Service]
A --> Q[Wompi Service]
B --> R[(MongoDB)]
C --> S[(OracleDB)]
D --> T[(IVR DB)]
E --> U[(Service DB)]
F --> V[(Audits DB)]
G --> W[(Billing DB)]
H --> X[(MDM DB)]
I --> Y[(Support DB)]
J --> Z[(Remedy DB)]
K --> AA[(SAP DB)]
L --> BB[(Common DB)]
M --> CC[(Salesforce)]
N --> DD[(LISIM DB)]
O --> EE[(DirectTV DB)]
P --> FF[(PayU DB)]
Q --> GG[(Wompi DB)]
classDef main fill:#e3f2fd,stroke:#1565c0,stroke-width:3px
classDef ext fill:#fce4ec,stroke:#ad1457,stroke-width:2px
classDef db fill:#f1f8e9,stroke:#33691e,stroke-width:2px
class A main
class B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q ext
class R,S,T,U,V,W,X,Y,Z,AA,BB,CC,DD,EE,FF,GG db
Endpoints por Categorías
🔐 Autenticación y Seguridad
POST /api/mietb-api/v1/authenticate
POST /api/mietb-api/v1/authenticatenetwork
POST /api/mietb-api/v1/register
POST /api/mietb-api/v1/registernetwork
POST /api/mietb-api/v1/update
POST /api/mietb-api/v1/updatepassword
POST /api/mietb-api/v1/updateusername
POST /api/mietb-api/v1/delete
POST /api/mietb-api/v1/logout
POST /api/mietb-api/v1/linkchangepassword
👥 Gestión de Clientes
POST /api/customers/v1/get
POST /api/customers/v1/createcontactphone
POST /api/customers/v1/enrollvalidationcode
POST /api/customers/v1/getformconfronta
POST /api/customers/v1/getpendinginvoices
POST /api/customers/v1/habeasdata
POST /api/customers/v1/identityvalidation
POST /api/customers/v1/mecna
POST /api/customers/v1/replyformconfronta
POST /api/customers/v1/setcontact
POST /api/customers/v1/settyc
POST /api/customers/v1/update
POST /api/customers/v1/validatecodelsim
GET /api/mietb-api/v1/get
POST /api/mietb-api/v1/multiuser/create
📋 Gestión de Órdenes
POST /api/orders/v1/agendaavailable
POST /api/orders/v1/cancelorder
POST /api/orders/v1/createchangenumber
POST /api/orders/v1/executechangenumber
POST /api/orders/v1/get
POST /api/orders/v1/relocate
POST /api/orders/v1/rescheduleorder
POST /api/orders/v1/updatedate
POST /api/orders/v1/updateschedule
GET /api/mietb-api/v1/orders
⚙️ Gestión de Servicios
POST /api/services/v1/activesimcard
POST /api/services/v1/balancetransfer
POST /api/services/v1/buylego
POST /api/services/v1/changeplan
POST /api/services/v1/getcontract
POST /api/services/v1/getbalance
POST /api/services/v1/getexpense
POST /api/services/v1/getinvoices
POST /api/services/v1/getrecharges
POST /api/services/v1/recharge
POST /api/services/v1/reconexion
POST /api/services/v1/registerdevice
POST /api/services/v1/requestinvoice
POST /api/services/v1/suspendbytheft
POST /api/services/v1/suspendvoluntarily
POST /api/services/v1/sva
POST /api/services/v1/update
POST /api/services/v1/validateimei
GET /api/mietb-api/v1/services
💰 Facturación y Pagos
POST /api/bill/v1/get
POST /api/mietb-api/v1/paymentgateway/create
POST /api/mietb-api/v1/paymentgateway/get
POST /api/mietb-api/v1/paymentgateway/getbillpayment
POST /api/mietb-api/v1/scheduledpayments/get
POST /api/mietb-api/v1/scheduledpayments/inactive
POST /api/mietb-api/v1/scheduledpayments/insert
GET /api/mietb-api/v1/invoices/pending
📞 Atención y Soporte
POST /api/pqr/v1/agenda
POST /api/pqr/v1/agendaavailable
POST /api/pqr/v1/create
POST /api/pqr/v1/get
POST /api/pqr/v1/reagenda
POST /api/pqr/v1/update
GET /api/mietb-api/v1/pqrs
🛒 Comercial y Catálogo
POST /api/mietb-api/v1/catalog
POST /api/mietb-api/v1/commercialcatalog
POST /api/mietb-api/v1/commercialcatalog/filter
📱 Servicios Especializados
POST /api/mietb-api/v1/familyandfriends/create
POST /api/mietb-api/v1/familyandfriends/get
POST /api/mietb-api/v1/familyandfriends/update
🔗 Procesos Especializados
ASER (Agenda de Servicios)
POST /api/mietb-api/v1/aser/agendaavailable
POST /api/mietb-api/v1/aser/confirmagenda
POST /api/mietb-api/v1/aser/getcode
POST /api/mietb-api/v1/aser/getquestions
POST /api/mietb-api/v1/aser/pending
POST /api/mietb-api/v1/aser/respondcode
POST /api/mietb-api/v1/aser/respondquestions
POST /api/mietb-api/v1/aser/validate
PRCH (Portabilidad)
POST /api/mietb-api/v1/prch/agendaavailable
POST /api/mietb-api/v1/prch/confirmagenda
POST /api/mietb-api/v1/prch/create
POST /api/mietb-api/v1/prch/filter
POST /api/mietb-api/v1/prch/getcode
POST /api/mietb-api/v1/prch/getquestions
POST /api/mietb-api/v1/prch/pending
POST /api/mietb-api/v1/prch/respondcode
POST /api/mietb-api/v1/prch/respondquestions
POST /api/mietb-api/v1/prch/update
SVA (Servicios de Valor Agregado)
POST /api/mietb-api/v1/sva/agendaavailable
POST /api/mietb-api/v1/sva/create
POST /api/mietb-api/v1/sva/getcode
POST /api/mietb-api/v1/sva/getquestions
POST /api/mietb-api/v1/sva/init
POST /api/mietb-api/v1/sva/respondcode
POST /api/mietb-api/v1/sva/respondquestions
Soporte 1N
POST /api/mietb-api/v1/soporte1n/getdevicestate
POST /api/mietb-api/v1/soporte1n/getequipments
POST /api/mietb-api/v1/soporte1n/getguestnetworks
POST /api/mietb-api/v1/soporte1n/getnetworks
POST /api/mietb-api/v1/soporte1n/normalizeinternet
POST /api/mietb-api/v1/soporte1n/restartparentalcontrol
POST /api/mietb-api/v1/soporte1n/restartont
POST /api/mietb-api/v1/soporte1n/setdevicestate
POST /api/mietb-api/v1/soporte1n/setwifigueststate
POST /api/mietb-api/v1/soporte1n/setwifiname
POST /api/mietb-api/v1/soporte1n/setwifipassword
POST /api/mietb-api/v1/soporte1n/setwifistate
POST /api/mietb-api/v1/soporte1n/validatetv
⚙️ Utilidades y Otros
GET /api/mietb-api/v1/widget
POST /api/mietb-api/v1/widget
DELETE /api/mietb-api/v1/widget/delete
POST /api/mietb-api/v1/qualifyexperience
POST /api/mietb-api/v1/setregistertype
POST /api/mietb-api/v1/validateimei
POST /api/mietb-api/v1/interaction
Ejemplo de Flujo Completo
Consulta el diagrama Mermaid de secuencia para ver el flujo típico de una operación:
sequenceDiagram
participant Client as Cliente/API Consumer
participant Gateway as BotServices API Gateway
participant Controller as Controller Layer
participant Business as Business Layer
participant DataAccess as Data Access Layer
participant External as Servicio Externo
participant DB as Base de Datos
Client->>Gateway: HTTP Request (ej: POST /api/mietb-api/v1/authenticate)
Gateway->>Gateway: JWT Authentication
Gateway->>Gateway: Logging Inicial
Gateway->>Controller: Route to Controller
Controller->>Controller: Validación y parsing
Controller->>Business: Ejecutar lógica de negocio
Business->>Business: Transformación y reglas
Business->>DataAccess: Llamada a cliente de servicio
DataAccess->>External: HTTP/API Call
External->>DB: Operación en base de datos
DB-->>External: Respuesta de datos
External-->>DataAccess: Respuesta servicio
DataAccess-->>Business: Datos procesados
Business->>Business: Formateo de respuesta y manejo de errores
Business-->>Controller: Respuesta formateada
Controller->>Controller: Validación de respuesta
Controller-->>Gateway: Respuesta final
Gateway->>Gateway: Logging asíncrono
Gateway-->>Client: HTTP Response
Seguridad y Autenticación
JWT Authentication
- JWT_SECRET_KEY: Clave secreta para generación de tokens
- JWT_AUDIENCE_TOKEN: URL de audiencia del token
- JWT_ISSUER_TOKEN: URL del emisor del token
- JWT_EXPIRE_MINUTES: Tiempo de vida del token (30 minutos)
- JWT_SYSTEMS: Sistemas que tienen activa la validación JWT (MIETB, TIENDA)
Cifrado de Datos
- EXTERNAL_SECURITY_KEY: Llave de cifrado para requests externos
- INTERNAL_SECURITY_KEY: Llave de cifrado para requests internos
- MD5_KEY_SECURITY: Llave de seguridad MD5
Configuración y Despliegue
Requisitos Previos
- .NET Framework 4.8
- Visual Studio 2019 o superior
- Azure Subscription (para servicios en la nube)
- TFS
Variables de Entorno Principales
- MONGO_CONNECTIONSTRING_MDM: Conexión a MongoDB MDM
- MONGO_CONNECTIONSTRING_AUTOGESTION: Conexión a MongoDB Autogestión
- URL_MIETB: URL del servicio MiETB
- URL_MICROFRONTS: URL de Microfronts
- STORA_CONNECTION_STRING: Conexión a Azure Storage
- SALESFORCE_USER/PASSWORD: Credenciales Salesforce
- LISIM_USER/PASSWORD: Credenciales LISIM
Monitoreo y Logging
- Application Insights: Telemetría y monitoreo
- Log Analytics: Análisis de logs
- AUDITORIA_SERVICE: Auditoría de servicios (INACTIVO/ACTIVO)
- AUDITORIA_MONGO: Auditoría directa en MongoDB (ACTIVO)