I've been looking for the perfect solution to this, without paying excessive monthly fees. From what I've seen, the best options are
Authorize.net (my problem here is you need to have 2 SEPERATE accounts, one for online payments, and one for instore).
Stripe (not the easiest to use, designed for web developers)
Paypal for business
I'm currently using a system called payleap, which actually works pretty well, but I have yet to find any software that integrates with it (although Payleap says they have an API to do so, my guess is its not popular enough for people to spend the time/effort for integration).
My dream has always been to have 1 system that does everything with 1 merchant account. But that seems like a pipe dream.