Implementación
Para construir su implementación del Procesador de Entradas de Pago, deberá crear sus propias implementaciones concretas de clases e interfaces abstraídas.
Importar Dependencias
Añada el payment-releaser-core artefacto a su pom.xml dependencias.
<dependency>
<groupId>com.iconsolutions.ipf.core.releaser</groupId>
<artifactId>payment-releaser-core</artifactId>
</dependency>
Implementaciones
Las siguientes abstracciones deben ser implementadas:
-
PaymentDataSource<INIT, INSTR, TRANS>interfaz -
InstructionSender<INSTR>interfaz -
ProcessingRequestCreator<INIT, INSTR, TRANS, PAY_REQ>interfaz -
RequestProcessor<REQ>interfaz -
ProcessingStrategy<INIT, INSTR, TRANS, REQ>interfaz
| Una visión general de estas interfaces se describe en Características. |
Todo lo anterior necesita ser cableado como Spring Beans, además de:
-
PaymentEntriesProcessingServiceImpl, o un custom implementación delPaymentEntriesProcessingServiceinterfaz. -
InstructionPreparationServiceImpl <INIT extends PaymentInitiation<?>, INSTR extends PaymentInstruction<?>, TRANS extends PaymentTransaction<?>>, o un custom implementación de laInstructionPreparationServiceinterfaz. -
InstructionProcessingCompletionServiceImpl<INIT extends PaymentInitiation<?>, INSTR extends PaymentInstruction<?>, TRANS extends PaymentTransaction<?>>, o un custom implementación de laInstructionProcessingCompletionServiceinterfaz.
La implementación de un ProcessingStrategy facilita la cancelación y liberación de pagos almacenados.
Estrategia de Procesamientoproporciona orientación sobre el uso de la ProcessingActionType, y el Ejemplo de Creador de Solicitudes y Ejemplo de Procesador de Solicitudes secciones
proporcione más orientación sobre cómo podría ser la implementación de esto.
Almacén como Fuente de Datos
Esta sección detalla los pasos a seguir si usted desea utilizar el Almacén de Pagos como su fuente de datos en lugar de implementar la suya propia custom fuente de datos. Ver Fuente de Datos del Almacén de Pagos para más información.
Este módulo proporciona dos implementaciones abstractas de la PaymentDataSource<INIT, INSTR, TRANS> interfaz,AggregateEntriesWarehouseDataSource y LatestEntryWarehouseDataSource, que se comportan de manera diferente.
Para ayudarle a decidir cuál le conviene más, puede encontrar detalles adicionales en Almacenamiento y Lectura de Información de Pago página.
Uso de la Fuente de Datos de Entradas Agregadas
Si decide utilizar el AggregateEntriesWarehouseDataSource, deberá implementarlo con los tipos apropiados y conectar la implementación como un Spring Bean.
Además, suministrando lo siguiente funciones de agregación es parte del procesamiento de una transacción; estos deberán ser transferidos como Spring Beans:
-
Agregador de iniciación:`Function<List<PaymentEntry>, MyPaymentWarehouseInitiation>`
-
Agregador de instrucciones:`Function<List<PaymentEntry>, MyPaymentWarehouseInstruction>`
-
Agregador de transacciones:`Function<List<PaymentEntry>, MyPaymentWarehouseTransaction>`
| El agregador de Iniciación es opcional (y puede omitirse), mientras que el agregador de Instrucción y el agregador de Transacción son obligatorios. |
Conecte el Punto de Entrada
El punto de entrada al sistema es el AkkaPaymentEntriesProcessor clase que implementa el PaymentEntriesProcessor interfaz.
Debe declarar un Spring Bean de esta clase en su aplicación.
El AkkaPaymentEntriesProcessor Los argumentos del constructor son los especificados anteriormente en este documento.
@Bean
public PaymentEntriesProcessor paymentEntriesProcessor(
ActorSystem<?> actorSystem, (1)
PaymentEntryProcessorProperties paymentEntryProcessorProperties, (2)
PreparerProperties preparerProperties, (3)
InstructionPreparationService instructionPreparationService, (4)
PaymentEntriesProcessingService paymentEntriesProcessingService) { (5)
return new AkkaPaymentEntriesProcessor(
actorSystem,
paymentEntryProcessorProperties,
preparerProperties,
instructionPreparationService,
paymentEntriesProcessingService);
}
-
El ActorSystem proporcionado por su IPF application
-
Suministrado como un Spring Bean en el módulo de liberación de pagos-core
-
Suministrado como un Spring Bean en el módulo de liberación de pagos-core
-
Especificado arriba
-
Especificado arriba