Non, un commerçant n'a pas le droit de refuser un moyen de paiement, il n'y a aucune loi qui dit ça ... ou alors va falloir me présenter l'article.
Pour le coup du restaurant, histoire de pas emmerder la serveuse je laisse un pourboire qu'elle récupère comme elle veut (en gros je paye 1 ou 2 de plus) mais il m'est arrivé de ne pas en démordre (Patron très con) et j'ai eu gain de cause car je ne refuse pas de payer (pas de délit de grivellerie donc), c'est lui qui refuse mon paiement et qui sera le plus emmerdé s'il s'obstine.
Pour le reste (papèterie, charcuterie, tabac, etc.) en général je prévois la monnaie pour pas faire d'histoire, sinon je repars les mains dans les poches tant pis pour lui s'il ne veut pas vendre ...