License Offline Validation and Activation


When a client lacks an internet connection, a license can still be validated or activated offline using one of two methods. In both scenarios, the hardware ID must first be obtained from the client's system.

Using an Offline Usage Request Text

The licensing library provides a method to create an offline usage record text. This is an encrypted text that includes the hardware ID, license key, and product hash code. This record text is then used in the license usage window to generate an activated license text, which you'll save and send to the client.

First, the license key will be requested from the user. Following this, the license usage request text will be generated using the specified method. This generated text will then be used when completing the offline activation on the license server.

// Get the offline usage request text
License.getInstance().getLicenseInformation().getOfflineUsageRequestText("the-license-key");

On the license usage page, an "Add Node-Locked Offline Usage" option can be found in the actions menu. When this is clicked, a dialog box will be brought up where the license usage request text can be entered. Once a valid text has been entered and loaded, the license details will be displayed by the system. Finally, the offline license usage will be generated when the save button is clicked.

Using the Hardware ID

The client system's hardware ID can be displayed directly by the licensing library. This hardware ID can then be used on its own to validate and activate the license.

// Get the hardware ID
License.getInstance().getSystemInformation().getFingerprint();

On the license usage page, an "Add Node-Locked Offline Usage" option can be found in the actions menu. When this is clicked, a dialog box will be brought up where the hardware ID can be entered. Once a valid hardware ID has been entered, the offline license usage will be generated after the save button is clicked.

Once offline license usage is generated, it can be displayed via the "View Usage License" menu item. Subsequently, it can be sent to the client for use in validating the license. It's utilized in the same manner as a license key.

// Validate the license
License.getInstance().validate("dWcKwE++cItgCK3IB6H54TIERs3Vnz2fSS79pMCp7hBV1bPoyU"
                + "n1BZcgykWpFFBI4K9V73/MJjANGgqAqn3scY1gnxNNiwPKcQjb"
                + "emEZnQ/XN8nvMF8drM7Cer//Lv9HLLeWgUm5IXSwpjTX+F47Hv"
                + "QzkSylHoNh0ibuuVTdyxZ27D9B3dPDnirlxFQavCIRaYAJU0Cu"
                + "oyyvAxLxwahGSM62b3Rdn1DD8CMn12M9jALGcrdZrBQLuMquIz"
                + "UvARupTTDneLfmnh0kiCBJygedmrmngBLxxgz2lOgukJ7F5j9u"
                + "0c03pH8ydOAikJqDYTWBCenvq/YHelzmAMWBnXmMTbug67zdny"
                + "5ddWMrhtZUDPVNk3Ob1xBz7z4RxrwTH8SSBba64fTCD5RbBod4"
                + "x36VXdz0K4fgqId48C6fInhr3xt4XfAQkTxgfZ4pA6zJyuEx2y"
                + "r3fZHZcqeCoyJpY6ksGOKcpntU96uUI7+3ntmgui7e9BVf+Mqm"
                + "elEIWOdyF+2NoVLhmK2hhfWh2uVCXjv0+oYLzK2AvEklM6GpD9"
                + "osAeaojQqJfKVboT7Vt00vyrOg4nP8cjuYAUjtndEVjAY2B2cD"
                + "xUyV7m6DYcpJGjfR0TdEaOgOb3yZ2RYAR73a3u800D36Zy+VEN"
                + "S1bKOdUrrpW0hJJPzZtOj2xGr2CHU3l+5WiuDzeNHLkQ/7fhva"
                + "HT8gXOEM9dAgVjYzJleP3Wtrm8XqS5zulowoLtlz5c3yD/tFvP"
                + "IP1sq2lOGH1kRljaOcxjgBwjMqyv6fsrail6EBqFbVkclLfzwQ"
                + "H5LHL6nBgHK1nMsgVeTUhqUJlaQvhFFH+wn0j3fQcJygLOHR17"
                + "dUzzFepsu/pfD65h5B4SFFjWIJxyPhA8dx5pUOut5VQJkUFIDD"
                + "aU0KiPLWgjv8oV+szEFF5OQa+d9CWMt+6pL3H+A0CfJfK0A70P"
                + "+Lzv187JRrgLKoSsLyUXfsqwT232CFqf7PKqJ6nq6uORa7LASf"
                + "i4oAZ2wI0hbXn+tV5hUllixc4CJdSi4JYPZSctX3OA3W7HioDy"
                + "mudGX3A5Er52DjM8S/XzCIvnsML8jzslyFcyT3eFpzIQxCFkNS"
                + "5Wz50j3iCo0WDRqibZWql0D/T1SmOpGfPu02UqLn6XCqL+zdBp"
                + "yMIcTlR3KpylcW5O/SZW2OacoSmNWSlFHAGnXIZWKXpbRH/gOP"
                + "Al1+errFwiEhJzZKde4Gm5Fh6UfVzeykCSRAd5oQzRn/q0GXjY"
                + "U93CRAeMwpngqN2k7AsFxApFv8fesoQH5o1t8W+f1hW+SN9Oub"
                + "540efCPmjPGLEJ5ccIa4c88@");