Search code examples
phpmysqltestingtrial

An online free-trial anti-abuse system design


I am currently selling time based access passes to an online service at micro payment prices.

After payment the customer gets a set of credentials that is only valid for the purchased period. When the access pass expires the customer has to buy a new set of credentials. So basically the credentials are one-time(period) use only.

I would like to offer a free-trial of x minutes to this service so potential customers can realise it works fine, possibly increasing total sales.

My question is, how would you stop abusers?

That is, people should only be allowed to try for free once, and if that is not possible at least make them go through a process/test which (as in shareware) is too cumbersome or annoying for them to keep trying it.

Obviously there is always someone who will bypass it. I am looking for a solution for the majority of people who are either not IT savvy, time constrained, or simply too lazy to bother abusing it, instead of simply paying the tiny fee.

I have some approaches in mind but would like to be inspired by other people too.

The service is developed with LAMP.


Solution

  • I ended up using the smallest possible payment amount for a short time span, but enough to get the user satisfied at very low monetary risk.

    In the time past since I asked I actually seriously considered using Flash cookies which very few people know (even that they exist) how to remove.

    The other simple (although not-free) is using a SMS confirmation option which binds the user's mobile phone number. As a mobile phone number you just do not throw away like you do with email addresses then this is also a safe limitation method.