Saltar al contenido principal
Versión: 3,1

Integración

Esta guía te llevará a integrar el servicio de eventos para comenzar a recibir eventos. El servicio de eventos actualmente solo admite Apache Kafka como el intermediario de mensajes de backend.

Se asume familiaridad con Kafka y no se cubrirá cómo configurar un clúster de Kafka.

Requisitos

Anchor Platform enviará eventos al tema TRANSACTION en Kafka. El servicio de eventos consumirá eventos de este tema y los enviará a los puntos finales apropiados.

Configuración

Primero, se debe configurar el productor de Kafka del servicio de eventos utilizando la sección event.queue del archivo de configuración o configurando las variables de entorno. A continuación se presentan el conjunto de variables de entorno requeridas para configurar el productor de Kafka del servicio de eventos:

# dev.env
EVENTS_ENABLED=true
EVENTS_QUEUE_TYPE=kafka
EVENTS_QUEUE_KAFKA_BOOTSTRAP_SERVER=localhost:9092

Anchor Platform permite que se establezca un subconjunto de la configuración del cliente del productor de Kafka. Consulta el [archivo de valores predeterminados][default-values-file] para más información sobre qué está disponible. Para más información sobre la configuración del cliente del productor de Kafka, consulta la documentación de Kafka.

A continuación, se debe configurar el procesador de eventos en la sección event_processor del archivo de configuración de Anchor Platform o configurando las variables de entorno.

# dev.env
EVENT_PROCESSOR_CLIENT_STATUS_CALLBACK_ENABLED=true
EVENT_PROCESSOR_CALLBACK_API_REQUEST_ENABLED=true

Esto permitirá que el procesador de eventos comience a procesar eventos del tema TRANSACTION. En este ejemplo, el procesador de eventos enviará eventos a los puntos finales de callback del servidor cliente y del negocio.

Recibiendo Eventos

El servicio de eventos se puede usar para enviar eventos a los puntos finales de callback del servidor cliente y del negocio. El servicio de eventos enviará eventos a estos puntos finales como solicitudes HTTP POST con los datos del evento en el cuerpo de la solicitud.

Como Aplicación Cliente

Las aplicaciones cliente pueden recibir actualizaciones sobre las transacciones de sus usuarios e información del cliente. El esquema de los datos del evento dependerá del tipo de evento que se envíe.

Para recibir eventos como una aplicación cliente, necesitarás exponer URLs de callback a las que el servicio de eventos pueda enviar eventos. El servicio de eventos enviará una solicitud POST a este punto final con los datos del evento en el cuerpo de la solicitud. El esquema de los datos del evento dependerá del tipo de evento que se envíe. Anchor Platform permite que se configuren puntos finales únicos por tipo de evento.

Anchor Platform solo enviará eventos a los clientes listados en la configuración del cliente. Consulta la [documentación de configuración del cliente][clients-config] para más información.

Firma de Callback

Anchor Platform firma las solicitudes de callback que envía a las aplicaciones cliente. La firma se incluye en el encabezado Signature de la solicitud. La especificación de la firma de URL de callback se puede encontrar en las especificaciones del protocolo SEP correspondientes.

Como Servidor de Negocios

Además de las actualizaciones de estado de transacciones SEP, los servidores de negocios pueden recibir eventos sobre la creación de cuotas SEP-31 o actualizaciones de información del cliente SEP-12. El esquema de los datos del evento dependerá del tipo de evento que se envíe. Visita la documentación de la API de eventos para más información sobre el esquema de los datos del evento.

Para recibir eventos como un servidor de negocios, necesitarás exponer una URL de callback que el servicio de eventos pueda enviar eventos a. El servicio de eventos enviará una solicitud POST a este punto final con los datos del evento en el cuerpo de la solicitud.

Configuración

La API de callback del servicio de eventos se puede configurar utilizando la sección callback_api del archivo de configuración de Anchor Platform o configurando las variables de entorno.

A continuación se presenta un ejemplo de cómo configurar la API de callback del servicio de eventos con autenticación JWT:

# dev.env

# note `/callback` will not be used for event callbacks
# instead events will be sent to `http://localhost:8081/event`
# all other callbacks (rates, customer, etc.) will use the provided `/callback` root path
CALLBACK_API_BASE_URL=http://localhost:8081/callback
CALLBACK_API_AUTH_TYPE=jwt
CALLBACK_API_AUTH_JWT_EXPIRATION_MILLISECONDS=30000
CALLBACK_API_AUTH_JWT_HTTP_HEADER=Authorization
SECRET_CALLBACK_API_AUTH_SECRET="a secret for signing jwts"

A continuación se presenta un ejemplo de cómo configurar la API de callback del servicio de eventos con autenticación mediante clave API:

# dev.env
CALLBACK_API_BASE_URL=http://localhost:8081/callback
CALLBACK_API_AUTH_TYPE=api_key
CALLBACK_API_AUTH_API_KEY_HTTP_HEADER=X-Api-Key
SECRET_CALLBACK_API_AUTH_SECRET="your API key"

Esto configura la API de callback del servicio de eventos que se utilizará para enviar eventos a los puntos finales de callback del cliente y del servidor de negocios. Las siguientes son las opciones de configuración admitidas:

  • base_url: La URL base del punto final de callback del servidor de negocios.
  • secret: El secreto que se utilizará al enviar eventos al punto final de callback del servidor de negocios. Esto se utiliza para firmar el cuerpo de la solicitud cuando se habilita la autenticación JWT y es la clave API cuando se habilita la autenticación mediante clave API.
  • auth: El método de autenticación que se utilizará al enviar eventos al punto final de callback del servidor de negocios. Las siguientes son los métodos de autenticación admitidos:
    • JWT: El servicio de eventos enviará un JSON Web Token (JWT) en el encabezado Authorization de la solicitud. Las siguientes son las opciones de configuración admitidas:
      • expiration_milliseconds: El tiempo de expiración del JWT en milisegundos.
      • http_header: El encabezado en el que se enviará el JWT.
    • API_KEY: El servicio de eventos enviará una clave API en el encabezado Authorization de la solicitud. Las siguientes son las opciones de configuración admitidas:
      • http_header: El encabezado en el que se enviará la clave API.