如何为我的python应用程序设置试用期?

问题描述 投票:5回答:2

我用kivy制作了一个桌面应用程序,并能够使用pyinstaller制作单个可执行文件(.app)。现在,我想将其提供给试用期为10天左右的客户。问题是如何制作一个试用版,该版本在安装10天后会停止工作,即使用户卸载并在试用期结束后再次安装它也无法正常工作。无法提供试用版的部分功能。

环境具有Kivy的Mac OS和Python 2.7

python kivy setup-deployment
2个回答
3
投票

您需要网络服务器和数据库才能正常工作。

  • 在数据库中创建许可证表。
  • [每次新客户购买软件或进行试用时,您都会生成一个新的长期随机许可证,将其插入许可证表中,将其与客户的电子邮件地址相关联,然后通过电子邮件发送给客户。
  • 每次客户端尝试在其计算机上安装软件时,您都要求获得许可证并与网络服务器联系以确保该许可证存在并且仍然有效。

使用这种方法,人们仍然可以只创建多封电子邮件,从而有可能获得无限数量的试用版。

然后,您可以尝试在该人的计算机上的某个地方(没人会寻找的地方添加文件),然后将旧许可证粘贴在那里,以便该应用程序再次启动(即使是从新安装的应用程序开始)时,它也可以读取从那里获取许可,然后不要求许可就联系Web服务器。通过这种方法,当您的应用程序使用过期的试用许可证与服务器联系时,您的服务器可以通过“许可证过期”信号进行回复,以让您的应用程序知道它必须立即申请非试用许可证,并且服务器仅应从现在开始接受来自该应用程序的非试用许可证。如果您的客户意识到您的应用正在从本地文件中获取此信息,则整个方法都会中断,因为他们可以在找到时将其删除。

想到的另一种想法是在许可证创建时间(客户端)将便携式计算机的MAC地址(或您可以想到的任何其他唯一标识符)与一个许可证而不是电子邮件地址相关联要求进行试用时)或在安装时(您的应用程序可以检查正在运行的笔记本电脑的MAC地址),则需要向您发送其MAC地址。


1
投票

1),您可以在应用程序时间戳记停止运行后对其进行硬编码,并检查每次运行是否此时间戳记大于time.time()。如果您有一个或几个客户,并且能够为每个客户制作具有不同日期的试用版,则此方法将起作用。

2)使用平台/ SDK获得许可证,例如https://cryptolens.io/或其他

3)编写您自己的解决方案,也许How to generate and validate a software license key?会为您提供帮助

© www.soinside.com 2019 - 2024. All rights reserved.