If the stores want to give discount for paying with card they could do for example 0.5% or 1% and add the rest of the charge to the bill so there is still incentive for CC companies to compete.
As it is customers paying with cards get a hidden discount in comparison to those who pay with cash. Shops are forced to cover that discount as well. There is no incentive to provider cheaper payments either as the customers won't benefit. We really need a law that prohibits those hidden charges.