面向 Python 脚本和工具卖家
在卖 Python 工具?给每个买家一个密钥。
一次 SDK 调用。密钥来自你的商店,限制设备数量,退款即停用。
- Python
- Gumroad
- Lemon Squeezy
- Ko-fi
- Payhip
- Stripe
- Windows
- macOS
- Linux
你将获得
为你的销售方式而打造。
pip install sunlicense
仅用标准库,Python 3.8+。
result.valid设备数量限制
每个许可证 1、2 或 5 台设备。
TOO_MANY_MACHINES来自你商店的密钥
Gumroad、Lemon Squeezy、Payhip、Ko-fi 或 Stripe。
订阅与试用
订阅结束后密钥会被暂停。
离线许可证文件
已签名,用你的公钥验证。
Ed25519密钥放在 zip 包里
门户下载的文件带有每个买家的密钥。
Standard工作原理
在下次发布前上线。
- 1免费创建账号
- 2连接你的商店
- 3pip 安装,启动时验证
yourtool/license.py
import platform
import sys
from sunlicense import SunLicense # pip install sunlicense
client = SunLicense(base_url="https://api.sunlicense.com",
token="slk_...") # API key: validation only, safe to ship
def require_license(key: str) -> None:
result = client.validate(key, host=platform.node())
if not result.valid: # result.data["code"] says why, e.g. TOO_MANY_MACHINES
sys.exit("License not valid. Manage your key at yourtool.example/account")常见问题
常见问题解答。
如何给 Python 脚本加上许可证密钥?
运行 pip install sunlicense,在控制台创建一个 API 密钥,并在工具启动时调用 client.validate(key, host=machine_id)。它会返回 valid、HTTP 状态码以及包含 EXPIRED 或 TOO_MANY_MACHINES 等代码的 JSON 响应。SDK 只使用标准库,没有额外的依赖需要打包。
买家不能直接从 .py 文件里删掉验证吗?
执意的人可以做到:Python 源码可以被编辑,用 PyInstaller 打包也只是增加难度。密钥验证能阻止随手分享和退款后的副本。你的工具在你自己服务器上做的事情(例如它调用的 API)都可以在服务器端验证密钥,那里是删不掉的。
我可以把工具做成订阅制销售吗?
可以。使用订阅策略并连接商店:当 Gumroad 会员、Lemon Squeezy 订阅或 Stripe 订阅结束时,商店会通知 SunLicense,密钥随即被暂停。SunLicense 只负责许可证;你的工具具体做什么由你决定。
免费吗?
是的。Free 套餐包含三个产品、100 个许可证和每月 10,000 次许可证验证,无需信用卡。付费套餐每月 5 美元起,即使超出某项上限,买家的许可证验证也会继续正常工作。
SunLicense