Install the system on your own server – dedicated or hosted server are both okay. You need PHP and MySQL.
Licensing details are kept in a database on the server.
Applications will check the license status with the server via an API, for example,
The local function library proves an easy way to interact with the API.
The result is returned as plain text, HTML, XML or JSON – whichever you prefer.
As long as your application can check a URL and get back the result, you can
● use the system from a smartphone, tablet, laptop or desktop
● running Windows, MacOS, Linux, Android, or any other OS
● with any programming language.
The application sends a unique DeviceID – which identifies the specific machine which is asking for a license status.
This DeviceID can be anything you choose – CPU serial, hard drive serial, Mac address, a combination of these, or any other unique identifier.
However, the function library will automatically generate a unique DeviceID for you.
Three variables will be returned by the server, and need to be stored locally:
1. Whether or not the application should be allowed to continue running.
2. Whether licensed or trial, and an arbitrary string with a set of options for the app.
3. In case no online access is available next time you check – a date until which the
…application can continue to run before the user is forced to do an online check.
The server can generate a strongly-encrypted file for local reference when there is no online access.
The local function library can decrypt (but not encrypt) the file, to access the values stored.
The use of public-key encryption means that a fake license file cannot be generated by anyone.
The function library (.dll / .so / .dylib) will:
1. Generate a unique DeviceID for you
2. Decrypt the local license file data when necessary
3. Optionally handle API requests as well.
4. Handle all the logic of checking the status
Easier to use than it sounds!
The basic function you need to call from your application is tms_getStatus
- If it returns true, then allow the application to run without limit
- If it returns false, then the trial has expired or the license is invalid.