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 debe estar cableado como Spring Beans, además de:
-
PaymentEntriesProcessingServiceImpl, o un custom implementación de laPaymentEntriesProcessingServiceinterfaz. -
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 delInstructionProcessingCompletionServiceinterfaz.
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.
Uso del 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 una implementación abstracta de la PaymentDataSource<INIT, INSTR, TRANS> interfaz como BasePaymentWarehouseDataSource.
Deberá implementar con los tipos apropiados y conectar esto como un Spring Bean.
Además, suministrando lo siguiente función de agregador es parte del procesamiento de una transacción; estos deberán ser transferidos como Spring Beans:
-
Agregador de iniciación:`Function<List<PaymentEntry>, PaymentWarehouseInitiation>`
-
Agregador de instrucciones:`Function<List<PaymentEntry>, PaymentWarehouseInstruction>`
-
Agregador de transacciones:`Function<List<PaymentEntry>, PaymentWarehouseTransaction>`
| 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 liberador de pagos-core módulo
-
Suministrado como un Spring Bean en el liberador de pagos-core módulo
-
Especificado arriba
-
Especificado arriba