Now lets talk about the real cc processing setup. It involves three parties: merchant, gateway, signing bank. Usually, when you signup with a merchant they will set you up with the bank they have a deal with so you can accept credit cards. The gateway is authorize.net. Authorize.net will be the interface between your customer's CC info and the bank that actually does the transaction.
Ideally for long-term you'd want to use a real merchant. But for starters, paypal should be a good option for you.
https://checkout.google.com/sell
http://checkout.google.com/seller/content_policies.html
Google's looks straight-forward, but sometimes providers have uncommon restrictions in there. eg, the "Travel packages and offers" wouldn't be immediately obvious.
"The merchant account provider needs to see your website."
"OK, here it is."
"No, they need to see the shopping cart."
"What!? We don't have merchant services yet. We're not going to put up a shopping cart that people can't order from!"
"They won't set it up until they see the shopping cart."
"OK, fine. Here's the link."
"They said they went to your site and didn't see a shopping cart."
"I sent you a link to the shopping cart. It isn't visible on the index page yet, because we can't take orders."
"Oh. It has to be the real website."
"Huh? It is the real website. I just haven't linked it from the front page...we already have users, I'm not going to confuse them with a shopping cart that doesn't work."
"It has to be a real website."
"You're kidding, right? Just send them to this link. I'm certain they'll be able to figure things out."
"OK. They said there is no terms of service or refund policy clearly linked from your front page."
"We don't sell anything yet. Why would we have those things on our front page? They're linked off of the store link I sent you." (This is the second time I've setup merchant services, and I knew they would need to see those things. It's not like they give a shit what they contain...they just insist they exist.)
"They have to be on the front page."
And so on. I won't bother to type in the exchange we had over the resellers first attempt to actually setup the username and password, or the fact that all payment information had to be faxed in. (Yes, you read that right. The reseller for Authorize.net that we went through would not accept payment online. And the form that was online was just a ruse...they made us fill out the exact same form again and fax it in.)
Next time I build a shopping cart, I'll spend that time writing a payment backend for a payment processor that isn't operated by the functionally retarded. Or maybe I'll just use Google Checkout instead, and let them worry about the banking industry monkeys.
They offer Paypal style redirection but the meat is their API which does not cost extra. The trick part is, you have to ask and you have to implement your own POST routines if you are not using Java. Wouldn't be hard if you are a STARTUP right?
Most Asian based cc gateway only needs CC number, name and expiration date for transaction, which is a "plus" to get you paid. You have to be careful about potential fraud though.
When accepting credit cards you'll also need a SSL (Secure Socket Layer) or in other words a secure connection (https://). I think they will actually allow you to use their api without that but it's definitely a horrible idea. There are a few major providers of this service, and they range in price significantly. www.InstantSSL.com or "Comodo" as they call themselves, has a pretty decent mid range SSL encryption package for about $100 a year. Godaddy.com has one that's like 19.99 or something ridiculous. The issue with SSL providers is simple. You can bet that they are all perfectly secure. The issue is really in browser recognition. The worst thing ever for an online merchant is to loose credibility, and what's the fastest way to appear disreputable - ""this site may not be secure, internet explorer recommends that you leave it immediately" or what ever that error says. This happens when a browser doesn't recognize the security certificate. To be safe, go with a provider that you can guarantee is trusted by all the major browsers (even old versions).
Also - one last piece of advice. When subscribing for a SSL certificate make SURE to turn your domain anonymity off temporairly while you subscribe. Otherwise they'll put you through an endless "verification" process that involves multiple faxes and endless bureaucracy!!!
It is a transparent solution too, so you don't redirect users to the Paypal site unless they are paying by Paypal. Credit card payments are done from your site via a webservice.
PayPal can be great as well because it is so easy.