الأدلة
وصفة: مفاتيح الترخيص
بِع تطبيقًا مكتبيًا، أو CLI، أو إضافة، أو قالبًا بمفاتيح ترخيص. يتحقق التطبيق من المفتاح دون أي سر بداخله.
يُصدر Perly Pay مفتاحًا حين يُنفَّذ الدفع، ويعدّ التفعيلات على الأجهزة، ويجيب عن «هل هذا المفتاح صالح لهذا المنتج هنا؟» عبر نقاط نهاية عامة. البرنامج الذي توزّعه يستخدم LicenseClient — ولا يحتاج إلى مفتاح سري.
sell-license-keys من إضافة Perly Pay. المثال القابل للتشغيل هو examples/license-keys (MIT) في مستودع الإضافة.كيف يعمل
- 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يُرفض الطلب (parameter_missing). مرّره دائمًا؛ ومفتاح أي شيء آخر يُجاب بـwrong_product. instance_nameيتغير مع كل تشغيل: كل تشغيل يستهلك تفعيلًا.