Not sure if they are allowed to treat credit card customer's differently, there must be some policy that says you can't charge extra if your customer is paying by credit cards.
actually quite the opposite. some states have passed legislation that allows merchants like restaurants to charge up to 5% more for buyers using credit cards.