Jump to content






Photo * * * * * 1 votes

IP.Nexus 1.2 Dev Update: License Keys

Posted by Mark, in IP.Nexus 12 January 2011 · 670 views

IP.Nexus 1.1 was released at the beginning of this month bringing a number of new features such as product options, reporting tools, advertisement system improvements and more.
Already we have started work on IP.Nexus 1.2 - while release is still a while away, we'll be posting blog entries during development to show you the upcoming new features.


The first new feature in IP.Nexus 1.2 that we wanted to talk about is a license key system.
Many users are using IP.Nexus to sell digital products, and currently there is no way to keep track of where your products are being used. In IP.Nexus 1.2, you will have the ability to generate license keys and use an API to call back to Nexus to activate and check license keys.


Generating License Keys

When creating a product, there are now a number of options regarding how to handle license keys:
Posted Image

License keys are by default generated either as a random md5 hash or several blocks of random letters and numbers - developers can also upload a simple PHP file to a certain folder to add more methods if you have your own way of generating license keys.

You can also choose an "identifier" for the license keys. Identifiers are provided to the API when activating the license key (for example, your program could ask users for their license key and their name or Email address) - as an additional security measure. Identifiers can be the customer's name, Email address or any custom field with the purchase. This is of course optional.


Managing License Keys

In the Admin CP, there is a new box on the purchase screen which displays information about the license key:

Posted Image

The grey box shows you the license key, when it was generated and it's current status and the table below shows where it's being used (you can set how many times a license key can be used).

The dropdown menu at the top with the other buttons contains options to reset (which will clear uses and generate a new key) or cancel (which will make API calls to check the license key fail) the key.

Of course, all actions related to license keys is also logged in the customer history page.


Users can see their license keys in the client area:
Posted Image


Using the API

The API uses XML-RPC to send and retrieve data. Full developer documentation will be available when Nexus 1.2 is released, but to give you an overview, there are four methods:

activate
This is what you call when the user enters their license key, for example, on an installation screen. You send Nexus the license key, the identifier (if necessary) and any additional information you want to save (for example, the version number). If the license key is invalid, or the key has already been used the maximum number of times, Nexus will return an error - otherwise, Nexus will log the IP address used to activate and the additional information you sent and return a success message along with the "usage id" which is an ID number given to that installation for that license key.

check
This is used to check that a license key is still valid, for example, you may call this periodically from your application. You send Nexus the license key, the identifier and the usage ID (returned from the activate method) and Nexus will return the status of the license key (if it's active or cancelled).

info
This is used to fetch information about a license key. You send Nexus the license key and the identifier and Nexus returns data about the key (when it was generated, how many times it's been used, etc.) the purchase associated with it (it's ID number, when it expires, all custom fields, etc.) and information about any child purchases (that is, purchases associated with the purchase the license key is associated with.

updateExtra
This is used to update the additional information send in the activate method. You send Nexus the license key, the identifier, usage ID and new information and Nexus will update the information locally and return a success message.




Nice Mark!
IPS is the best...
Great feature
Is there a possibility for staff to SUSPEND licenses? That would be awesome as the check API call to have either array('active', 'expired', 'suspended', 'cancelled').
didn't think this would be announced so soon, great job so far :D
We use our own system of program registration keys.  It would be good to be able to just upload a list of keys and have the system iterate through them, distributing one for each sale.

Also, you should expect that any online registration API you create is going to be cracked.  They'll simply find the bits in the executable that request information and change them.

SuperNoob, on 14 January 2011 - 04:45 AM, said:

We use our own system of program registration keys.  It would be good to be able to just upload a list of keys and have the system iterate through them, distributing one for each sale.Also, you should expect that any online registration API you create is going to be cracked.  They'll simply find the bits in the executable that request information and change them.

Thanks, we are aware how that works :)

Presumably the code one uses to implement the API calls will be encoded, regardless, that would be the third-party application's responsibility. Remember we're talking about IP.Nexus' ability to act as a license key server, nothing to do with the license key system in our products :)
Sounds great.

Is there a way to upload / use a "Key-List-File"?

For example, i have a .txt File with Keys and would use the Keys from the .txt File.

IPBSupport.de, on 14 January 2011 - 10:57 AM, said:

Sounds great.Is there a way to upload / use a "Key-List-File"?For example, i have a .txt File with Keys and would use the Keys from the .txt File.

MySQL can import .csv files ;)
Epic
Great work guys

Keep it up  :thumbsup:
I have several thousand users with registration keys for multiple products.  I am cautious to rely on something new like this, but for complete integration I would need to be able to enter their keys into their account for each product they own.  So I presume there is some way to add that information to existing users without requiring a new purchase.
My main interest here is it would be nice if the user could see their reg keys in their account instead of emailing me when they have another "hard drive crash".  I get a few of these emails each week.
Can we get the documentation?

May 2012

S M T W T F S
  12345
6789101112
131415 16 171819
20212223242526
2728293031  

Latest Visitors

Search My Blog