Nowadays, brick-and-mortar merchants use electronic card readers to enter credit card transactions. These gadgets have a slot to swipe a card, and a numeric keypad to enter the numbers manually in case the swipe doesn't work. They may be stand-alone gadgets connected directly to the credit card network via a phone line, or they may be connected to a computer and work in conjunction with a software package.
Some are even wireless. If you're doing business over the Web, you don't need one of these (regardless of what the people who sell them tell you). What you need is a payment-processing software package. Forget about phoning in orders or using one of those old-fashioned manual card imprinters. The few banks that still allow such transactions are sure to charge a premium rate.
Payment-processing software is usually sold as a service rather than a product. That is, you don't install it on your Web server and run it yourself, you simply pass credit card data to the software company's server, and they take it from there. Most companies allow you to "buy" the software or to "lease" it for a monthly fee, perhaps 20 or 30 bucks a month. For most businesses, the monthly "lease" would seem to be the better deal. The company might go belly-up, or they may introduce a new version of the software and require you to buy it all over again.
Why do you need to pay for such a system? Why not just have a CGI script send an e-mail to the bank when someone places an order? For several reasons, this simply wouldn't be robust enough. When a charge is made, the transaction must be posted both to your account and to the customer's.
If a transmission gets lost or garbled, or if a computer somewhere along the way crashes, the system needs to be able to overcome this, and make sure that everything still balances at the end of the day. You also need secure access to your merchant account, so that you can check balances and enter transactions manually if necessary.
There are hundreds of companies making payment-processing software, but most banks have a short list of ones that they will work with. The best-known payment-processing packages are Authorize.net, Cybercash, IC Verify, and PC Authorize. Which one is best depends on your needs. A payment-processing system and bank merchant account are often sold as a package by a reseller, who presumably can give you an honest assessment of which system is best for you.
However complex payment processing may be, it should be fairly transparent to the site owner. All you should need to do is to incorporate the appropriate code into your order form. One decision you need to make is whether or not you need real-time authorization.
If you are selling something that's delivered online, for example online content that requires paid registration, or software that is distributed by download, then you'll need immediate authorization, for customers will want to receive what they've paid for right now, thank you. If you're selling something that you send through the mail, then real-time authorization is not important.