Pagos

ProDepende de: workflows

Habilita el procesamiento de pagos con Stripe.

Sintaxis

$ vela enable payments

Opciones

  • --provider <provider> - Proveedor de pagos, por defecto stripe

El módulo de pagos crea las tablas de base de datos y el código necesarios para el procesamiento de pagos, los eventos de webhook, los recibos, los barridos y más.

Tablas de la base de datos

El módulo de pagos crea las siguientes tablas de base de datos:

stripe_products
stripe_prices

Webhooks

Los webhooks de Stripe se generan en src/routes/webhooks/stripe, con el evento de intención de pago completada incluido por defecto.

Clientes

Si la autenticación está habilitada con el comando vela enable auth, se crea un cliente de Stripe para cada usuario en el registro y los métodos de pago del usuario se pueden guardar y gestionar en la página de configuración de facturación del usuario. El cliente lo vincula el workflow link-stripe-customer, iniciado por la acción de registro con el id del usuario como clave de idempotencia, así que registrarse nunca espera a Stripe y un reintento nunca crea un segundo cliente. La página de facturación muestra un estado de preparación durante el instante que tarda.

Tablas de la base de datos

Estas tablas adicionales se crean si la autenticación está habilitada:

stripe_customers
stripe_payment_methods
transactions

Webhooks

Además del evento de intención de pago completada, el evento de método de pago adjuntado se incluye por defecto para el usuario autenticado.

Workflows

El trabajo de Stripe que no pertenece al camino de la petición se ejecuta como workflows en src/lib/workflows:

  • stripe-event - La ruta del webhook verifica la firma de cada evento y encola una ejecución por id de evento. La ejecución llama al manejador de src/routes/webhooks/stripe/handlers/dispatch.ts; un manejador que lanza un error se reintenta con espera creciente, y un reenvío del mismo evento cae en la ejecución que ya existe.
  • sync-stripe-products y sync-stripe-prices - Recurrentes cada diez minutos en sync-stripe-catalog.ts, añadiendo los productos y precios nuevos en Stripe y actualizando el resto.
  • sync-stripe-customers - Recurrente cada diez minutos cuando la autenticación está habilitada, vinculando a cualquier usuario que no haya pasado por el registro.

Todas las ejecuciones, con sus pasos y cualquier error, aparecen en Workflows, en el panel de PocketBase.