payments y registra eventos de webhook verificados.
Modelo de Stripe
Configuración
Configure las claves secretas de Stripetest y live en Dashboard -> Payments -> Settings, CLI o API de administrador.
Checkout
Cree sesiones de checkout desde código frontend con el token de usuario actual de InsForge.payments.stripe_checkout_sessions usando el token de InsForge del llamador. Agregue políticas de RLS para que los usuarios solo puedan crear sesiones para sujetos a los que se les permite facturar. PostgreSQL aplica políticas SELECT a las filas devueltas por INSERT ... RETURNING y búsquedas idempotentes, por lo que los reintentos también necesitan una política SELECT coincidente para el mismo sujeto e clave de idempotencia.
Portal de facturación
Utilice el Billing Portal alojado para una asignación de cliente de Stripe existente.payments.customer_mappings existente para el sujeto. Proteja la creación del portal con RLS o una verificación de pertenencia del lado del servidor para que los usuarios no puedan abrir la configuración de facturación para un equipo u organización que no administran.
Webhooks y cumplimiento
Los webhooks de Stripe se administran automáticamente cuando el backend tiene una URL pública. InsForge escucha los eventos necesarios para mantener actualizados los intentos de checkout, clientes, suscripciones, reembolsos y proyecciones de transacciones. Stripe también recomienda cumplir con los pedidos de Checkout desde webhooks en lugar de desde la URL de éxito. En InsForge, adjunte activadores de cumplimiento apayments.webhook_events.
Pedido de eventos
Los eventos webhook se verifican y procesan de forma independiente. InsForge confirma cada fila derivada de un evento antes de marcar ese evento comoprocessed, pero Stripe no da garantía de ordenamiento entre eventos: invoice.paid puede procesarse antes de checkout.session.completed, por lo que las filas creadas por otro evento (como payments.customer_mappings) pueden no existir cuando se dispare su activador.
Para eventos de suscripción, primero resuelva el sujeto de facturación de la carga útil del evento — InsForge marca insforge_subject_type e insforge_subject_id en metadatos de suscripción en el checkout, y Stripe lo captura en facturas generadas por suscripción como parent.subscription_details.metadata. Verifique invoice.metadata a continuación, luego recurra a payments.customer_mappings (el mismo orden que InsForge usa internamente):
Sincronizar y estado del panel
La sincronización de Stripe refleja Productos, Precios, Clientes y Suscripciones. Los webhooks mantienen el estado de sesión, suscripción, cliente, reembolso y transacción a medida que Stripe emite eventos.payments.transactions es una proyección de informe para el panel. Le proporciona ID de referencia del proveedor como intención de pago, cargo, factura, sesión de checkout e ID de reembolso para que pueda buscar detalles en el Panel de Stripe. Mantenga el estado de orden, crédito o derecho visible para el usuario en sus propias tablas.