On the first, I have generally recommended TrustCommerce both due to their emphasis on security (having reviewed their Perl and PHP API classes directly) and the richness of services they provide. They do cost more because Paypal gets a tremendous volume discount, but it's an option. For online payments also you have additional PCI-DSS worries that are burdensome for small businesses.
The second option includes solutions like Amazon Payments. I currently use Amazon Payments because I process 4-5 transactions per year. At that volume it isn't worth maintaining my own merchant account and certainly is not worth worrying about PCI compliance......
BrainTree is awesome too.
If you're doing subscriptions, http://spreedly.com/ is good.
And Stripe looks cool but I've never used it. (https://stripe.com/)
You really need a true merchant account plus gateway.