Muestra las diferencias entre dos versiones de la página.
| Próxima revisión | Revisión previa | ||
|
ada:sicoferp:rentas:herramientas:ws.recaudo [2026/07/16 12:18] 192.168.175.156 creado |
ada:sicoferp:rentas:herramientas:ws.recaudo [2026/07/16 13:45] (actual) 192.168.175.156 |
||
|---|---|---|---|
| Línea 1: | Línea 1: | ||
| - | Servicio integracion Consulta y Recaudo | + | * Servicio integracion Consulta y Recaudo *. |
| | | ||
| - | Este documento detalla la especificación técnica para la integración con el servicio de consulta de facturas. | + | Este documento detalla la especificación técnica para la integración con el servicio de consulta de facturas . |
| | | ||
| - | ## 1. Información General | + | 1. Información General |
| - | * **Nombre del Servicio:** `ConsultaFacturaServlet` | + | ** Nombre del Servicio:** `ConsultaFacturaServlet` |
| - | * **Endpoint:** `/factura/consulta` | + | ** Endpoint:** `/factura/consulta` |
| - | * **Método:** `POST` | + | ** Método:** `POST` |
| - | * **Content-Type:** `application/json; charset=UTF-8` | + | ** Content-Type:** `application/json; charset=UTF-8` |
| - | * **Descripción:** Verifica la existencia, integridad y estado de una factura (vencimiento, pagos previos, anulación) antes de permitir un recaudo. | + | ** Descripción:** Verifica la existencia, integridad y estado de una factura (vencimiento, pagos previos, anulación) antes de permitir un recaudo. |
| - | --- | ||
| - | ## 2. Estructura de la Petición (Request) | + | |
| + | 2. Estructura de la Petición (Request) | ||
| El servicio espera un cuerpo JSON con los siguientes campos obligatorios: | El servicio espera un cuerpo JSON con los siguientes campos obligatorios: | ||
| Línea 24: | Línea 24: | ||
| | `valor` | String | Sí | Valor de la factura (Debe ser un número mayor a 0). | | | `valor` | String | Sí | Valor de la factura (Debe ser un número mayor a 0). | | ||
| - | ### Ejemplo de Request JSON: | + | |
| - | ```json | + | Ejemplo de Request JSON: |
| { | { | ||
| "usuario": "ws_recaudo", | "usuario": "ws_recaudo", | ||
| Línea 32: | Línea 33: | ||
| "valor": "250000" | "valor": "250000" | ||
| } | } | ||
| - | ``` | ||
| - | --- | ||
| - | ## 3. Estructura de la Respuesta (Response) | + | 3. Estructura de la Respuesta (Response) |
| El servicio retorna un objeto JSON con el resultado de la validación y codificación `UTF-8`. | El servicio retorna un objeto JSON con el resultado de la validación y codificación `UTF-8`. | ||
| - | ### 3.1. Éxito (Código 200) | + | 3.1. Éxito (Código 200) |
| - | ```json | + | |
| { | { | ||
| "codigo": 200, | "codigo": 200, | ||
| "mensaje": "La factura existe y se encuentra disponible para pago." | "mensaje": "La factura existe y se encuentra disponible para pago." | ||
| } | } | ||
| - | ``` | ||
| - | ### 3.2. Errores de Cliente (Códigos 4xx) | + | |
| + | 3.2. Errores de Cliente (Códigos 4xx) | ||
| | Código | Mensaje | Razón | | | Código | Mensaje | Razón | | ||
| | :--- | :--- | :--- | | | :--- | :--- | :--- | | ||
| - | | **400** | "La petición no contiene información." | Cuerpo del POST vacío. | | + | | **400** | "La petición no contiene información." | Falta datos en el json. | |
| - | | **400** | "El JSON recibido no es válido." | Error de sintaxis en el JSON enviado. | | + | | **415** | "El JSON recibido no es válido." | Error de sintaxis en el JSON enviado. | |
| | **400** | "No se han especificado..." | Faltan campos obligatorios en el JSON. | | | **400** | "No se han especificado..." | Faltan campos obligatorios en el JSON. | | ||
| - | | **400** | "El campo 'consecutivo/valor' debe ser mayor que cero." | Validación de negocio: los números deben ser positivos. | | + | | **412** | "El campo 'consecutivo/valor' debe ser mayor que cero." | Validación de negocio: los números deben ser positivos. | |
| | **401** | "El usuario no esta autorizado..." | Credenciales inválidas o estado inactivo. | | | **401** | "El usuario no esta autorizado..." | Credenciales inválidas o estado inactivo. | | ||
| | **404** | "No se encontró una factura asociada..." | Factura inexistente o el valor no coincide con la base de datos. | | | **404** | "No se encontró una factura asociada..." | Factura inexistente o el valor no coincide con la base de datos. | | ||
| Línea 61: | Línea 60: | ||
| | **422** | "La factura se encuentra vencida" | La fecha de vencimiento es anterior a la fecha actual. | | | **422** | "La factura se encuentra vencida" | La fecha de vencimiento es anterior a la fecha actual. | | ||
| - | ### 3.3. Errores de Servidor (Código 500) | + | 3.3. Errores de Servidor (Código 500) |
| - | ```json | + | |
| { | { | ||
| "codigo": 500, | "codigo": 500, | ||
| "mensaje": "Error interno." | "mensaje": "Error interno." | ||
| } | } | ||
| - | ``` | ||
| - | --- | ||
| - | ## 4. Lógica de Negocio y Validaciones Actualizadas | + | 4. Lógica de Negocio y Validaciones Actualizadas |
| 1. **Validación Numérica:** Se han incorporado reglas estrictas para que `consecutivo` y `valor` sean cadenas que representen números mayores a cero. | 1. **Validación Numérica:** Se han incorporado reglas estrictas para que `consecutivo` y `valor` sean cadenas que representen números mayores a cero. | ||
| Línea 79: | Línea 76: | ||
| - | --- | ||
| - | ## 5. Reglas de Negocio Aplicadas | + | 5. Reglas de Negocio Aplicadas |
| 1. **Seguridad:** Validación de acceso idéntica al proceso de recaudo (MD5). | 1. **Seguridad:** Validación de acceso idéntica al proceso de recaudo (MD5). | ||
| Línea 90: | Línea 86: | ||
| 4. **Validación de Fecha:** Se comprueba que la factura no haya superado su fecha de vencimiento (`fecha_vencimiento`). | 4. **Validación de Fecha:** Se comprueba que la factura no haya superado su fecha de vencimiento (`fecha_vencimiento`). | ||
| - | --- | + | |
| | | ||
| - | + | * Servicio Recaudo. | |
| Este documento detalla la especificación técnica para la integración con el servicio de recaudo de facturas. | Este documento detalla la especificación técnica para la integración con el servicio de recaudo de facturas. | ||
| - | ## 1. Información General | + | 1. Información General |
| * **Nombre del Servicio:** `RecaudoFacturaServlet` | * **Nombre del Servicio:** `RecaudoFacturaServlet` | ||
| - | * **Endpoint:** `/factura_recaudo` | + | * **Endpoint:** `/factura/recaudo` |
| * **Método:** `POST` | * **Método:** `POST` | ||
| * **Content-Type:** `application/json; charset=UTF-8` | * **Content-Type:** `application/json; charset=UTF-8` | ||
| * **Descripción:** Servicio encargado de validar, procesar y generar comprobante y notificación de pago para una factura específica en el sistema. | * **Descripción:** Servicio encargado de validar, procesar y generar comprobante y notificación de pago para una factura específica en el sistema. | ||
| - | --- | ||
| - | ## 2. Estructura de la Petición (Request) | + | |
| + | 2. Estructura de la Petición (Request) | ||
| El servicio espera un objeto JSON con los siguientes atributos: | El servicio espera un objeto JSON con los siguientes atributos: | ||
| Línea 119: | Línea 115: | ||
| | `banco` | String | Sí | Código del banco que procesa la transacción. | | | `banco` | String | Sí | Código del banco que procesa la transacción. | | ||
| - | ### Ejemplo de Request: | + | Ejemplo de Request: |
| - | ```json | + | |
| { | { | ||
| "usuario": "ws_recaudo_dav", | "usuario": "ws_recaudo_dav", | ||
| Línea 128: | Línea 124: | ||
| "codbanco": "012" | "codbanco": "012" | ||
| } | } | ||
| - | ``` | ||
| - | --- | ||
| - | ## 3. Estructura de la Respuesta (Response) | + | 3. Estructura de la Respuesta (Response) |
| El servicio siempre retorna un objeto JSON con un código de estado interno y un mensaje descriptivo. | El servicio siempre retorna un objeto JSON con un código de estado interno y un mensaje descriptivo. | ||
| - | ### 3.1. Éxito (Código 201) | + | 3.1. Éxito (Código 201) |
| - | ```json | + | |
| { | { | ||
| "codigo": 201, | "codigo": 201, | ||
| Línea 143: | Línea 137: | ||
| "comprobante": 1234567 | "comprobante": 1234567 | ||
| } | } | ||
| - | ``` | ||
| - | ### 3.2. Errores Comunes | + | |
| + | 3.2. Errores Comunes | ||
| | Código | Mensaje | Razón | | | Código | Mensaje | Razón | | ||
| | :--- | :--- | :--- | | | :--- | :--- | :--- | | ||
| - | | **400** | "La petición no contiene información." | El cuerpo del POST está vacío. | | + | |
| + | |||
| + | | **415** | "El JSON recibido no es válido." | Error de sintaxis en el JSON enviado. | | ||
| + | | **412** | "El campo 'consecutivo/valor' debe ser mayor que cero." | Validación de negocio: los números deben ser | ||
| + | | **400** | "La petición no contiene información." | Falta datos en el json. | | ||
| | **401** | "El usuario no esta autorizado..." | Credenciales inválidas o estado inactivo. | | | **401** | "El usuario no esta autorizado..." | Credenciales inválidas o estado inactivo. | | ||
| | **404** | "No se encontró un banco..." | El código de banco no existe en el maestro. | | | **404** | "No se encontró un banco..." | El código de banco no existe en el maestro. | | ||
| Línea 157: | Línea 155: | ||
| | **500** | "Error interno." | Error inesperado en el servidor o base de datos. | | | **500** | "Error interno." | Error inesperado en el servidor o base de datos. | | ||
| - | --- | ||
| - | ## 4. Flujo de Validaciones y Reglas de Negocio | + | |
| + | 4. Flujo de Validaciones y Reglas de Negocio | ||
| 1. **Autenticación:** Validación contra la tabla `ADMINISTRACION.usuario_servicios` con cifrado MD5. | 1. **Autenticación:** Validación contra la tabla `ADMINISTRACION.usuario_servicios` con cifrado MD5. | ||
| Línea 172: | Línea 170: | ||
| * Se guarda en un log el proceso de recaudo , tabla recaudo.log_pago_factura | * Se guarda en un log el proceso de recaudo , tabla recaudo.log_pago_factura | ||
| - | --- | ||
| - | ## 5. Especificaciones Técnicas (Stack) | + | |
| + | 5. Especificaciones Técnicas (Stack) | ||
| * **Java Versión:** 6 (JDK 1.6). | * **Java Versión:** 6 (JDK 1.6). | ||
| Línea 181: | Línea 179: | ||
| * **Logs:** Implementado vía `com.ada.utilidades.Log`. | * **Logs:** Implementado vía `com.ada.utilidades.Log`. | ||
| - | --- | + | |
| > **Nota para Integradores:** | > **Nota para Integradores:** | ||
| Línea 189: | Línea 187: | ||
| **Content-Type:** `application/json;charset=UTF-8` | **Content-Type:** `application/json;charset=UTF-8` | ||
| - | --- | ||
| - | ## Parámetros de Entrada (Obligatorios) | ||
| - | ### Seguridad | + | Parámetros de Entrada (Obligatorios) |
| + | |||
| + | Seguridad | ||
| - **usuario** (string): Usuario registrado en la tabla `ADMINISTRACION.usuario_servicios` con estado activo. | - **usuario** (string): Usuario registrado en la tabla `ADMINISTRACION.usuario_servicios` con estado activo. | ||
| - **clave** (string): Contraseña del usuario (se valida con hash MD5 en base de datos). | - **clave** (string): Contraseña del usuario (se valida con hash MD5 en base de datos). | ||
| - | ### Datos de Consulta | + | Datos de Consulta |
| - **consecutivo** (string): Identificador de la factura a consultar. | - **consecutivo** (string): Identificador de la factura a consultar. | ||
| - **valor** (string): Valor de la factura que debe coincidir exactamente con el registrado en BD. Usado para validar la factura y confirmar integridad de datos. | - **valor** (string): Valor de la factura que debe coincidir exactamente con el registrado en BD. Usado para validar la factura y confirmar integridad de datos. | ||