PayPal comes to mind. I've used it for non-profits that want to receive $$ as donations. Technically, the user does leave your website but it can be automated so they are returned seamlessly. You might also be able to use one of the free/low cost donation services but you'd need to check into wrapping their screens in a frame on your website. I've never tried this but it might work just fine.