We decided to charge in USD. We have a lot of international users, and while people generally know where their own currency stands vis a vi the Greenback, we surmised that they wouldn't be nearly as familiar with where they stand against the Loonie.
We initially went with the Canadian cc processor Moneris. They support recurrings, although their API support sux. Watch out too for the application approval process which was v slow and v painful.
We do not see the cc numbers. They are passed along to Moneris directly.
Moneris could only support Visa and MC transactions for USD, which was pretty limiting (credit cards are not used nearly as much in countries like Germany and Brazil) so we also went ahead and hooked up a pay by Paypal.
Shortly after we set everything up, Paypal started offering its cc processing service to Canada. They have much better API support then Moneris (although PP’s web UI sux), and since we had already set up the PP payment option, it was a no brainer to move it all over to PP. So PP now processes our cc as well.
Similar to Moneris, we do not see the cc numbers at all. They are passed along to PP directly.
(We took a look at Amazon, but they were not offering their 'Easy Pay' service in Canada.)
If you are a Canadian registered, there is no need to worry about US taxes.