Hi Sean. Welcome to the forums.
There are probably many ways to go about this. As I am not a programmer myself, if I had to do this I would choose a CMS that had an add-on for this sort of thing. I know that ExpressionEngine has such an add-on, but I'm sure there are similar ones for Drupal, Joomla, WordPress and so on.
With online selling, there are often three services involved: a cart (which may be part of your own site*), then a payment gateway service, and then a merchant bank. The cart is the interface through which the customer makes the purchase. This connects with the gateway service that is authorized to deal with credit cards and so on, and which communicates back and forth with the cart. Then you usually need a merchant account with a regular bank into which the funds collected by the gateway can be deposited.
A service like PayPal is convenient in that it provides a cart and gateway all in one. But it's pretty basic, too, so not really good enough for serious online selling.
- So, you could install something like osCommerce on your server to act as the cart, or you may use a third party cart like FoxyCart. Either way, they will have to send off the purchasing details—including credit card number—to a separate payment gateway service.