Today’s blog will feature how you implement subscription licenses. The use cases you can have for subscription licenses will be covered, and how you integrate your payment provider such as Stripe.
The most common way to implement subscription licenses is the Software as a Service (SaaS) model. That is where you restrict access to the product when a license expires. You can also allow customers to use the product without a valid license, but they are not allowed newer upgrades. You can also tie the subscription to a support agreement so that only people with a valid license get access to support.
All of these methods will be covered today. For the full documentation page on this topic, click here.
We have made the following video tutorial for this topic:
The SaaS Model
The most common use case is where a customer has to pay a monthly or yearly subscription fee to use the product. If they do not pay, their access to the product will be restricted. They would then have to extend the license to continue to use the product. This method is oftentimes seen today with the Software as a Service (SaaS) business model.
In Cryptolens, you can implement this using our pre-made “Expires” field. We already have a blog post covering how to set up time-limited licenses that you can find here.
In short, you have to click on “Edit Feature Names” on the product page and click the checkbox “Treat all licenses as time-limited”. Now, Cryptolens knows that you want to use the SaaS Subscription Model.
When creating a license in Cryptolens, you can specify for how long the license should be valid. If you want to extend the expiry date, simply click on a particular license and you can either choose a date in the calendar or choose to extend the license for X amount of days. You can also automate this by integrating with your payment provider. We cover that topic at the end of this blog.
An important last step to remember is to make sure Cryptolens blocks all expired licenses. You can find that tutorial here, but that should only be done for this method of implementing subscriptions.
Restrict Access to Updates and Support
Some software developers want to continue to allow customers to use the software after the expiry date has been reached. However, without a valid license, a customer cannot get access to updates. This would still incentivize the customer to keep extending their license.
Let’s take an example of how this could work in practice. Let’s say that a customer buys your software at the launch of version 1.0. Their license expires right as you release a minor update, version 1.1. The customer can get access to that minor update and continue to use the product even though their license has expired. However, when you release a major update to version 2.0, the customer is not able to access that version without a valid license.
You implement this version of subscriptions by using data objects. In Cryptolens, you would create a new data object and use it as metadata. Create a new data object and call it, for example, “major_version”. Give the IntValue field the value 1 if you want your version to be 1.0. Click on Create. Now, you have a way to track major releases of your application.
If you want to keep allowing customers with expired licenses to use the product, another way to incentivize them to renew the license is to limit the support given to customers without a valid license. This essentially means that they subscribe to a support agreement rather than to the product itself.
For more information on how to implement this model, please check the full documentation page. For this method, you should not tell Cryptolens to block expired licenses automatically, since you want people to keep using their version of the application.
Implementation with Payment Providers
You can manually extend the expiry date in the Crypolens dashboard, but it might be beneficial for you to automate the process so that the expiry date of a client is automatically extended after a successful payment has been made.
In the Cryptolens API, there is a method called the ExtendLicense method. When a successful payment has been made by a client, use that method when calling our API to automatically extend their license. This method works no matter if you are using Stripe, PayPal, other providers, or even an internal payment system.
For more information, please read this page in our documentation. There, we also have API methods to automatically create a new license key, add features, block the license, and more.
You now know how to implement subscription licenses in Cryptolens!