Trouble with JUCE tutorial about unlocking plugins through online registration

So I have been trying to follow the JUCE tutorial: Unlock your plugins through online registration and did achieve a registration through a local host as the tutorial describes.

My problem is that after I’ve finished the “Registration Complete!” window comes up and I press “OK”, it goes back to the window “Please provide your email and password.” again. And if I press cancel it goes back to the first window with only the “Unlock” button available to press and not the “Super Secret Feature” one which is the end goal.

After some debugging I discovered that in the function:

void timerCallback() override
    if(! isUnlocked && marketplaceStatus.isUnlocked())
        isUnlocked = true;



never turns “true” (a variant, not a bool). Anyone who knows what the solution is that it never does that? I would be very grateful for any suggestions!

Next problem is to actually implement all this to my plugin and some sort of website, but I guess that is a different topic :slight_smile:

You have to make sure that you are using the unlocker, and that you compile the unlocker with the correct private RSA key that matches your PublicKey in the TutorialMarketPlace. When thats done properly you have to make sure your script on the server side runs the unlocker app with the arguments [appName, userEmail, username, machineNumbers, rsa.private]. That will generate the XML response you need to send back to the TutorialMarketplaceStatus (which is essentially a part of the OnlineUnlockStatus class). When it receives that message back it does some OnlineUnlockStatus class magic and verifies that the public key decrypts the encrypted message successfully, unlocking the marketplaceStatus


How did you end up implementing the backend?

Yes that is what I did. I even got the “Registration Complete” window but it didn’t actually unlock the “Super Secret Feature” button if I didn’t manually set marketplaceStatus.isUnlocked() to be true manually.

Hey I am having the exact same problem here. Did you figure it out ?

Also: What exactly do I fill into the machine number field ? Is this the “DESKTOP-HXWHATEVER” thing?
feeling a little lost here :smiley:

Same problem here.

Does anyone know how to solve it?

einfachFelix. The machine number is retrieved with getLocalMachineIDs()[0]

Please help.

Found my problem, in case anyone faces the same inconsistency…

When generating the encrypted message (they call it KeyFile) to send from the server, I was using a different ID than I was using on the app.

The curious thing is that the app shows the “Registration Complete” message, but the app itself does not unlock.

So just make sure those two ProductIDs are the same.


This problem is fixed at the server.

When comparing the IDs with PHP use the following condition as well…

$_POST[“product”] === YourProductID