我开发了一个小应用程序,想尝试销售,但不知道如何最好地进行。
如何锁定程序以供试用?
如何处理支付?
考虑到我只是一个人,没有太多的资金,希望找到一种免费或低成本、有效、安全且易于实现和维护的解决方案。这对我来说并不是很熟悉,因为我通常为公共部门开发解决方案,他们会整体购买解决方案,我们从未授权过。
非常感谢您的任何帮助。
B
我开发了一个小应用程序,想尝试销售,但不知道如何最好地进行。
如何锁定程序以供试用?
如何处理支付?
考虑到我只是一个人,没有太多的资金,希望找到一种免费或低成本、有效、安全且易于实现和维护的解决方案。这对我来说并不是很熟悉,因为我通常为公共部门开发解决方案,他们会整体购买解决方案,我们从未授权过。
非常感谢您的任何帮助。
B
我可以告诉你我是如何做到的。免责声明:结果可能有所不同。这适用于防止简单的WinForms、WPF或其他桌面应用程序的非正式盗版情况。它对抗复杂的破解并不特别强大或安全,但它在防止非正式盗版方面表现出色。
在许可证方面,我尝试了几个第三方解决方案。对于防止偶发盗版的名义,它们都相当容易使用,当然这是你真正关心的唯一盗版问题。
我发现没有一个许可证提供商与现有的付款处理器/网关真正兼容。有一些“全能型”解决方案,但那里的技术债务水平对我来说是不可接受的(自由职业者和唯一的开发人员)。我正在寻找一种简单的方法,从网站上的“立即购买”链接转到购买后解锁桌面软件。一些现有的“全能型”解决方案对此目的过度,有些完全忽略了“购买”方面。
我最终使用Xml数字签名使用应用程序的私钥签署许可证文件,该私钥永远不会分配给用户。结果:您在目标计算机上拥有一个.LIC或.LICX文件,用户可以阅读它(除了信封签名外,它是纯文本),但不能修改它。 (或者,他们在不知道您已经知道的情况下无法修改它。)这个小文件是整个系统的关键。
当应用程序加载时,它验证XML签名是否有效(使用应用程序的公钥,该公钥与应用程序一起分发),如果有效,则从许可证文件中读取信息,并根据此启用/禁用某些功能。例如,您的许可证文件可以包含产品到期日期或几个唯一的机器信息(要小心,不要给您的合法用户带来不便...您不希望他们每次更换硬盘时都必须重新申请许可证密钥)。
作为额外的(稍微有点侵入性)步骤,您可以让应用程序连接到您的服务器,尽管这会使您陷入服务器停机等问题。有些开发人员愿意忍受这种情况,而有些则不愿意。
现在对于购买部分,有许多选项。 Paypal是最简单的方法。您可能会或可能不喜欢他们的费率计划,但是使用Paypal绝对是一件轻松的事情。
对于这一点,您需要一个Premier或Business帐户,而不是Personal帐户。注意:在Paypal文档中,有时会说您需要Paypal Business帐户。无论何时他们说那样,他们实际上的意思是“Paypal Business或Premier帐户”。
现在为自己创建一个产品网站并自定义您的立即购买按钮等。当用户购买时,您的网站将从Paypal IPN接收到ping,这是他们的通知服务。这个ping只是对您网站上定义的HTTP端点的调用,并包含有关购买的所有信息。主要是用户的电子邮件...
(好吧,我觉得我应该提一下:Paypal和大多数其他合法处理器都有一个“沙箱”,您可以在上面测试所有这些内容,然后再进行实际操作。这样做对于让您真正上线并有资金在线上是非常有帮助的。)
您将使用它
如果你想保护.NET应用程序,你需要使用某种形式的软件保护和许可证控制。市面上有数百种选择,从非常便宜(以及如何自己创建的文章)到非常强大的商业工具。
您可以考虑使用CryptoLicensing For .Net - 它提供了完整版和试用版的选项(使用天数、唯一使用天数、执行次数等)。它还配备了准备好的许可证服务器,带有PayPal、ShareIT、Plimus等电子商务集成。