I am personally a huge fan of Stripe. It's much easier to work with than PayPal and also much easier to implement. It allows you to add transaction fees if you wish.
I'd read up on it, as it has quite a few solutions ranging from inclusion of a simple JavaScript file that creates Checkout/Pay buttons to designing a custom checkout flow.
Their documentation is extensive, highly geared toward developers, and worth the read.
Good luck!