İçeriğe geç

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.

Markdown olarak aç

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.

Asistanla: bu tarifi projende Perly Pay eklentisinin sell-subscription skill'i uygular. Çalıştırılabilir örnek, eklenti deposundaki examples/saas-subscription (MIT).

Nasıl çalışır

  1. 1

    Plan

    model: "subscription" ve recurring.interval (month, year…) ile bir ürün ve fiyat; istersen deneme ve ek süre günleri.

  2. 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. 3

    Özelliklere erişim

    entitlements.check({ customer_external_id, product }) → has_access ve ends_at, sunucuda, her ziyarette ya da kısa bir önbellekle.

  4. 4

    Dinle

    invoice.fulfilled — ilk ödeme ve her yenileme; subscription.past_due, subscription.unpaid ve subscription.ended — uyarmak ve kapatmak için.

  5. 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.

Subscribe, then gate
const invoice = await pay.invoices.create(
  { line_items: [{ price: PRO_MONTHLY }], customer: customer.id, metadata: { user: userId }, return_url },
  { idempotencyKey: `subscribe-${userId}-${today}` },
);
redirect(invoice.url); // invoice.subscription is the new subscription

const { has_access } = await pay.entitlements.check({ customer_external_id: userId, product: PRO });

Ek süre günleri, plan değişikliği ve durumlar Subscriptions and reminders sayfasında.

Örneği çalıştır

  1. 1

    Kur

    examples/saas-subscription içinde npm install (Node 20.12+).

  2. 2

    Anahtar

    .env.example dosyasını .env olarak kopyala ve test anahtarını (sk_test_…) PERLY_PAY_SECRET_KEY içine yaz.

  3. 3

    Hazırla

    npm run setup senin anahtarınla bir ürün ve fiyat oluşturur ve .env için kimliklerini yazdırır.

  4. 4

    Çalıştır

    README'sinde dediği gibi npm start (ya da npm run dev).

  5. 5

    Cüzdansız öde

    Ana sayfada abone ol, faturada Simulate payment'a bas, sonra /pro?user=you@example.com adresini 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.fulfilled webhook'u ya da sunucundan bir entitlements.check demektir.