It really depends on what sort of payment validation you're looking for and what you want to spend. PayProFlow and Auth.NET are expensive but offer better fraud protection and authorization tools. PayPal and Google have lighter weight SDKs but not as many bells and whistles.
I've worked with all of them except Google and they all have their pros and cons. I would take Auth.NET over PayProFlow because their SDK is easier to use. I would probably use Google over PayPal just because I don't like PayPal
If you want to go cheap, then go PayPal or Google. Check their feature sets to make sure they have what you want then check their APIs and see which one looks easiest to implement. If the feature sets look comparable, I'd go with ease-of-implementation since they are both big names and probably both just as secure.
Up front, I would only worry about doing MOD10 checks on the cards and let the payment provider do the rest (that's what they're there for)...trying to determine if a card is a certain type is a pain because there are so many variants (especially once you get outside the States).