payments y registra eventos de webhook verificados.
Modelo de Stripe
| Concepto de Stripe | Tabla o API de InsForge |
|---|---|
| Product | payments.stripe_products |
| Price | payments.stripe_prices |
| Checkout Session | POST /api/payments/stripe/{environment}/checkout-sessions y payments.stripe_checkout_sessions |
| Billing Portal Session | POST /api/payments/stripe/{environment}/customer-portal-sessions y payments.stripe_customer_portal_sessions |
| Subscription | payments.stripe_subscriptions y payments.stripe_subscription_items |
| Customer mapping | payments.customer_mappings con provider = 'stripe' |
| Webhook event | payments.webhook_events con provider = 'stripe' |
| Dashboard transaction row | payments.transactions con provider = '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.