It should be illegal for any business to refuse cash payment, full stop.
I've heard some cities have already passed laws in this vein, it should be made universal. Homeless people or otherwise marginalized groups are often limited to cash only transactions, that shouldn't mean they can't participate in commerce. Hell even just victims of identity theft can find themselves unable to get a bank account or credit card, cash should always be an option.