feat: Stripe integration complete - products created, DB migration, payment_failed handler, credit buttons wired
All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 2m5s
All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 2m5s
- Create Stripe products/prices (Starter/Pro/Business monthly+yearly) - Fix CRITICAL bug: add subscription_ends_at + cancel_at_period_end columns to users table - Alembic migration: f6a7b8c9d0e1_add_subscription_ends_at_cancel_at_period_end - Fix: implement handle_payment_failed() to set subscription_status=PAST_DUE - Fix: harmonize .env.production Stripe variable names to match pricing_config.py - Fix: add missing FRONTEND_URL and STRIPE_PUBLISHABLE_KEY to .env.production - Add all Stripe Price IDs (test mode) to .env.production - Wire credit purchase buttons to /api/v1/auth/create-credits-checkout - Dashboard sync post-checkout was already implemented (no change needed) Stripe test keys: configured in .env.production Webhook: must be configured on server via stripe CLI or Stripe Dashboard Webhook URL: https://wordly.art/api/v1/auth/webhook/stripe
This commit is contained in:
@@ -15,6 +15,7 @@ LOG_LEVEL=INFO
|
||||
# ---- Domaine ----
|
||||
DOMAIN=wordly.art
|
||||
NEXT_PUBLIC_API_URL=https://wordly.art
|
||||
FRONTEND_URL=https://wordly.art
|
||||
BACKEND_PORT=8000
|
||||
FRONTEND_PORT=3000
|
||||
|
||||
@@ -91,8 +92,15 @@ GRAFANA_USER=admin
|
||||
GRAFANA_PASSWORD=WordlyGrafana2026!
|
||||
|
||||
# ---- Stripe ----
|
||||
STRIPE_SECRET_KEY=
|
||||
# Clés TEST — remplacer par sk_live_... / pk_live_... en production réelle
|
||||
STRIPE_PUBLISHABLE_KEY=pk_test_51SkSHkCKXUJE51jnCr2QV4vCE18GH1XF59eHrHOV46EORuZTPVXFXxrbcJamyoJLaUHMc2McCRVkU4b6VMAWVR2R00XRdwmXMx
|
||||
STRIPE_SECRET_KEY=sk_test_51SkSHkCKXUJE51jnbEtXZ0nKiTHTa8ohDwLH8fZiDVEx6Ze0g5dg4fGJJgX1VgNHvF93GE3HTramT3oQrCaqOxid00OXTcZlsW
|
||||
STRIPE_WEBHOOK_SECRET=
|
||||
STRIPE_STARTER_PRICE_ID=
|
||||
STRIPE_PRO_PRICE_ID=
|
||||
STRIPE_BUSINESS_PRICE_ID=
|
||||
|
||||
# Price IDs créés dans Stripe Dashboard (wordly.art — test mode)
|
||||
STRIPE_PRICE_STARTER_MONTHLY=price_1TdF8FCKXUJE51jnNAeLqhF3
|
||||
STRIPE_PRICE_STARTER_YEARLY=price_1TdF8GCKXUJE51jnBhVVrjrh
|
||||
STRIPE_PRICE_PRO_MONTHLY=price_1TdF8GCKXUJE51jn9ChAAhKM
|
||||
STRIPE_PRICE_PRO_YEARLY=price_1TdF8HCKXUJE51jnpsvBivDe
|
||||
STRIPE_PRICE_BUSINESS_MONTHLY=price_1TdF8HCKXUJE51jn2K9EeBGJ
|
||||
STRIPE_PRICE_BUSINESS_YEARLY=price_1TdF8ICKXUJE51jnmgWZxW4U
|
||||
|
||||
Reference in New Issue
Block a user