SunLicense登录
面向 discord.js、discord.py 和 JDA 开发者

你的 Discord 机器人高级版,每个密钥一个服务器。

按服务器开通高级版。订阅结束,高级版随之结束。

创建免费账号

Free 套餐 · 无需信用卡 · 几分钟完成设置

在用 AI 智能体写代码?粘贴一段提示词
  • discord.js
  • discord.py
  • JavaJDA
  • Discord
  • Stripe
  • Gumroad
  • Lemon Squeezy
  • Ko-fi
  • BuiltByBit
你将获得

为你的销售方式而打造。

按服务器开通高级版

服务器 ID 被当作设备。

host: guildId

订阅按时结束

Stripe、Gumroad 和 Lemon Squeezy 会暂停已结束的订阅。

密钥共享警报

带“暂停”按钮的红色警报。

高级版角色

买家用购买邮箱认领。

自行迁移高级版

买家可以自行释放服务器名额,无需工单。

自托管,每个买家一份

模板在启动时以及每 6 小时验证一次。

工作原理

一个下午上线高级版。

  1. 1免费创建账号
  2. 2连接 Stripe 或 Gumroad
  3. 3添加 /premium 命令
premium.js
import { MessageFlags } from "discord.js";
import { SunLicense } from "sunlicense";

const sl = new SunLicense({ baseUrl: "https://api.sunlicense.com",
  token: process.env.SUNLICENSE_API_KEY });

// /premium activate key:AX8P-XXXX-XXXX-XXXX
export async function activate(interaction) {
  const key = interaction.options.getString("key", true);
  // the guild is the "machine": a 1-server policy stops sharing
  const r = await sl.validate(key, { host: interaction.guildId });
  if (r.valid) await premiumGuilds.save(interaction.guildId, key);
  await interaction.reply({ flags: MessageFlags.Ephemeral, content: r.valid
    ? "✓ Premium active in this server"
    : `This server has no premium license (${r.data?.code})` });
}
常见问题

常见问题解答。

如何把高级版授予一个 Discord 服务器而不是一个用户?

验证密钥时把服务器(guild)ID 作为设备 ID 传入。这样策略的设备上限计算的就是服务器数量:单服务器档位设为 1,多服务器档位设得更多。把密钥与服务器一起保存,每隔几小时重新验证一次,以便退款或订阅结束能及时作用到你的机器人。

支持 Patreon 吗?

目前没有 Patreon 集成。Stripe Checkout、Gumroad 会员和 Lemon Squeezy 订阅会在订阅结束时自动暂停密钥,Ko-fi Shop 订单也会发放密钥。对于 Patreon 支持者,你可以在控制台或在 Discord 中用 /license issue 发放密钥,并手动吊销。

高级版的验证会消耗我的套餐额度吗?

在密钥激活时验证并缓存结果,每隔几小时重新验证一次,而不是每条命令都验证。Free 套餐每月包含 10,000 次验证,超出后验证也不会被拒绝或减速:Owner 会在用量达到 80% 和 100% 时收到邮件。

我可以销售机器人的自托管版本吗?

会。我们在 GitHub 上的 discord.js 和 JDA 模板会在机器人启动时验证买家的密钥,每 6 小时重新验证一次,无法连接 SunLicense 时退而使用签名的离线许可证文件,并在密钥被吊销时下线。每个密钥可在其策略允许的设备数量上运行。discord.py 可以用 Python SDK 完成同样的验证。

为高级版收费,并让它一直付费。

  • Free 套餐
  • 无需信用卡
  • 随时可取消