Ajuste de Pago
Los artefactos de Ajuste de Pago contienen un conjunto de Conectores para permitir que una aplicación emisora se conecte con sus aplicaciones de procesamiento de ajustes de pago, así como para realizar una validación configurable en las solicitudes de ajuste.
Los artefactos de ajuste de pago por sí solos no son suficientes para tener un servicio de ajuste de pago funcional. Los artefactos proporcionan conectividad y validación; sin embargo, la implementación no está definida. Una vez que haya configurado (consulte Introducción), deberá considerar cómo implementará un servicio de Ajuste de Pagos.
Una interfaz de PaymentAdjustmentPort es proporcionado por todos los Conectores de Servidor.
Esto tiene un único método de process(PaymentCancellationRequest).
Deberá implementar esta interfaz y, en la implementación, integrar el punto de entrada a su flujo de Ajuste de Pagos.
Una implementación de ejemplo de PaymentAdjustmentPort--MPS-objetos generados InitiateCancelTransactionInput y PaymentAdjustmentDomain para ilustrar cómo podría integrar esto en un flujo.
import com.iconsolutions.ipf.payments.adjustment.server.common.PaymentAdjustmentPort;
import com.iconsolutions.ipf.payments.api.model.PaymentCancellationRequest;
import lombok.extern.slf4j.Slf4j;
import paymentadjustment.domain.PaymentAdjustmentDomain;
import paymentadjustment.inputs.InitiateCancelTransactionInput;
import java.util.concurrent.CompletionStage;
@Slf4j
public class PaymentAdjustmentAdapter implements PaymentAdjustmentPort {
@Override
public CompletionStage<Void> process(PaymentCancellationRequest paymentCancellationRequest) {
var processingContext = paymentCancellationRequest.getProcessingContext();
var cancelTransactionInput = new InitiateCancelTransactionInput
.Builder(processingContext.getUnitOfWorkId().getValue())
.withCustomerPaymentCancellationRequest(paymentCancellationRequest.getPayload().getContent())
.withProcessingContext(paymentCancellationRequest.getProcessingContext())
.build();
return PaymentAdjustmentDomain.initiation()
.handle(cancelTransactionInput)
.thenAccept(done -> log.info("Completed cancel transaction flow with id: {}", cancelTransactionInput.getId()));
}
}