Validación

El ajuste de pagos es capaz de validación en diferentes niveles dependiendo de la configuración.

Validador de Tiempo de Cancelación

El propósito de este validador es determinar si queda tiempo suficiente para cancelar un pago.

Esto se presenta como un Spring Bean de clase CancellationTimeValidator.

Contiene un único método:`isItOkToCancelTransaction(String id, OffsetDateTime transactionScheduledTime). Este método primero verifica que la transacción no sea scheduled para el pasado; si lo es, devolverá `false. En segundo lugar, compara un tiempo de corte configurado con el tiempo actual. Si la hora actual se encuentra dentro del tiempo límite, entonces se considera que es demasiado tarde para cancelar la transacción y el método devolverá false. De lo contrario, devolverá true.

Para configurar la hora de corte, puede modificar el Duration en la ruta de configuración ipf.payment-adjustment.cancellation.request.allowed-time. La configuración predeterminada para esto es de 2 horas.

Validador de Componentes de Mensaje

El propósito de este validador es validar el objeto de solicitud (por ejemplo, el PaymentCancellationRequest).

Esto necesita ser inyectado como un MessageComponentValidator Spring Bean en su aplicación. Puede encontrar más información sobre este objeto en core:iso20022-model:features/validations.adoc#messagecomponentvalidator

El ValidationOptions pasó a la MessageComponentValidator.validate el método puede ser configurado como se muestra a continuación en Configuración.

Servicio de Validación de Solicitudes de Cancelación de Pago

El propósito de este validador es aplicar verificaciones específicas contra el contenido de la solicitud de cancelación mediante la comparación de campos. Los mensajes de error que este servicio devuelve demuestran las verificaciones que se están realizando. Dos ejemplos de los mensajes de error son:

  • "si payload.content.undrlyg.orgnlPmt Inf And Cxl.pmtInfCxl es verdadero, entonces payload.content. Undrlyg.orgnlPmtInfAndCxl.txInf debe estar vacío"

  • "si payload.content. Undrlyg.orgnlPmtInfAndCxl.txInf.cxlRsnInf.rsn.prtry tiene un valor, entonces payload.content.undrlyg.orgnlPmt Inf And Cxl.pmtInfCxl debe ser falso"

Este validador se introduce como un Spring Bean de clase PaymentCancellationRequestValidationService. Este Spring Bean acepta un opcional jakarta.validation. Validator como un argumento de constructor, lo que significa que puede inyectar su propio jakarta.validation. Validator Spring Bean en la aplicación para avanzar customise validación.

Puede omitir el uso de este validador configurando la ruta de configuración.ipf.payment-adjustment.cancellation.request.skipping-payment-adjustment-validation to true.

Configuración

A continuación se presentan las opciones de configuración para validar una solicitud dentro de los módulos del servidor de Ajuste de Pagos.

Property Grouping: ipf.payment-adjustment.cancellation.request

Key Description Default Value

ipf.payment-adjustment.cancellation.request.allowed-time

Used in the CancellationTimeValidator to determine if it is too late to cancel a transaction.

"2h"

ipf.payment-adjustment.cancellation.request.iso-20022-validation.business-rule-validation

Sets the applyBusinessRuleValidation field in the ValidationOptions for the MessageComponentValidator.

true

ipf.payment-adjustment.cancellation.request.iso-20022-validation.fail-if-message-rules-have-not-been-implemented

Sets the failIfMessageRulesHaveNotBeenImplemented field in the ValidationOptions for the MessageComponentValidator.

false

ipf.payment-adjustment.cancellation.request.iso-20022-validation.message-rule-validation

Sets the applyMessageRuleValidation field in the ValidationOptions for the MessageComponentValidator.

true

ipf.payment-adjustment.cancellation.request.iso-20022-validation.schema-validation

Sets the applySchemaValidation field in the ValidationOptions for the MessageComponentValidator.

true

ipf.payment-adjustment.cancellation.request.skipping-payment-adjustment-validation

When true, then PaymentCancellationRequestValidationService validation will be skipped.

false

ipf.payment-adjustment.cancellation.request.skipping-validation

When true, then MessageComponentValidator and PaymentCancellationRequestValidationService validations will be skipped.

false