We run a bunch of such sites. Some years ago we have tried a ton of these scripts, ended up making our own quick and dirty solution, which works for us since about 2005. Basically a 50 line php script... Spent less time coding than searching for a solution. We do not have to account for anything though, which made things rather simple.