Procesador de Entradas de Pago
Introducción
El Procesador de Entradas de Pago IPF es un componente principal, diseñado para ser parte de un Scheduled Solución de pagos. Este componente está construido de manera genérica, con el propósito de poder procesar de manera resiliente las Entradas de Pago de múltiples formas diferentes.
Actualmente es posible:
-
Liberar transacción/instrucción almacenada para la ejecución del pago
-
Cancelar transacción/instrucción almacenada
El Procesador de Entradas de Pago tiene tres funciones principales expuestas como una API:
-
Preparar Instrucción
-
Instrucción de Proceso
-
Procesar Transacción
Su función principal es recuperar los detalles de pago almacenados, crear Solicitudes de Procesamiento válidas y Liberarlas o Cancelarlas de una manera específica para el cliente.
Cómo funciona el proceso de liberación
Prepare Instrucción para la Liberación
Para prepararse para la liberación de una Instrucción (Lote), se puede llamar a esta operación. Indica que la Instrucción está lista para ser liberada y ofrece una oportunidad para que los componentes posteriores se inicialicen antes de que las transacciones instruidas sean triggered para la liberación.
Cuando prepareInstruction se llama con una Instrucción UnitOfWorkId, el sistema recuperará la Instrucción almacenada y la enviará al componente receptor definido.
Se espera que el componente de recuperación, pero no está obligado a, libere las transacciones para la Instrucción cuando esté listo.
| El acto de preparación no activa la liberación de las transacciones. |
Este método, si se utiliza, debe ser llamado con antelación a processInstruction(UnitOfWorkId, ProcessingActionType, SupportingContext).
Para liberar instructions y/o transacciones, el ProcessingActionType puede ser especificado como RELEASE.
Sin embargo, no es un requisito previo llamar a este método si no hay preparación que realizar; en este caso, el llamador puede llamar directamente a processInstruction(UnitOfWorkId, ProcessingActionType, SupportingContext).
Instrucción de Liberación (Liberación de Transacciones por Lote)
Para activar el proceso de liberación de Instrucciones (Lote), debe proporcionar el UnitOfWorkId de la Instrucción de Pago almacenada cuyas Transacciones de Pago hijas deben ser enviadas para Ejecución.
| Los detalles de pago se almacenan como Iniciación (Bulk), Instrucción (Lote) e información de pago de Transacción. |
Después de un desencadenante que contenga la Instrucción de Pago UnitOfWorkId y apropiado ProcessingActionType se recibe, el Procesador de Entradas de Pago deberá:
-
Recupere la información de Instrucción de Pago almacenada.
-
Intente recuperar la información relevante de Iniciación de Pagos almacenada si hay alguna presente.
-
Recupere toda la información relevante de la Transacción de Pago, y para cada una de ellas:
-
Enriquezca la información de la Transacción con detalles adicionales de la instrucción y la información de iniciación, así como cualquier dato de apoyo proporcionado para la ejecución.
-
Cree una Solicitud de Pago válida que represente una única Transacción de Pago.
-
Envíe la Solicitud de Pago creada al Servicio de Ejecución.
-
Almacene el progreso de la versión en el almacenamiento local para hacer un seguimiento de cuánto ha avanzado el procesamiento de cada instrucción que se está procesando.
-
-
Finalmente, envíe una notificación de finalización a la fuente de datos para permitir cualquier actividad de limpieza.
| La obtención y el procesamiento de las Transacciones de Pago relevantes pueden (y deben) realizarse en lotes de tamaño configurable para obtener un mejor rendimiento. |
Liberación de Transacción (Liberación de Transacción Única)
Para activar el proceso de liberación de la transacción, debe proporcionar el UnitOfWorkId de la Transacción de Pago almacenada que debe ser enviada para su Ejecución.
Después de un desencadenante que contenga la Transacción de Pago UnitOfWorkId y apropiado ProcessingActionType se recibe, el Procesador de Entradas de Pago deberá:
-
Recupere la información de la transacción de pago almacenada.
-
Recupere la información relevante de Instrucción de Pago almacenada.
-
Intente recuperar la información relevante de Iniciación de Pagos almacenada si existe alguna presente.
-
Utilice la información recuperada para crear una Solicitud de Pago válida que represente una única Transacción de Pago.
-
Envíe la Solicitud de Pago creada al Servicio de Ejecución.
| El Procesador de Entradas de Pago espera que una Transacción tenga una Instrucción relacionada en el almacén de datos. La información de Iniciación de Pago no es obligatoria para estar presente. Esto es necesario para crear una solicitud de pago. Vea el procesando solicitud creador Página de concepto para obtener más información sobre la creación de Solicitudes de Pago. |
Estructura
El Procesador de Entradas de Pago consiste en múltiples módulos:
-
core el módulo contiene una implementación agnóstica de datos de funcionalidad de procesamiento resiliente
-
módulo datasource que consiste en:
-
fuente de datos-api módulo que especifica el contrato para obtener información de pago
-
Módulo datasource-warehouse con implementación de referencia, proporcionando datos de pago del Almacén de Pagos.
-