Surely the solution to the credit card issue is to surcharge the passenger for the convenience.
In London it's 12% or £2 minimum - that is steep, but it does mean that the cabbie isn't out of pocket....
Is it legal in Canada to have dual pricing for cash/cards?