Skip to content

Trial or demo product versions

Vova Yatsyuk edited this page Oct 31, 2013 · 9 revisions

Demo and Test Product versions

IonCubered too. It's much simplier to implement and doesn't require any changes to TM_Core and TM_License modules.

Possible limits for FireCheckout:

  • Products count below 50 (small stores)
  • Order count below 50 (test version)
  • No third party modules integration
  • Limited configuration options

Possible limits for Cache:

  • Cache only certain pages (homepage for example)
  • Short cache lifetime (10 minutes)

Trial product versions

This feature also requires changes to TM_License module:

  • Action for encoded date retrieving.

Clients private key - Secret key from encoded extension source. Our private key - Secret code from TM_License extension. Public key - Extension key. See #hacking

Main features

  • Trial version encoded with IonCuber.
  • Trial version will be available for purchase once per client. Normal version could be purchased many times. This is done to prevent ability to install new version every X days. Not needed because date is set for first purchased copy.
  • It has check for date expiration.
  • Encoded current date is requested from our server. Clients encoded current date is sent to our server, so we could prevent hacks with local time. Can't do that, because TM_Core will not use the IonCube, so client can send anything. Or encode all sources. Impossible - another extension could override ioncubered TM_Core module.
  • Expiration date - is the our current date plus X days.
  • User will not be able to generate encoded date without our private key.
  • Installation with TM_Core module.

Installation

  1. Buy free trial product from our site.
  2. Unpack to Magento installation.
  3. User take his app key from our site.
  4. Run installation with TM_Core
  5. Encoded date is requested from our server with public key.
  6. Our server will check for permissions before sending the date. Every installation is logged into our database. If extension was activated previously - license is invalid and date will not be created. Old one (expired) will be sent.
  7. Write it down to tm_core_module table
  8. Extension will check this date on every page refresh in preDispatch (We can't use events, it must be hardcoded)

Date Validation

  1. Decoded with secret key.
  2. Clients current date should be greater than decoded installation_date
  3. Clients current date should be lower than decoded installation_date + X days

Hacking

  1. Intercept requests to our server.
  2. Return encoded with public keys date from fake server.

This means that public keys should be unknown to user. We can't use the extension key as a public key. Solution - use hardcoded public key from IonCubered extension source.