Stripe
Cards via Stripe Checkout. Needs publishable key, secret key, and webhook signing secret. Sandbox uses test keys.
Stripe
Card payments through Stripe hosted Checkout.
Where to find it
Admin → Settings → Payment → gateways → Stripe
Setup
1. Create keys in the Stripe Dashboard (test keys for sandbox: pk_test_ / sk_test_).
2. Enable Stripe checkout (and Enable for reseller if reseller top-up should use Stripe).
3. Paste publishable key, secret key, and webhook signing secret.
4. In Stripe → Developers → Webhooks, add the webhook URL shown in admin (/api/webhooks/stripe) and subscribe to the events the UI lists (typically checkout.session.completed).
5. Turn Sandbox on only with test keys; off for live keys.
Official: Stripe Checkout and Webhooks.
| Field | Key |
|---|---|
| Enable | stripe_checkout_enabled (unset defaults on if keys exist) |
| Enable for reseller | stripe_checkout_reseller_enabled |
| Publishable key | stripe_publishable_key |
| Secret key | stripe_secret_key |
| Webhook secret | stripe_webhook_secret |
| Sandbox | stripe_sandbox |
Env vars (STRIPE_SECRET_KEY, STRIPE_WEBHOOK_SECRET, NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY) can override DB values when set.
Money path
Member completes Checkout → Stripe sends webhook → site marks Payment paid and grants Premium / tops up balance. Browser return alone is not enough if the webhook fails.
Common problems
Paid in Stripe, no premium on site
Webhook missing, wrong signing secret, or sandbox/live mismatch. Check Stripe Dashboard → Webhooks delivery.
Keys rejected
Test keys with sandbox off (or live keys with sandbox on).