Hi I am new here and I am starting with your answerer. If you don't care about the customer leaving your site:
Amazon Payments (underrated in my opinion)
If you need to seamlessly integrate a payment form in your site:
-PayPal Payments Pro ($30/month for a virtual terminal and API integration, no contracts, 2.9% transaction, it's really hard to find a merchant company that can beat this unless you're talking in volumes).
-Authorize-net coupled with the merchant company of your choice.
When evaluating a merchant company, beware of contract stipulations, transaction fees, and monthly fees. My first provider was Card-service International (one of the largest) and I used Link Point for the online gateway. I was paying $60-80/month just for the service! (transaction fees excluded) AND I was locked in a 2-year contract with an insanely high cancellation fee. One of their fees was a mandatory $20 "customer service fee" for access to their 24/7 customer service team. (W T F?)
Just be careful when evaluating merchant companies. Try starting at your bank (as long as it's not Chase, B o A, or Wells Fargo). Generally, local community banks or credit unions will have fair pricing and good customer service for merchants.