До змісту

Посібники

Рецепт: ліцензійні ключі

Продавайте десктопний застосунок, CLI, плагін чи шаблон з ліцензійними ключами. Застосунок перевіряє ключ без жодного секрету всередині.

Відкрити як Markdown

Perly Pay видає ключ, коли оплату виконано, рахує активації на пристроях і відповідає «чи дійсний цей ключ для цього продукту тут?» через публічні ендпоінти. Програма, яку ви розповсюджуєте, використовує LicenseClient — йому секретний ключ не потрібен.

З асистентом: цей рецепт робить у вашому проєкті скіл sell-license-keys плагіна Perly Pay для Claude Code — плагін і його приклад examples/license-keys (MIT) уже на шляху. Доти будь-який асистент прочитає той самий скіл з /.well-known/skills/perly-pay-sell-license-keys/SKILL.md.

Як це працює

  1. 1

    Продукт, що видає ключі

    issues_license: true і license_activation_limit (пристроїв на ключ), з разовою, довічною, строковою ціною або підпискою.

  2. 2

    Продаж

    Платіжне посилання на сайті або рахунок на кожного покупця.

  3. 3

    Надішліть ключ

    За вебхуком license.created (його об'єкт — ключ) або через licenseKeys.list({ customer }) після invoice.fulfilled. У квитанції ключа немає.

  4. 4

    Активація в застосунку

    activate({ key, product, instance_name }) з назвою, що не змінюється на цьому пристрої; збережіть ідентифікатор активації.

  5. 5

    Перевірка під час запуску

    validate({ key, product, instance }). Чітке valid: false закриває; без мережі кілька днів діє остання добра відповідь.

import { LicenseClient } from "perly-pay";

const licenses = new LicenseClient(); // no secret key, ever
const result = await licenses.activate({ key, product: "prod_…", instance_name: deviceName });
if (!result.valid) showWhy(result.reason); // limit_reached, revoked, expired, …

Запустіть приклад

  1. 1

    Встановіть

    npm install у examples/license-keys (Node 20.12+).

  2. 2

    Ключ

    Скопіюйте .env.example у .env і впишіть тестовий ключ (sk_test_…) у PERLY_PAY_SECRET_KEY.

  3. 3

    Підготуйте

    npm run setup створює продукт і ціну вашим ключем та друкує їхні ідентифікатори для .env.

  4. 4

    Запустіть

    npm start (або npm run dev), як каже його README.

  5. 5

    Сплатіть без гаманця

    npm run buy-test -- you@example.com купує копію в тестовому режимі й друкує ключ; далі npm run app -- activate <key> і npm run app -- pro hello.

Пастки

  • Ключ sk_… усередині застосунку. Його витягне будь-хто; програма, яку ви поширюєте, використовує лише LicenseClient.
  • Без product ключ від будь-чого, що ви продаєте, відкриє і це.
  • instance_name, що змінюється з кожним запуском: кожен запуск з'їдає активацію.