Посібники
Рецепт: ліцензійні ключі
Продавайте десктопний застосунок, CLI, плагін чи шаблон з ліцензійними ключами. Застосунок перевіряє ключ без жодного секрету всередині.
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
Продукт, що видає ключі
issues_license: trueіlicense_activation_limit(пристроїв на ключ), з разовою, довічною, строковою ціною або підпискою. - 2
Продаж
Платіжне посилання на сайті або рахунок на кожного покупця.
- 3
Надішліть ключ
За вебхуком
license.created(його об'єкт — ключ) або черезlicenseKeys.list({ customer })післяinvoice.fulfilled. У квитанції ключа немає. - 4
Активація в застосунку
activate({ key, product, instance_name })з назвою, що не змінюється на цьому пристрої; збережіть ідентифікатор активації. - 5
Перевірка під час запуску
validate({ key, product, instance }). Чіткеvalid: falseзакриває; без мережі кілька днів діє остання добра відповідь.
Запустіть приклад
- 1
Встановіть
npm installуexamples/license-keys(Node 20.12+). - 2
Ключ
Скопіюйте
.env.exampleу.envі впишіть тестовий ключ (sk_test_…) уPERLY_PAY_SECRET_KEY. - 3
Підготуйте
npm run setupстворює продукт і ціну вашим ключем та друкує їхні ідентифікатори для.env. - 4
Запустіть
npm start(абоnpm run dev), як каже його README. - 5
Сплатіть без гаманця
npm run buy-test -- you@example.comкупує копію в тестовому режимі й друкує ключ; даліnpm run app -- activate <key>іnpm run app -- pro hello.
Пастки
- Ключ
sk_…усередині застосунку. Його витягне будь-хто; програма, яку ви поширюєте, використовує лишеLicenseClient. - Без
productключ від будь-чого, що ви продаєте, відкриє і це. instance_name, що змінюється з кожним запуском: кожен запуск з'їдає активацію.