Historically, processing monetary transactions online has been a major pain. Conniving financial institutions would force you to pay tons of extra fees, requiring merchant accounts and other junk. Then Stripe came along, bringing some sanity to the e-commerce world.
With Stripe, you get a no-hassle API and minimal fees. 2.9% + 30 cents, payed out to any bank account. The only requirement is that you set up HTTPS for customers’ safety. (Technically, there is one other thing that may be an issue: Stripe is only available to US merchants for the time being.)
Nettuts+ has an excellent tutorial on how to set up a Stripe account and process transactions through the API: So You Want to Accept Credit Cards Online?
The most difficult part is probably purchasing an SSL certificate and setting your server up to use HTTPS. Some hosts sell certificates, and may be able to configure your server for you. If you’re on your own, though, RapidSSL seems to be a good option. (They’re affordable and on the trust list of most browsers.)
So You Want to Accept Credit Cards Online? [Nettuts+]