I need a solution for accepting payments online via website.
My first choices were Google Checkout, and Amazon Payments.
Both of which don't seem to be available in Canada.
Are there any alternate options or a way to process payments on site?
Depending on your specs I would consider PayPal. For a project I am working on now we are taking a lot of small payments in Canada and the US, and it was necessary to also pay the seller of those products via Paypal. PayPals micropayments were cheaper then other merchant processors. We did a cost analysis and it was by far cheaper to use the paypal adaptive payments api to handle receiving and sending payments in one action then to write all the logic into our application for collecting payments and then sending them.
I use swreg, and am quite happy with them. You'll have to choose between GBP, EUR, and USD as your standard currency though. They have different schemes which can be more or less profitable depending on the amount of business you drive through.
It's actually specifically made for shareware vendors, but technically it's possible to implement the same API for any other product or service.
Beanstream is a popular merchant provider in Canada
SIX Card Solutions and Authorize.net both offer online payment solutions in the US, Canada, and Europe. The API set with SIX card is very easy to use and about half the cost of processing payments on Paypal or Moneybookers which hit you with very high % of transaction fees instead of a simple per transaction fee regardless of the amount.