Спроектируй billing-страницу.
Структура
┌─ Current plan ──────────────────┐
│ Pro · $49/month │
│ Next charge: Apr 15, $49 │
│ [Change plan] [Cancel] │
└──────────────────────────────────┘
┌─ Usage this period ──────────────┐
│ Active projects: 23 of 100 │
│ API calls: 18,432 of 50,000 │
└──────────────────────────────────┘
┌─ Payment method ─────────────────┐
│ •••• 4242 · exp 12/26 │
│ [Update card] │
└──────────────────────────────────┘
┌─ Invoices ───────────────────────┐
│ Apr 1 $49 Paid [PDF] │
│ Mar 1 $49 Paid [PDF] │
└──────────────────────────────────┘
┌─ Billing details ────────────────┐
│ Email: billing@company.com │
│ Address: ... │
│ Tax ID: ... │
│ [Edit] │
└──────────────────────────────────┘
Принципы
- Next charge date обязательно
- Если pending cancellation — "Access until X"
- Failed payment → красный баннер
- Cancel опция видна (не скрыта)
- Контакты support
Edge banners
- Free plan → "Upgrade to Pro" prominent
- Failed payment → "Update card to avoid suspension"
- Cancelled + grace → "Access until X. Reactivate?"
- Trial ending → "X days left. Add card to continue"
Технически
- Cache Stripe ответы (1-5 мин)
- Webhooks обновляют DB → читай из DB
- Лог изменений плана
Анти-паттерны
- ❌ "Contact us to cancel"
- ❌ Не показывать next charge date
- ❌ Invoices как линки на Stripe без preview
Похожие промты
site / payments
Интеграция Stripe
Checkout, подписки, webhook'и, идемпотентность, тест-режим — production-ready stripe.
paymentsstripeintegration
Открыть
Продвинутый1-2 часа
site / payments
Subscription-флоу: upgrade, downgrade, cancel
Что происходит при смене плана, отмене, паузе — UX + биллинг.
paymentssubscription
Открыть
Продвинутый30-60 мин
site / payments
Поток возврата платежа
UX и логика возврата: триггеры, policy, коммуникация, partial vs full, метрики, anti-fraud.
paymentsrefundux
Открыть
Средний1-2 часа