Subscription Console

Operate six billing lanes from one console.

This page is the operational billing console behind the pricing page and avatar menu. It separates starter, pro, premium, lifetime, package credits, and custom amount top-up while still treating the backend and webhooks as the only billing truth.

Environment

Stripe callback split

https://template.daobang.tech
Frontend success URLhttps://template.daobang.tech/billing?checkout=success
Frontend cancel URLhttps://template.daobang.tech/billing?checkout=cancelled
Stripe webhookhttps://api.example.com/api/v1/stripe/webhook
Client never verifies StripeAll billing truth comes from backend reads and webhook processing.

Subscription tiers

Starter, Pro, Premium, and Lifetime. First purchase uses Checkout; existing recurring subscriptions change in-place.

Success URL: https://template.daobang.tech/billing?checkout=success
Cancel URL: https://template.daobang.tech/billing?checkout=cancelled
Supported here: starter / pro / premium / lifetime
Optional referral metadata carried from browser: -
Lifetime is a one-time buyout flow. Interval and subscription proration preview do not apply.

Custom amount top-up

自由充值数额: dynamic USD amount -> backend PaymentIntent -> Stripe Payment Element -> webhook grants credits.

This flow does not use a Stripe Price ID. The backend creates a one-off PaymentIntent and returns a client secret for the browser.
Publishable key in frontend env: pk_test_51R6jo6Q4kdQzysE6X3HA4EYHRBkSiWpjeUtvtuoAJFPPvGzqMwd7snfjIAshrypB7I3AIhEXphQJh45vwFzPvpnP00dGzuxqbk

Package credits checkout

Fixed package: hosted Checkout with product_type=credits, price_id, and optional quantity.

Current subscription

Loaded from GET /stripe/subscription.

Sign in to load billing data.

Invoices

Loaded from GET /stripe/invoices.

No invoices yet.