Websites can enable visitors to book and, if required, pay, for events or courses.
In order to avoid the complexities of having a secure payment system on your own website, you can use an external event booking service such as 'EventBrite' which takes booking details and the payment (PayPal or Credit Card) and, if required, creates a waiting list when the event is full.
EventBrite charges a Service Fee per ticket which depends on your ticket price. There is an online calculator here: eventbrite pricing