Using just IsActivate safe?

I plan not to ever call IsGenuine or IsGenuineEx because user's internet connection may not be present for a long period of time. So, is just calling IsActivated enough to keep honest people honest? In the end, some piracy may even help my business, since I am just starting out.

Yes, IsActivated is safe. However you're removing your ability to to revoke and remotely deactivate product keys. I'd recommend using IsGenuineEx with the TA_SKIP_OFFLINE flag. This way customers that have activated offline will never have to re-verify with the activation servers, but customers that activated online only check with the activation servers every X days (we recommend every 90 days).

In other words, IsGenuineEx() acts like IsActivated() for all offline activations (presuming you use TA_SKIP_OFFLINE), and it also acts like IsActivated() for online activations for most of the time (all the time except for 1 call every X days).

IsActivated() never requires the internet and IsGenuineEx() only requires the internet for 1 time every X days.

Thank you very much for a great product. I got the Paypal stuff into my site today and it worked!Anyway, could you give some examples of having to revoke keys? Even if used I would do it silently and set grace period to infinite.

Anyway, could you give some examples of having to revoke keys?

A couple of broad examples:

  1. A malicious customer purchases your software with a stolen credit card. Then, sometime later, the original credit card owner gets the charge reversed (a chargeback) but the ass who used the original card still has your product key. In this case you can just revoke the key, and if you're using IsGenuineEx(), then they will be remotely deactivated.
  2. A customer sends you a purchase order, you accept it, send them an invoice, and send them a product key. Then, they never pay the invoice. In this case you can revoke the key. Then, if they eventually pay, you can unrevoke the key.

Of course those are the broad examples, other customers use revocation in different ways. It's entirely up to you.

Thank you for reply.Can I set the grace period to zero, does that equate to infinite?

Can I set the grace period to zero, does that equate to infinite?

No, zero means zero. There's no infinite. You can, however, set a very large number.