For software, there were lots of services targeted at independent ("shareware") developers, who would host the SSL page order forms for the developer so they didn't have to deal with PCI Compliance.<p>Kagi was one of the earliest, especially on the Mac. But there were others like SWREG, ShareIt, eSellerate, Plimus, Cleverbridge and many others. The Black Cat Systems Overview Of Shareware Registration Services [1] used to be the chart you'd send newbies to when they asked which e-commerce service to use.<p>Whenever a new service started up, it would almost always get acquired by Digital River (aka "The Borg", since they assimilated everything and resistance was futile).<p>Some of those services are still around, like FastSpring and Paddle. Avangate ended up buying 2Checkout and then rebranding to call themselves 2Checkout. The main advantage of those companies now is they offer global tax compliance, now that the EU and several other countries want you to charge and collect tax based on where the customer is, not where your business is.<p>[1] <a href="http://www.blackcatsystems.com/regservices/" rel="nofollow">http://www.blackcatsystems.com/regservices/</a>
It was painful. I'm mostly referring to legacy apps like online bill payment and stuff, especially ones that also wanted to do ACH transactions. You had to sign up with some sort of "payment gateway". Usually they had an api spec of XML or other legacy web services, file formats for interchange, etc that filled a whole binder. Since many people didn't want the compliance hassle of storing credit card & ach info, this was still 'easier' to implement.<p>Stripe pretty much came along and crapped on all of that ( in a good way ). And lowered the barrier to entry so indie dev shops could accept CC payments seamlessly as the other big megacorps.
PayPal buttons made it pretty easy but the user flow for someone without a PayPal account or with a PayPal account but that wanted to pay with a credit card wasn't super great.