Tiemo,

my lesson just describes how to integrate the Zygodact key generator stack into 
the Fastpring order process and nothing else. ;)

But it should be possible to use Zygodact and some additonal code to prevent 
that the software is used on more then one computer.

First of all, Zygodact registration system works like this:
Zygodact let you create a set of stacks (a registration stack, a key generator 
stack and a special key generator stack for cgi, which can also be used with 
livecode server. 
Theses stacks belong to each other. You cannot mix them between 2 sets.
The app contains the registration stack as a substack.
The key generation stack (in my case the cgi stack) is used for the Fastspring 
order process. 
After the customer unlocks/registers the app using the purchase license key and 
his email, the registration substack saves a regfile stack to the hard disk . 
(Every time the app starts, the app uses a Zygodact function which checks if 
the license data in the regfile stack belongs to the registration substack in 
the app.)

After a successful registration the Zygodact registration substack allows to 
run additional code.
So it would be very easy after successful registration to let the app post the 
unlock data and additional data like MAC address to a webserver which stores 
that data in a database.
If the software is registered the 1st time, the server responds with a 
“successful” message and the app could write the Mac address also to the 
regfile stack on the customers hard disk.
If the software is registered a 2nd time from an other MAC address, the server 
could respond with an error. In this case  the MAC address is not written to 
the regfile stack on customers hard disk and the app quits with an error 
message. You could even delete the regfile stack. 

To get this working the app needs to check at startup, if the regfile stack 
already exists. If not, then it opens the registration dialog.
If the regfile stack already exists, the app first checks, if the MAC address 
of the computer corresponds with the one  in the regfile stack. If so, the app 
uses a Zygodact function to check also if the registration data in the regfile 
stack belongs to the registration substack in the app. If not, the app could 
show an error message and quit. If registration data is okay, the app would 
start.

If the MAC address does not correspond with the one in the regfile stack or if 
the regfile does not contain a MAC address, the app could show an error message 
and quit.

So this would prevent that the software can be installed and used on more than 
one computer.
But this would also mean, that  one might have to do more support, if customers 
change the computer or change some hardware settings or if there are internet 
connection problems on the customers side.

Therefore i decided to not go this way. I trust my customers, although i know 
of several cases where the license data was passed to others or where a refund 
was requested and the software is still used.
At the moment i have very little support requests. That means i can concentrate 
on other tasks like waiting for the Fastpring payments. ;)


Regards,

Matthias



> Am 14.11.2017 um 17:59 schrieb Tiemo Hollmann TB via use-livecode 
> <use-livecode@lists.runrev.com <mailto:use-livecode@lists.runrev.com>>:
> 
> Matthias approach seems obviously a nice and trouble-free approach. It only 
> has the disadvantage, that the email + key can be passed on to other users.
> 
> In my business teachers are a relevant part of my customers. From my 
> experience over the last 20 years teachers are the most down-and-dirty 
> software pirates (sorry Richmond), so I couldn't go this approach. I 
> experienced it x-times, that after having sold one license to a teacher, I 
> never got a second order from the same school. So I (or better an external) 
> created an individual licensing system for my product, bound to the MAC 
> address of the machine and an online license-database. It indeed also has 
> some disadvantages, because of the hard bound to the MAC address, but all of 
> my support is worth the plus of sold licenses.
> 
> Tiemo

_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode

Reply via email to