Test a checkout end-to-end
Sandbox keys, webhook, cheap plan, confirm entitlement, then go live. Webhook failures look like browser success with no Premium.
Test a checkout end-to-end
Do this before opening real payments.
Checklist
1. Set Currency code and symbol and at least one plan under Plan & pricing
2. Enable one gateway in sandbox/test with matching test keys
3. Register the webhook / IPN URL from the admin UI (except Authorize.net cards, which charge sync)
4. For Paddle, set Default payment link to /premium/paddle
5. Open /premium in a private window (respect No anonymous payments)
6. Pay with a provider test card / sandbox buyer / test crypto invoice
7. Confirm:
- Provider dashboard shows paid
- Admin → Payment transactions shows completed
- The test account received Premium / Pro / traffic or balance
8. Only then: turn sandbox off, paste live keys, update webhooks to live mode
Fulfillment cheat sheet
| Gateway | Paid when |
|---|---|
| Stripe / PayPal / Lemon / BTCPay / Coinbase / Paddle | Webhook (Paddle return can also help) |
| NOWPayments | IPN only |
| WebMoney | Result URL webhook |
| Authorize.net cards | Sync charge in-app |
Common problems
Browser success, no entitlement
Webhook/IPN never hit - fix that before blaming plans.