Cómo integrar con CSM Servicios DD
Esta página explica cómo integrar una aplicación cliente con CSM Servicios DD. Proporciona interfaces (CSMDDClient Adapter,CSMDDClient Validation Response Adapter, y CSMDDAdapter) que los clientes deben implementar para manejar varios tipos de mensajes y API flujos relacionados con el procesamiento de pagos, la liquidación y la validación de reglas del esquema dentro del CSM sistema.
CSMDDClient Adapter
El CSM El adaptador está esperando que los clientes proporcionen una implementación para `CSMDDClientAdapter:
public interface CSMDDClientAdapter {
default CompletionStage<Void> handleCollectAndSettleResponse(ReceivingContext receivingContext, CollectAndSettleResponse collectAndSettleResponse) {
throw new IconRuntimeException("Please implement the CSMDDClientAdapter's handleCollectAndSettleResponse");
}
default CompletionStage<Void> handleCancellationResponse(ReceivingContext receivingContext, ExecuteDDCancellationResponse cancellationResponse) {
throw new IconRuntimeException("Please implement the CSMDDClientAdapter's handleCancellationResponse");
}
default CompletionStage<Void> handleTechnicalResponse(ReceivingContext receivingContext, TechnicalResponse technicalResponse) {
throw new IconRuntimeException("Please implement the CSMDDClientAdapter's handleTechnicalResponse");
}
default CompletionStage<Void> handleReversalResponse(ReceivingContext receivingContext, ExecuteDDReversalResponse executeDDReversalResponse) {
throw new IconRuntimeException("Please implement the CSMDDClientAdapter's handleReversalResponse");
}
default CompletionStage<Void> handleNotifyDDRefundReturn(ReceivingContext receivingContext, NotifyDDRefundReturn notifyDDRefundReturn) {
throw new IconRuntimeException("Please implement the CSMDDClientAdapter's handleNotifyDDRefundReturn");
}
default CompletionStage<Void> handleNotifyDDRefusalReject(ReceivingContext receivingContext, NotifyDDRefusalReject notifyDDRefusalReject) {
throw new IconRuntimeException("Please implement the CSMDDClientAdapter's handleNotifyDDRefusalReject");
}
}
Al anular los métodos, el cliente puede procesar mensajes distintos de los CSM Service, para un procesamiento adicional.
| Método | API | Flujos |
|---|---|---|
handleCollectAndSettleResponse |
Direct Debit API |
Acreedor DD |
handleCancellationResponse |
Direct Debit API |
Acreedor DD |
handleTechnicalResponse |
Direct Debit API |
Acreedor DD |
handleReversalResponse |
Direct Debit API |
Acreedor DD |
handleNotifyDDRefundReturn |
Direct Debit API |
Acreedor DD |
handleNotifyDDRefusalReject |
Direct Debit API |
Acreedor DD |
CSMDDClient Validation Response Adapter
El CSM El adaptador espera que los clientes proporcionen una implementación para `CSMDDClientValidationResponseAdapter:
public interface CSMDDClientValidationResponseAdapter {
default CompletionStage<Void> handleSchemeRulesResponse(ReceivingContext receivingContext, ValidateDirectDebitSchemeRulesResponse response) {
ValidatedIsoType validatedIsoType = ValidatedIsoTypeExtractor.extract(response);
return switch (validatedIsoType) {
case PACS_003 -> handlePacs003ValidateDirectDebitSchemeRulesResponse(receivingContext, response);
case PACS_007 -> handlePacs007ValidateDirectDebitSchemeRulesResponse(receivingContext, response);
case CAMT_056 -> handleCamt056ValidateDirectDebitSchemeRulesResponse(receivingContext, response);
case PACS_008, PACS_004, PACS_002, PACS_028, CAMT_029, UNKNOWN -> handleUnexpectedDirectDebitSchemeRulesResponse(receivingContext, response);
};
}
default CompletionStage<Void> handleUnexpectedDirectDebitSchemeRulesResponse(ReceivingContext receivingContext, ValidateDirectDebitSchemeRulesResponse validateDirectDebitSchemeRulesResponse) {
return CompletableFuture.failedStage(new IconRuntimeException("Please implement the CSMDDClientValidationResponseAdapter's handleUnexpectedDirectDebitSchemeRulesResponse"));
}
default CompletionStage<Void> handlePacs003ValidateDirectDebitSchemeRulesResponse(ReceivingContext receivingContext, ValidateDirectDebitSchemeRulesResponse validateDirectDebitSchemeRulesResponse) {
return CompletableFuture.failedStage(new IconRuntimeException("Please implement the CSMDDClientValidationResponseAdapter's handlePacs003ValidationResponse"));
}
default CompletionStage<Void> handlePacs007ValidateDirectDebitSchemeRulesResponse(ReceivingContext receivingContext, ValidateDirectDebitSchemeRulesResponse validateDirectDebitSchemeRulesResponse) {
return CompletableFuture.failedStage(new IconRuntimeException("Please implement the CSMDDClientValidationResponseAdapter's handlePacs007ValidationResponse"));
}
default CompletionStage<Void> handleCamt056ValidateDirectDebitSchemeRulesResponse(ReceivingContext receivingContext, ValidateDirectDebitSchemeRulesResponse validateDirectDebitSchemeRulesResponse) {
return CompletableFuture.failedStage(new IconRuntimeException("Please implement the CSMDDClientValidationResponseAdapter's handleCamt056ValidationResponse"));
}
}
Al sobrescribir los métodos, el cliente puede procesar distintos ValidateDirectDebitSchemeRuleResponse messages from the CSM Service. Clients can choose to implement the ISO type-specific handler methods or override default handle Scheme Rules Response() método.
CSM Proyecto Inicial del Cliente
La siguiente dependencia de maven es un proyecto inicial e incluye código base que acelerará la integración de una aplicación cliente con un CSM servicio. Este es el método preferido y facilita las cosas. Sin embargo, no es técnicamente necesario utilizarlo.
<dependency>
<groupId>com.iconsolutions.ipf.payments.csm</groupId>
<artifactId>csm-client-starter-all</artifactId>
</dependency>
CSMDDAdapter
Cuando el csm-client-starter-all se añade la dependencia, una implementación de CSMDDAdapter también está disponible:
public interface CSMDDAdapter {
CompletionStage<DeliveryReport> collectAndSettle(CollectAndSettleRequest collectAndSettleRequest);
CompletionStage<DeliveryReport> cancellation(ExecuteDDCancellationRequest cancellationRequest);
CompletionStage<DeliveryReport> executeReversalRequest(ExecuteDDReversalRequest executeDDReversalRequest);
}
Esta interfaz puede ser inyectada en el lado del cliente y, al invocar estos métodos, se pueden enviar mensajes distintos a la CSM Service, para un procesamiento adicional.
| Método | API | Flujos |
|---|---|---|
collectAndSettle |
Direct Debit API |
Acreedor DD |
cancelación |
Direct Debit API |
Acreedor DD |
executeReversalRequest |
Direct Debit API |
Acreedor DD |