Thank you, Robert Voit, creator of JASC Paint Shop Pro

Robert —

In the early to mid-90s my hobby was making video games of various sorts with my friend Jesse. Our tools were Recreational Software Designs Game-Maker 2.0 and your creation JASC Paint Shop Pro (PSP). I discovered both in a software mail order catalog and purchased them with my lawn mowing cash. We used PSP to design our title screens mostly.

I had purchased the shareware version of PSP, which came with a 30-day trial period. I discovered that if I simply uninstalled and reinstalled PSP, we would get another 30-days of free use. But, my conscience didn’t feel good about my discovery. It was stealing—plain and simple. I sent JASC a brief letter explaining how we were using PSP and asking for permission to continue using it. I figured, the worst that could happen is that you could say “no” and I would have to save up to buy the full version. The best that could happen is that you would say “yes” and we would be back in business.

To my shock and surprise, you sent me the following reply:

Robert Voit JASC Paint Shop Pro

You included a boxed version of PSP with your letter. I couldn’t have been more surprised or excited. It’s still one of my favorite childhood memories to this day.

Only a year or two later, Jesse and I stopped making our games. The limitations of Game-Maker were quite real, and something bigger had arrived: The World Wide Web.

I quickly taught myself HTML and continued to use PSP as my image editor—even later paying for upgraded versions. (Version 6 was my favorite!) I made websites on top of lawn mowing to earn cash throughout high school and college, which helped pay for school. The experience set me up to be a career website and web app builder (see PC World, September 2006, page 37). I couldn’t have done it without PSP. And I always liked it better than Adobe Photoshop, which I got to use during a few summer jobs.

Your kindness taught me three things: honesty and hard work are rewarding—both spiritually and materially—and that it’s fun to surprise and delight and help those whom you can. It was no surprise to me years later to learn that JASC was acquired by Corel. Your life’s hard work, honesty, and kindness rewarded you, and I couldn’t have been happier for you.

Thank you for teaching me some valuable lessons and your gift that summer. I’m grateful.

Although Jesse and I never officially shipped a game to market, I dug up one of them for old time’s sake and to finally follow through on my end of the deal. Here’s a video of Xylon.

Thanks again,

Ian

P.S. For folks interested in the Paint Shop Pro story, read this great Motherboard article.

Gift Cards Getting Declined?

Several months back, I was testing an application’s ability to charge credit cards before going live with it. The application allowed people to make one-time purchases, purchases using a previously saved credit card, and subscription purchases wherein people’s credit card information was saved for future use. Like many sites, we used a third party to charge and store the credit card information securely. (In our case we used Authorize.Net Customer Information Manager–also known as CIM.)

As a part of my testing, I employed the use of VISA, MasterCard, and American Express gift cards to make sure they worked too. We didn’t want to miss-out on any potential purchases. However, we ran into a curious situation when using gift cards as saved cards: the first transaction would be approved but any subsequent attempts would always be declined.

I spent the majority of a day talking with our merchant gateway (Authorize.Net), our payment processor, and the gift card issuing banks to try to understand what in the world was going on. Just like any perfectly-executed Department of Defense project, not one person knew or could explain the big picture. Each person could only tell me what they knew about my declined test transactions and point fingers at someone else. After speaking with everyone, though, I was able to extract what was going on.

To make a transaction with a credit card online or in the real world, you must provide a piece of verifying information. There are two options: (1) the 3-digit security code on the back of the card or (2) your physical address.

The catch about using your physical address for a gift card purchase is that you must first register the gift card with the issuing bank so that they have your address on file to verify it. The problem with address verification is that virtually no one registers their gift cards. (I didn’t even know it was possible.)

The problem with security codes is that no one other than the issuing bank is allowed to store it. The merchant gateway might capture and send along the code when making the initial purchase and even storing the card. However, it will never be available for subsequent transactions. This is why our gift cards were being declined when used as saved credit cards. We were sending the customer’s address to the payment gateway, but the issuing bank didn’t have an address on file to verify. And we couldn’t send the security code because Authorize.Net hadn’t stored it.

So, what could be done? Well, we couldn’t just reject gift cards on our site because there is no way to determine if the card is a credit card or gift card. (The only people who know this information is the card holder and the issuing bank. Credit card processors and banks are agnostic.) We could require the customer to provide a security code on every saved credit card transaction or subscription transaction, but that inconvenience to all of our customers would defeat the purpose of storing credit cards for automatic processing. The only viable option was to tell customers to register their gift cards with their issuing bank if they wish to use a gift card as a saved card or for subscriptions.

Hindsight is 20/20, so this makes perfect sense. However, it was quite confusing before the epiphany. Hopefully this will save some others a day of investigation.