Rehberler
Tarif: SaaS aboneliği
Kriptoyla aylık ya da yıllık plan. Her dönem hatırlatmalı bir fatura; uygulama erişimin kimde olduğunu Perly Pay'e sorar.
Kripto bir cüzdandan çekilemez, bu yüzden abonelik faturayla yenilenir: dönem bitmeden alıcı sıradakini alır, ödenene kadar hatırlatmalar gelir. Otomatik tahsilat yok. Uygulama günleri kendisi saymaz — entitlements.check'e sorar.
sell-subscription skill'i uygular. Çalıştırılabilir örnek, eklenti deposundaki examples/saas-subscription (MIT).Nasıl çalışır
- 1
Plan
model: "subscription"verecurring.interval(month,year…) ile bir ürün ve fiyat; istersen deneme ve ek süre günleri. - 2
Abonelik
Müşteri olarak kullanıcıyla bu fiyata kesilen bir fatura, aboneliği ve ilk faturasını açar. Ödenmesi planı etkinleştirir.
- 3
Özelliklere erişim
entitlements.check({ customer_external_id, product })→has_accessveends_at, sunucuda, her ziyarette ya da kısa bir önbellekle. - 4
Dinle
invoice.fulfilled— ilk ödeme ve her yenileme;subscription.past_due,subscription.unpaidvesubscription.ended— uyarmak ve kapatmak için. - 5
Alıcı için yönetim
Müşteri portalı bağlantısı (
portalSessions.create): açık yenilemeyi ödemek, önceden ödemek ya da iptal etmek.
Ek süre günleri, plan değişikliği ve durumlar Subscriptions and reminders sayfasında.
Örneği çalıştır
- 1
Kur
examples/saas-subscriptioniçindenpm install(Node 20.12+). - 2
Anahtar
.env.exampledosyasını.envolarak kopyala ve test anahtarını (sk_test_…)PERLY_PAY_SECRET_KEYiçine yaz. - 3
Hazırla
npm run setupsenin anahtarınla bir ürün ve fiyat oluşturur ve.enviçin kimliklerini yazdırır. - 4
Çalıştır
README'sinde dediği gibi
npm start(ya danpm run dev). - 5
Cüzdansız öde
Ana sayfada abone ol, faturada Simulate payment'a bas, sonra
/pro?user=you@example.comadresini aç: Pro dönem sonuna kadar açık.
Tuzaklar
- "Cüzdanından biz çekeriz" diye söz vermek. Hiçbir şey tahsil edilmez; "faturayla yenilenir" de.
- Eksik ya da uydurma müşteri e-postası: yenileme faturaları ve hatırlatmalar oraya gider.
- Gecikmenin ilk dakikasında erişimi kapatmak.
past_due'nun ne anlama geldiğine karar ver (ek süre günleri içinde). - Alıcı ödemeden döndüğünde erişim açmak. "Ödendi" yalnızca doğrulanmış bir
invoice.fulfilledwebhook'u ya da sunucundan birentitlements.checkdemektir.