CSM Service
Esta sección de la documentación se ocupa de explicar el CSM Service base, de la cual se deriva todo IPF CSM Scheme Packs se construyen. Proporciona el core interfaz,message type s y flujos soportados.
En realidad, como usuario de IPF, es más probable que esté interesado en cómo el CSM Services se construyen y comprendiendo la base desde la cual todo CSM Services extender o se implementan. Puede, por supuesto, considerar construir su propio CSM Service implementación utilizando el CSM Service base también, y esta documentación le ayudará a comenzar.
Descripción general
El objetivo de este iniciador es contener todo lo que necesita para iniciar un CSM aplicación con CSM API funcionalidad. CSM funcionalidad específica (RT1 o TIPS, por ejemplo) y la asociada send connector s y transportes siguen siendo responsabilidad del CSM aplicación
Las páginas secundarias ofrecen más detalles sobre los diversos componentes del CSM Service.
El arrancador comprende un solo core módulo que define recibir y send connector s, y módulos específicos de transporte (kafka y jms) que definen los transportes para estos conectores.
CSM Service Características
El csm api receive connector s debe ser habilitado explícitamente. Cuando están habilitados, cualquier conector relacionado (como los conectores de respuesta) también está habilitado.
En su csm aplicación, usted necesitará elegir cuál csm api características a habilitar.
| Característica | Propiedad | Descripción |
|---|---|---|
Aclarar y Liquidar Acreedor |
|
Habilita la claridad y la liquidación receive connector, y send connector s para el acreedor claro y resolver respuesta. |
Aclarar y liquidar deudor |
|
Habilita la claridad y la liquidación receive connector, y send connector s para deudor claro y resolver respuesta. |
Aclarar y Resolver Técnico |
|
Habilita la claridad y la liquidación receive connector, y send connector s para respuesta técnica. |
Aclarar y Liquidar Notifications |
|
Habilita la claridad y la liquidación receive connector, y send connector s para notifications. |
Solicitud de Estado |
|
Habilita la solicitud de estado receive connector, y la respuesta de solicitud de estado send connector. |
Solicitud de Estado del Deudor |
|
Habilita la solicitud de estado del deudor send connector. |
Solicitud de Estado del Acreedor |
|
Habilita la solicitud de estado de acreedor send connector. |
Recibir Pago |
|
Habilita la recepción de pagos y la recepción de pagos liquidados.send connector s, y la respuesta de pago recibida receive connector. |
Revocación - Devolución - Resultado de la Investigación del Acreedor |
|
Habilita la RRequest receive connector, y send connector s para el acreedor RResponse. |
Revocación - Devolución - Resultado de la Investigación del Deudor |
|
Habilita la RRequest receive connector, y send connector s para deudor RResponse. |
Retorno de Recall - Uso de temas de CT |
|
Apaga los receptores del lado del cliente para que los mensajes rrr sean gestionados por los temas de deudor o acreedor. Depende de que la configuración esté correctamente asignada para el cliente y el servidor. El rrr-deudor utilizará el tema de acreedor, y el rrr-acreedor utilizará el tema de deudor. |
Débito Directo (Acreedor) |
|
Habilita el envío de domiciliación bancaria y receive connector s (recolectar y liquidar pacs. 003, cancelación camt. 056, reversión pacs. 007) |
Respuesta Técnica de Domiciliación Bancaria |
|
Habilita el receive connector y send connector s para respuestas técnicas de domiciliación bancaria. |
Puede usar el proporcionado anotaciones para hacer su beans condicional a estas características.
La siguiente configuración le proporcionará una implementación diferente de @ConditionOn-Feature-Enabled``SomeType cuando la opción de borrar y liquidar está habilitada.
@Bean
@ConditionalOnClearAndSettleEnabled
SomeType clearAndSettleVersionOfSomeType() {
return new ClearAndSettleSomeType();
}
@Bean
@ConditionalOnMissingBean
SomeType genericVersionOfSomeType() {
return new GenericSomeType();
}
Las anotaciones disponibles son:
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE, ElementType.METHOD})
@ConditionalOnProperty(name = "csm.clear-and-settle.debtor.enabled", havingValue = "true")
public @interface ConditionalOnClearAndSettleDebtorEnabled {
}
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE, ElementType.METHOD})
@ConditionalOnProperty(name = "csm.clear-and-settle.creditor.enabled", havingValue = "true")
public @interface ConditionalOnClearAndSettleCreditorEnabled {
}
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE, ElementType.METHOD})
@ConditionalOnProperty(name = "csm.clear-and-settle.notification.enabled", havingValue = "true")
public @interface ConditionalOnClearAndSettleNotificationsEnabled {
}
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE, ElementType.METHOD})
@ConditionalOnProperty(name = "csm.clear-and-settle.technical.enabled", havingValue = "true")
public @interface ConditionalOnClearAndSettleTechnicalResponseEnabled {
}
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE, ElementType.METHOD})
@ConditionalOnProperty(name = "csm.rrr.creditor.enabled", havingValue = "true")
public @interface ConditionalOnRRRCreditorEnabled {
}
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE, ElementType.METHOD})
@ConditionalOnProperty(name = "csm.rrr.debtor.enabled", havingValue = "true")
public @interface ConditionalOnRRRDebtorEnabled {
}
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
@ConditionalOnProperty(name = "csm.receive-payment.enabled", havingValue = "true")
public @interface ConditionalOnReceivePaymentEnabled {
}
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
@ConditionalOnProperty(name = "csm.status-request.enabled", havingValue = "true")
public @interface ConditionalOnStatusRequestEnabled {
}
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
@ConditionalOnExpression("${csm.status-request.enabled:false} || ${csm.status-request-creditor.enabled:false}")
public @interface ConditionalOnStatusRequestCreditorEnabled {
}
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
@ConditionalOnExpression("${csm.status-request.enabled:false} || ${csm.status-request-debtor.enabled:false}")
public @interface ConditionalOnStatusRequestDebtorEnabled {
}
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE, ElementType.METHOD})
@ConditionalOnProperty(name = "csm.rrr.using.clear-and-settle.topics", havingValue = "false", matchIfMissing = "true")
public @interface ConditionalOnRRRNotUsingCT {
}
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE, ElementType.METHOD})
@ConditionalOnProperty(name = "csm.direct-debit.creditor.enabled", havingValue = "true")
public @interface ConditionalOnDDCreditorEnabled {
}
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE, ElementType.METHOD})
@ConditionalOnProperty(name = "csm.direct-debit.technical.enabled", havingValue = "true")
@interface ConditionalOnDirectDebitTechnicalResponseEnabled {
}
Crypto
La encriptación puede ser habilitada para el csm api enviar y receive connector s. La encriptación está desactivada por defecto, y cuando se activa, se deberán proporcionar varias propiedades adicionales.
Cuando la encriptación está habilitada..
-
receive connector s descifrará las cargas útiles de la solicitud si los encabezados de transporte contienen el esquema de cifrado y el alias de la clave. Si los encabezados faltan, la carga útil se tratará como texto sin formato.
-
send connector s siempre enviará cargas útiles cifradas y completará el transport message encabezados con el esquema de cifrado y el alias de la clave.
| Propiedad | Valor por defecto | Descripción |
|---|---|---|
|
|
Cuando se establece en verdadero, será necesario definir las otras propiedades, a menos que tengan un valor predeterminado. |
|
Requerido cuando la encriptación está habilitada y no debe estar en blanco.
Ruta absoluta a un almacén de claves como |
|
|
Requerido cuando la encriptación está habilitada y no debe estar en blanco.
Por ejemplo |
|
|
Requerido cuando la encriptación está habilitada y no debe estar en blanco.
Por ejemplo |
|
|
Requerido cuando la encriptación está habilitada y no debe estar en blanco.
Identifica una clave por nombre dentro del almacén de claves proporcionado.
Por ejemplo |
|
|
|
Requerido cuando la encriptación está habilitada y no debe estar en blanco. |
|
|
Requerido cuando la encriptación está habilitada y no debe estar en blanco. |
Appendices de Cartas Muertas
Cada csm api receive connector puede tener su propia implementación de DeadLetterAppender, que puede ser utilizado para almacenar mensajes malformados en la cola de mensajes muertos.
Hay dos interfaces:`CsmCTDeadLetterAppenders` y CsmRMessageDeadLetterAppenders, que proporcionan métodos predeterminados para cada csm api receive connector.