Internet payment services and associated ramblings

One of the most important steps in the shareware chain is when a customer takes some of his money and gives it to me =). This is both an easy and hard thing to accomplish. Easy because there are many different services that will do all of it for you in exchange for a percentage of the moneys (usually 10-20%). Hard in that if you wanted to do it without one of these services you would have to do a lot of work. It's possible though. You can apply for a merchant account at a bank and get the ability to process your own credit card payments over the internet.

That's getting into the advanced arena though. I would say that I am still at intermediate. Possibly single-black diamond. Anyway, what follows is the tale of my experiences with getting that sweet sweet user money...

When I first launched Lux I signed up with the eSellerate registration service. It was very easy to get set up using their systems and they do everything that I wanted: taking an order, checking it for fraud, generating a serial number, sending that number to the user, supplying a library for my game to validate the serial number, and (huzzah) dumping some money into my bank account once a month. So far so good.

After a while of doing this I thought it would be a good idea to add the ability to take Paypal payments. Paypal is an internet-only way of transferring money between people with email accounts. In effect it acts as a bank, but doesn't get regulated as one. Lots of people on the net have a paypal account with some money in it. It's much easier to just spend this money on something then go to the hassle of getting it transferred into your real-world bank account. So the ability to accept paypal money is good to have, since people are freer with their paypal money then they would otherwise be. Paypal is also very cheap, with rates ranging from 0-5% depending on the type of account and other stuff.

So I set myself up with a paypal account, which was pretty easy, and added it as a payment option on my site. Eventually I was cajoled into upgrading this account into a 'Business' account. This adds the ability to accept paypal money that was funded from a credit card. People kept sending me credit-card funded paypal payments, so it was either reject them or upgrade my account. A business account also means that paypal takes something like 3-5% off of payments. This is worse then the 0% for personal accounts, but it's still much better then the 10-15% the eSellerate charges. And I am using it for a business after all, so a business account seems apt.

Anyway, paypal is not a full-service registration company like eSellerate is. So I have had to manually go into my eSellerate control panel, generate a serial number and send it off for each paypal payment that I received. This doesn't take long, but it effectively kills off the fully-automated process that I had going with eSellerate. I could no longer go on a tropical vacation and have customers continue to receive their goodies without my intervention.

Paypal does offer something to business accounts called IPN or Instant Payment Notification. Basically they will send a message to your server whenever a payment is made. You can then have an automated process do whatever needs to be done (i.e. generate a serial and send it to the customer). So I wanted to set this up for myself. I had a problem though. I was using eSellerate's serial number generation. It was possible for me to manually use the control panel to generate keys when I wanted them, but there was no way for me to hook it up to my server automatically.

This is an example of what is known as "vendor lock-in". eSellerate have made it nice and easy to get set up using their systems, but then if you ever want to go outside the system, well ... tough luck bud. They only get a commission on sales that go through them, so it's in their interests to lock you into using their system. If I wanted to get myself free from the shackles of eSellerate I would have to get my own serial number generation/validation system.

eSellerate starts out taking 10% of each sale. This continues until you hit $15,000 US of sales in a 12 month period. Once you hit that level the rate jumps up to 15%, after which it very slowly goes down again. I surpassed that level a little while ago, so eSellerate is taking a much bigger % then paypal would.

So I bit the bullet and decided to implement my own serial number scheme. I do have a solid math/CS background so it wasn't that hard, but it took some work. An interesting tidbit of knowledge (because this entry isn't long enough yet) is that I implemented the generator using PHP, the validator using plain old C, and am calling it from my application written in Java. The validator was first written using C++ and then ported back to plain-jane C because the C++ executable was ~300k in size while the corresponding C one was only 16k. Huzzah for multi-language projects and for McGill forcing me to take a course on C!

Anyway, Lux now includes all the needed goodies to use my own homegrown serial number system. I got some good advice from past discussions in the Association of Shareware Professionals newsgroups, so hopefully it will be cracker resistant. Tonight I finished setting up the paypal IPN system and set it to be live.

The biggest benefit of all this is that it gives me a totally homegrown system that can be used with any and all payment processors that exist. There are some other registration services like eSellerate that provide "full-service" functionality, but then there are also some other bare bones low-fee payment services that exist as well. It may even be worth my while to go to the efforts of getting a real merchant account. This is as close to the money as possible and offers the lowest fees of them all. I would still have to look into fraud detection and some other stuff, so I have no plans to do this right now. Maybe in time for my next game's release though.

Phew. I suppose I am done. Congrats to you for reading the whole thing =).

Posted by dustin on December 10, 2004 with category tags of

The validator was first written using C++ and then ported back to plain-jane C because the C++ executable was ~300k in size while the corresponding C one was only 16k.

Did you figure out why the C++ exec was so big? Did you use the same compiler/linker for both?

Anyway, thanks for this post! All stuff that's good to know.
   comment by Bryan (#22) on December 10, 2004

You might wanna strip the html from the comments that go into the right sidebar. My [blockquote] opening tag got in, but not the closing tag, screwing up the formatting for the other comments.

A woman's work is never done!
   comment by Bryan (#22) on December 10, 2004

Aye, the sidebar comments now cut themselves off at the first HTML tag of any kind. They also protect themselves from really long words that would push things out-of-wack.

I used gcc and g++ for the C and C++ compilers respectively. I just assumed that C++ builds in some extra overhead into the executable to allow for object/exception stuffs.
   comment by dustin (#1) on December 11, 2004

The percent number goes down or the rate at which it increases goes down; that's outrageous. Brian is it bigger because of the libraries for C++?
   comment by trckands on December 12, 2004

The percentage goes back down. From 15 to 14 to 13 to 12 to 11 back to 10. You have to sell $5 million worth in a year to get back down to 10% though.
   comment by dustin (#1) on December 12, 2004

Well theres some healthy encouragement. Maybe there's a message there: The secret to mills' is(looks around to make sure the coast is clear and wispers) to stack them.
   comment by trckands on December 13, 2004

I got an email from these people asking me if I want a free merchant account I bet you've probably already seen them but
   comment by trckands on December 17, 2004

Firend of mine who is close to shareware told me that business is much slower. Last year his got only $200/m when before it was much more
   comment by Alex on January 12, 2005

   comment by Alex (#118) on January 12, 2005

Well my business has been steadily growing over the last little while. Perhaps your friend isn't keeping up his business as much as he should. Letting it just sit there and expecting the money to roll in is not a great strategy. And I think that the competition has also been heating up as thenet continues to expload.
   comment by dustin (on holiday) on January 12, 2005

Commenting is currently off. You can email the author.


VorgTag CloudArchives

Written by dustin
Photo Showcase
Quote Showcase

Friends of Vorg
Computer Games
Popular Posts

Hey You! Subscribe to dustin's RSS feed.
Or get wider opinion in the Vorg All Author feed.


Members login here.
© Vorg Group.