How Tutor LMS handles payments
Native eCommerce gateways
Tutor LMS native eCommerce records orders in its own tables (tutor_orders, tutor_order_items and related meta), with a payment status and an order status. PayPal is built into the free plugin, along with manual payment methods. Tutor LMS Pro downloads gateway packages on demand for Stripe, Razorpay, Paystack, Authorize.Net, Mollie and Klarna, each with its own configuration keys.
How a gateway plugs in
Gateways are registered through filters. The official Tutor Stripe plugin, for example, adds itself through tutor_gateways_with_class and tutor_payment_gateways_with_class. A custom gateway follows the same pattern: it registers its class and configuration, creates the payment with the provider, and confirms it through a webhook. When the payment status changes, Tutor LMS fires tutor_order_payment_status_changed and completes the enrollment.
Testing payments properly
We test each gateway in sandbox mode with successful, failed and refunded payments, check that webhooks are signed and received, and confirm that the order, the enrollment and the emails all follow. Then we switch to live keys and run a real low-value purchase. Our payment guides explain each gateway.