I have used TrustCommerce (http://www.trustcommerce.com/) and have been happy with them. They have a Ruby API that you compile and use to send the CC info from your app to their processing servers.
Yes, you will want an SSL certificate for your web server so that the CC info is encrypted from the customer to you.
How do you get an SSL certificate? is it a simple process? Do the
hosting providers have to get involved?
Godaddy has great rates for ssl certs, under $20.00. The certificate
can be generated using openssl. Installing it requires administrative
access to the webserver. Some hosting companies let you do it
yourself, some don't, just depends how they have things setup.