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:

  1. PaymentDataSource<INIT, INSTR, TRANS> interfaz

  2. InstructionSender<INSTR> interfaz

  3. ProcessingRequestCreator<INIT, INSTR, TRANS, PAY_REQ> interfaz

  4. RequestProcessor<REQ> interfaz

  5. 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:

  1. PaymentEntriesProcessingServiceImpl, o un custom implementación de la PaymentEntriesProcessingService interfaz.

  2. InstructionPreparationServiceImpl <INIT extends PaymentInitiation<?>, INSTR extends PaymentInstruction<?>, TRANS extends PaymentTransaction<?>>, o un custom implementación de la InstructionPreparationService interfaz.

  3. InstructionProcessingCompletionServiceImpl<INIT extends PaymentInitiation<?>, INSTR extends PaymentInstruction<?>, TRANS extends PaymentTransaction<?>>, o un custom implementación del InstructionProcessingCompletionService interfaz.

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:

  1. Agregador de iniciación:`Function<List<PaymentEntry>, PaymentWarehouseInitiation>`

  2. Agregador de instrucciones:`Function<List<PaymentEntry>, PaymentWarehouseInstruction>`

  3. 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.

Importar Dependencias

Añada el payment-releaser-data-source-warehouse artefacto a su pom.xml dependencias.

<dependency>
    <groupId>com.iconsolutions.ipf.core.releaser</groupId>
    <artifactId>payment-releaser-data-source-warehouse</artifactId>
</dependency>

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);
    }
  1. El ActorSystem proporcionado por su IPF application

  2. Suministrado como un Spring Bean en el liberador de pagos-core módulo

  3. Suministrado como un Spring Bean en el liberador de pagos-core módulo

  4. Especificado arriba

  5. Especificado arriba