Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am having someone develop a program for me and I want to sell it for like $10.

I was wondering what's the best way to create a trial version that I can tell my programmer to do. Like 30 day trial.

And what's one way I can make it so once they pay, I can send them a unlock code. What's done in the program to allow that?

If you could give me an answer that I could tell my programmer, that would be much appreciated.


share|improve this question

closed as unclear what you're asking by gnat, MichaelT, GlenH7, Kilian Foth, Yusubov Aug 26 '13 at 17:42

Please clarify your specific problem or add additional details to highlight exactly what you need. As it's currently written, it’s hard to tell exactly what you're asking. See the How to Ask page for help clarifying this question.If this question can be reworded to fit the rules in the help center, please edit the question.

Is it a time-based trial (where the functionality ceases or degrades after a certain period of time/# of uses) or a feature-based trial (where certain features are disabled)? Answer that first. – FrustratedWithFormsDesigner Jun 2 '11 at 17:55
This doesn't completely answer your question, but here's a good article on how to use OpenSSL to generate and verify licensing keys for software:… – mipadi Jun 2 '11 at 18:01
I was thinking of a time based like 30 days. – Scott Yu - Front-End UX Jun 2 '11 at 18:11
@mipadi Thanks for that link! – Scott Yu - Front-End UX Jun 2 '11 at 18:15
Do many users pay for software that expires so quickly? – FrustratedWithFormsDesigner Jun 2 '11 at 18:26
up vote 7 down vote accepted

When you get into time-limited trials and sending clients "unlock codes", those are really digital licensing and copy protection. There are lots of options for that, and there's no one "Best way".

It sounds like your programmer hasn't done this kind of thing before, and it's the sort of thing you can spend a lot of time and money on, and still get wrong (as in, your software is easy to pirate). So I'd recommend you go with a commercial solution. Some of the online digital distribution systems offer SDKs that your programmer can integrate with your software - Kagi has a good reputation around this, and I suspect Digital River may offer something.

One thing I'd caution you against is getting emotional and wanting a "foolproof system". There is no such thing; you should assume that if a "black hat" is willing to throw enough time and money at it, they can crack your system. So you need to do a fairly cold-blooded cost-benefit analysis, and make a tradeoff between how much money you're willing to invest versus the level of piracy you can tolerate.

Fortunately for you, at a $10 price point, piracy isn't very attractive, so you don't need a very fancy system. If it's going to cost a black hat more than a few hours to crack your protection, they're better off buying your program. (I do this kind of thing for multi-thousand-dollar-a-seat software, so the incentive to pirate it is high, and my clients spend lots of money on hard-to-defeat copy protection.)

An alternative you might consider is just selling through the Mac App Store, which can redistribution of software purchased from there. I don't think it lets you offer upgrades from a trial version to a paid version, but I know you can post a free "lite" version with limited functionality or "watermarks" that disfigure the output. Then if people like the "lite" version, they can buy the "paid" version. Here's an article that talks about that, and I'd imagine your programmer would find it easy to an App Store "identity check" to your "paid" version.

share|improve this answer
That article explained a lot of questions I had about the Mac store! Hey thanks! – Scott Yu - Front-End UX Jun 2 '11 at 21:50

Not the answer you're looking for? Browse other questions tagged or ask your own question.