Automated License Generator, Manager and Verifier System

Automated License Generator, Manager and Verifier System for Mobile and Desktop Applications

Frequently Asked Questions

l i c m a x ™   offers answers to frequently asked questions about licensing, getting started, piracy, and services offered. Click on a subject heading below to view questions and answers relating to your selection. Links throughout the answers will guide you to further information on our website or from other sources. Should you have any further questions, please consult our Contact Us page.
  1. What steps do I need to take at licmax™ to get a store to start acquiring licenses for my application listed there?
  2. What is the URL to use at a store to acquire a license key for my application?
  3. What is the URL that my application needs to use to fetch its own license key when it first starts up?
  4. What is the URL that my application needs to use to verify the license key it has at hand?
  5. What is the difference between "Product" and "Application"?
  6. What is the difference between "Product Definition", and "Product Instance" with regard to defining, or creating, a Product/Application?
  7. How much extra programming is the ISV required to do?
  8. Aside from programming tasks, what does the ISV have to do with regard to preparation of apps for bringing to market?
  9. What is the difference between "License" and "License Key"?
  10. What exactly is the "Device ID"? Where does this come from?
  11. What is meant by "Store Product ID" ("prodId")?
  12. What is meant by "Product Definition Key" ("prodDefKey")?
  13. I don't see the Reference Implementation for my platform. When will it be available?
  14. What is returned by the server to a Verify request if a license key exists, but is not valid?
  15. What is returned by the server to a Verify request if a license key does not, and never did, exist?
  16. I've downloaded one of the Reference Implementations and modified the demo application for my valid license key. But, I always get "Not Authorized" back from licmax™. What is wrong?
  17. Do I implement the Fetch and Verify requests using HTTP GET or HTTP POST?
  18. I'm having trouble linking to the Runtime Only downloads. How are they suppose to be used?
  19. Why should I use licmax™ over what is offered by other online app stores?
  20. What is the difference between dynamic and hashed license keys?
  21. Should I use a dynamic or hashed license key?
  22. I sell my application on my own website. Can I still make use of the licmax™ licensing system?
  1. QWhat steps do I need to take at licmax™ to get a store to start acquiring licenses for my application listed there?

    A

    1. Sign up and confirm your registration at licmax™.
    2. Define your product at licmax™. At the completion of this step, licmax™ generates a unique key (prodDefKey). Treat this key as the secret key for your product. It is sent as a parameter on the request to fetch license key (/fetchLicKey.html/) as well as verify license key validity (/verifyLic.html). It also can be used as the secret key for generating hashed license keys.
    3. Add product instance configuration that belongs to the product definition above. Here you want to choose the store where your product is listed and enter the ID assigned to your product by that store (the Store Product ID). Choose values for the rest of the other fields as you see suitable for your product.
    4. For more details, see How to Get Started

    Top

  2. QWhat is the URL to use at a store to acquire a license key for my application?

    A http://www.licmax.com/withdrawLic.html

    Top

  3. QWhat is the URL that my application needs to use to fetch its own license key when it first starts up?

    A http://www.licmax.com/fetchLicKey.html

    Top

  4. QWhat is the URL that my application needs to use to verify the license key it has at hand?

    A http://www.licmax.com/verifyLic.html

    Top

  5. Q What is the difference between "Product" and "Application"?

    A These terms are used interchangeably in licmax™ literature depending on the context. In precise terms, "Application" refers to the compiled and packaged code you have developed and that gets downloaded and installed on your customer's device. "Product" is the conceptual embodiment of your application as a unique functionality, technology, feature-set and brand together with all ancillary manifest accouterments such as documentation, logos, trademarks, patents, marketing, packaging...etc.

    Top

  6. Q What is the difference between "Product Definition" and "Product Instance" with regard to defining, or creating, a Product/Application?

    A Individual products/applications of the same functionality listed at various online stores belong to one Product Definition. A Product Instance of the Product Definition represents your product/application you listed at a particular store to sell there. The Product Instance is associated with its counterpart at the store through the Store Product ID which the store assigns to your product/application when you list it there. Each Product Instance belongs to a Product Definition. Each Instance is configured individually.

    Top

  7. Q How much extra programming is the ISV required to do?

    A Very little and it is really easy. To verify the license validity in your application, it can be as easy as this:

    Java:
                
        LicValidVerifier lvv = new LicValidVerifier("YLABR", //licKey
                                                    "PDVNVCPSTKMAQPPLCNKOZWPUV"); //prodDefKey
        if (lvv.verifyValidity() == NOT_AUTHORIZED){
                //license for this app on this device is not valid
                //handle accordingly
        }
                
                
    Symbian C++:
                             
        CLicValidVerifier* lvv = CLicValidVerifier::NewL(KMyLicKey, KMyProdDefKey);
        CleanupStack::PushL(lvv);
        if (lvv->VerifyValidityL() == ss::priv::lm::http::symbian::NOT_AUTHORIZED)
        {
                //license for this app on this device is not valid
                //handle accordingly
        }
                  
                
    These above assume you have the advantage of using a licmax™ Reference Implementation library. If one is not available for your platform, you may need to implement the system calls to get the device ID, and the HTTP request to licmax™ for verifying the license. The code shouldn't be too much however, depending on your platform, and examples are provided in the source code for the licmax™ Reference Implentations for the platforms already available.

    Top

  8. Q Aside from programming tasks, what does the ISV have to do with regard to preparation of apps for bringing to market?

    A Please see the question above and How to Get Started

    Top

  9. Q What is the difference between "License" and "License Key"?

    A Sometimes depending on the context, these two terms may be interchanged. However, there is a distinct difference between the two. A License is the right you grant to your customer to use the application you have developed - a copy of which you have enabled her to download via one of the mobile stores where you listed your product. Licmax™ provides a service where you can manage the licenses of your various products. licmax™ maintains descriptive information about your licenses which you can view and manage on the licmax™ website. A License Key is the unique identifier for a License. Viewing a list of licenses on the Licenses tab of the licmax™ website, you'll see the License Key listed with all the other details of a License such as Date Acquired, Device ID, Store, Life, Product, Customer Email.

    Top

  10. Q What exactly is the "Device ID"? Where does this come from?

    A The Device ID is a unique identifier of the mobile phone, smartphone or small-device of the customer who bought your application. Most mobile stores use the device's International Mobile Equipment Identifier (IMEI) as the Device ID they send to licmax™ when acquiring a license at the time your customer purchases your application. Consult the manufacturer's instructions to find how to determine the IMEI of a device manually. The licmax™ Reference Implementations show how to retrieve the IMEI programmatically for each platform provided. Some earlier platforms don't have IMEI numbers, or don't provide it programmatically. In such case, you can use whatever unique device identifier the mobile store uses if such, or you can use the unique identifier of your choice and acquire the license for your customer manually upon sale. Nonetheless, the Device ID used must uniquely identify your customer's mobile device that (theoretically) no other piece of mobile equipment in the world will have.

    Top

  11. Q What is meant by "Store Product ID" ("prodId")?

    A The store assigns an ID to your listed product, and sends this ID as a parameter to acquire a license key when a customer purchases your product. For each application you list at an online app store you need to configure a counterpart Product Instance for it on the licmax™ site. The Store Product ID uniquely identifies your application at the store and the licmax™ Product Instance in a one-to-one relationship.

    Top

  12. Q What is meant by "Product Definition Key" ("prodDefKey")?
  13. Q I don't see the Reference Implementation for my platform. When will it be available?

    A Reference Implementations aren't necessary to use the licmax™ service. Any language and platform capbable of making HTTP requests is capable of fetching and verifying licmax™ licenses. These HTTP requests and their responses are documented in the licmax™ Reference Implementation Guide available on the Developers tab of the licmax™ website. For the convenience of developers, we try to provide as many Reference Implementations as possible, and will continue to do so. If the language or platform you need is not available on the licmax™ Developers tab, please use the Reference Implementation Guide and the Reference Implementation for one of the other platforms to implement access to licmax™ on your platform.

    Top

  14. Q What is returned by the server to a Verify request if a license key exists, but is not valid?

    A validity=Not Authorized

    Top

  15. Q What is returned by the server if a license key does not, and never did, exist?

    A validity=Not Authorized

    Top

  16. Q I've downloaded one of the Reference Implementations and modified the demo application for my valid license key, but always get "Not Authorized" back from licmax™. What is wrong?

    A First, be sure to sanity-check your parameters manually using the licmax™ webpages for Fetch and Verify at the following pages respectively: /fetchLicKey.html /verifyLicKey.html Next check that you are using the correct Product Definition Key and Device ID in both the Fetch and Verify requests. Be sure you are verifying against the server licmax.com, and not licmax.org. All these parameters in the demo applications have been contrived for QA testing prior to being posted for download.

    Top

  17. Q Do I implement the Fetch and Verify requests using HTTP GET or HTTP POST?

    A You may use either GET or POST. Refer to the Reference Implementation Guide for further details and examples of each.

    Top

  18. Q I'm having trouble linking to the Runtime Only downloads. How are they suppose to be used?

    A For your convenience, compiled jar files or static libraries have been included with the Reference Implementations we have provided. If you download the full Reference Implementation archive, or just the Runtime Only archive, you will get such jar file or static library. If you are developing for the precise platform and version of that Reference Implementation, then you may link to that runtime jar or static library directly without recompiling the Reference Implementation sources. If you have problems linking, or are developing for a different platform version, then you can always rebuild the runtime jar or lib using the sources and project build files in the full Reference Implementation.

    Top

  19. Q Why should I use licmax™ over what is offered by the online application stores?

    A Presently, no online app store offers any service for online license verification. While each has their own offerings for some extent of anti-piracy protection, none of these mechanisms is as secure against cracking as online license verification. See our white paper on Copy Protection in App Stores

    Additionally, requests for acquiring licenses differ from store to store. With licmax™ you have a ready-made license generation server capable of handling requests from all app stores. There are numerous other benefits to using licmax™, such as our unique Fetch License Key™ service, capability to transfer and decommission license keys, on-demand analytics and view of all sales activity at all app stores. Visit our pages Features and Why Use Licmax™? for more details.

    Top

  20. Q What is the difference between dynamic and hashed license keys?

    A Dynamic license keys are generated using licmax™'s own proprietary algorithm. Hashed license keys are generated using a standard hash algorithm such as SHA-1, SHA-2, MD5, ...etc.

    Top

  21. Q Should I use a dynamic or hashed license key?

    A Use a Dynamic license key for applications intended to run on smartphones and/or connected devices (having internet connection). Dynamic license keys are verified online. The application verifies its given license key by making an HTTP request to licmax™. Use a Hashed license key for applications intended to run on disconnected devices. The application verifies its given license key by checking if it is equal to the output of a hash algorithm it applies on a combination of the device ID and a secret key.

    One strategy is to choose Hashed license keys and verify them both online and offline. Hashed license keys can be verified online just like Dynamic ones. Verify your Hashed license key online when an internet connection is available, and verify it offline when not.

    Top

  22. Q I sell my application on my own website. Can I still make use of the licmax™ licensing system?

    A Yes you can. Your website can act like any online app store. It can acquire a license key from licmax™ for each copy it sells of your app. See details on ISV's Own Site Acquire License Key

    Top