I use PayPal. They allow people to pay with credit card, even if they don't have a paypal account. They have a well documented API, and the Instant Payment Notification system (IPN) helps automate transactions. There are some paypal related modules on CPAN - even if you don't choose to use them 'as is', you can use them as examples when writing your own code.