Finding on online shop window for apps (was Re: Awful quiet around here )

Matthias Rebbe matthias_livecode_150811 at
Tue Nov 14 15:35:13 EST 2017


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. ;)



> Am 14.11.2017 um 17:59 schrieb Tiemo Hollmann TB via use-livecode <use-livecode at <mailto:use-livecode at>>:
> 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

More information about the use-livecode mailing list