Biblioteca del Cliente
Esta sección le guiará a través de cómo conectarse a un Liberador de Pagos externo a través de HTTP. La guía para configurar su Java aplicación con el Liberador de Pagos expuesto como un HTTP API is aquí.
Paso 1: Agregue la dependencia
Añada el ipf-payment-releaser-api-client-connector-http artefacto a su pom.xml dependencias.
<dependency>
<groupId>com.iconsolutions.ipf.core.releaser</groupId>
<artifactId>ipf-payment-releaser-api-client-connector-http</artifactId>
</dependency>
Paso 2: Configurar
La API las operaciones tienen propiedades configurables, a saber, el host y el port.
La configuración de referencia proporciona estos como localhost y 8080 respectivamente.
Para su implementación, deberá anular estas propiedades.
Además, puede anular el resiliency-settings.
Estos son los ajustes estándar de resiliencia del Conector que se encuentran en Configuración del Conector.
ipf.payment-releaser-api.connector {
http.client {
host = "localhost"
port = "8080"
}
resiliency-settings {
minimum-number-of-calls = 100
reroute-messages-on-failure = false
}
}
Paso 3: Conectar Obligatorio Spring Beans
Se requiere que tenga un Spring Bean presente en su Java aplicación de:
-
com.iconsolutions.ipf.core.messagelogger. MessageLogger -
akka.actor. ClassicActorSystemProvider
Paso 4: Libere una Instrucción(/Lote) a través de la Biblioteca del Cliente
Su aplicación ya está lista para llamar al externo HTTP API utilizando la Biblioteca del Cliente.
Puede liberar una Instrucción de pago(/Lote) utilizando el releaseInstructionClientPort Spring Bean que fue introducido por el Maven dependency en el Paso 1 y llamando a los métodos respectivos en la clase.
| La liberación de una instrucción de pago solo funcionará si ya ha guardado la instrucción de pago en su Fuente de Datos de Pago, ya que la aplicación solo puede liberar lo que puede recuperar. |
Estos métodos están documentados en el releaseInstructionClientPort interfaz.
package com.iconsolutions.ipf.releaser.api.client.port;
import com.iconsolutions.ipf.core.connector.api.Response;
import com.iconsolutions.ipf.core.shared.domain.context.ProcessingContext;
import com.iconsolutions.ipf.core.shared.domain.context.SupportingContext;
import jakarta.validation.constraints.NotNull;
import java.util.concurrent.CompletionStage;
public interface ReleaseInstructionClientPort {
default CompletionStage<Response<Void>> releaseInstruction(
@NotNull ProcessingContext processingContext,
@NotNull String instructionUnitOfWorkID) {
return releaseInstruction(processingContext, SupportingContext.empty(), SupportingContext.empty(), instructionUnitOfWorkID);
}
CompletionStage<Response<Void>> releaseInstruction(
@NotNull ProcessingContext processingContext,
@NotNull SupportingContext supportingContext,
@NotNull SupportingContext supportingDataForReleaseOperation,
@NotNull String instructionUnitOfWorkID);
}
A continuación se proporciona un ejemplo de guardar una Entrada de Pago:
package com.iconsolutions.ipf.releaser.api.client.connector.http;
import com.iconsolutions.ipf.core.connector.api.Response;
import com.iconsolutions.ipf.core.releaser.model.SupportingBusinessDataMapForReleaseOperation;
import com.iconsolutions.ipf.core.shared.domain.context.ProcessingContext;
import com.iconsolutions.ipf.core.shared.domain.context.UnitOfWorkId;
import com.iconsolutions.ipf.releaser.api.client.port.ReleaseInstructionClientPort;
import lombok.RequiredArgsConstructor;
import java.util.concurrent.CompletionStage;
@RequiredArgsConstructor
public class ExampleReleaseViaConnector {
private final ReleaseInstructionClientPort releaseInstructionClientPort;
public CompletionStage<Response<Void>> releaseInstructionViaHttp(
ProcessingContext processingContext,
SupportingContext supportingContext,
SupportingContext supportingDataForReleaseOperation,
UnitOfWorkId instructionUnitOfWorkID) {
return releaseInstructionClientPort
.releaseInstruction(processingContext, supportingContext, supportingDataForReleaseOperation, instructionUnitOfWorkID.getValue());
}
}