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:
@@ -82,6 +82,8 @@ class User(Base):
|
||||
|
||||
stripe_customer_id = Column(String(255), nullable=True, index=True)
|
||||
stripe_subscription_id = Column(String(255), nullable=True)
|
||||
subscription_ends_at = Column(DateTime, nullable=True)
|
||||
cancel_at_period_end = Column(Boolean, default=False, nullable=False)
|
||||
|
||||
reset_token = Column(String(255), nullable=True)
|
||||
reset_token_expires = Column(DateTime, nullable=True)
|
||||
|
||||
Reference in New Issue
Block a user