我正在寻找有关如何实现java应用程序试用版的想法。大多数帖子都是关于创建一个试用软件,它有时间限制它何时停止工作。在我的情况下,我想创建一个功能有限的应用程序,并且可以通过购买产品来解锁应用程序的所有功能。我会很感激社区对以下几点的看法。此问题的一个转折点是使此解决方案尽可能通用,以便它可以在Mac和Windows上运行。
我对此解决方案的处理方法是在应用启动时检查是否存在“注册”文件。如果存在有效的注册文件,则应用程序将完全正常运行。该文件将放在用户的应用程序数据目录中。这样在Windows中卸载应用程序将不会触及此文件。此外,在Mac上,在典型情况下删除app文件夹应该没有问题,除非用户安装了某些软件,如AppCleaner,它将提示删除〜/ Library / Application Support文件夹下的应用程序目录。
所以,这是我的第一个问题。社区对于如何处理已经购买应用程序的用户删除注册文件的情况的想法是什么?
我认为这也与首次注册/购买的方式有关。这是我的第二个问题。我不会处理软件中的任何信用卡交易,我更愿意Paypal做所有这些。所以,在有人购买软件之后,我给了他们一个可以解锁软件的注册密钥。我在这里首先关注的是,拥有此注册密钥的任何人都可以解锁该软件。我怎么能限制这个?想法?
这个话题可能需要一些讨论,我希望没问题。期待听到您的意见。
编辑:我只是想回到这篇文章并更新它以提及我在评估TrueLicense和License3j之后,我选择使用TrueLicense。我仍然在弄清楚如何使用它,因为文档并不那么容易。我正在尝试研究这个样本,希望我能尽快为我的应用程序做好准备。
答案 0 :(得分:1)
最近我一直在研究同一个主题。我发现有必要实现许可证管理器。我找到了TrueLicence开源库和一个带有代码示例的tutorial。
...使用True License或任何其他Java许可证管理器库时, 您将需要创建两个组件:
- 软件许可证服务器,每当客户购买软件副本时生成新的软件许可证,
- 软件许可证客户端,是您嵌入Java / Swing客户端应用程序以安装和验证许可证的代码。
答案 1 :(得分:0)
您可以使用license.properties文件,每次软件启动时都会获取其密钥/令牌。 该软件将有一些拦截器代码,它将从license.properties文件中读取密钥/令牌并解密它并生成一个值。 因此,当用户购买您的软件时,您会向他发出新令牌。现在,这个令牌在解密时会生成一些与通常不同的值,因此您将解锁其余的功能。
有100多种加密算法,你可以在网上搜索并将它们用于你的软件,但基本的想法就是这样。