Anleitungen
Rezept: SaaS-Abo
Ein Monats- oder Jahrestarif gegen Krypto. Jeder Zeitraum ist eine Rechnung mit Erinnerungen; Ihre App fragt Perly Pay, wer Zugang hat.
Krypto lässt sich nicht von einer Wallet einziehen, daher verlängert sich ein Abo per Rechnung: Vor dem Ende des Zeitraums erhält der Käufer die nächste, dann Erinnerungen, bis sie bezahlt ist. Keine automatische Abbuchung. Ihre App zählt keine Tage selbst – sie fragt entitlements.check.
sell-subscription des Perly-Pay-Plugins in Ihrem Projekt um. Ein lauffähiges Beispiel ist examples/saas-subscription (MIT) im Repository des Plugins.So funktioniert es
- 1
Ein Tarif
Ein Produkt und ein Preis mit
model: "subscription"undrecurring.interval(month,year…), optional Test- und Kulanztage. - 2
Das Abo
Eine Rechnung auf diesen Preis mit dem Nutzer als Kunden eröffnet das Abo und seine erste Rechnung. Ihre Bezahlung macht den Tarif aktiv.
- 3
Zugang zu Funktionen
entitlements.check({ customer_external_id, product })→has_accessundends_at, auf dem Server, bei jedem Besuch oder mit kurzem Cache. - 4
Zuhören
invoice.fulfilled– die erste Zahlung und jede Verlängerung;subscription.past_due,subscription.unpaidundsubscription.ended– um zu warnen und zu sperren. - 5
Verwaltung für den Käufer
Ein Link zum Kundenportal (
portalSessions.create): eine offene Verlängerung bezahlen, im Voraus zahlen oder kündigen.
Kulanztage, Tarifwechsel und Status stehen unter Subscriptions and reminders.
Beispiel starten
- 1
Installieren
npm installinexamples/saas-subscription(Node 20.12+). - 2
Schlüssel
Kopieren Sie
.env.examplenach.envund tragen Sie einen Testschlüssel (sk_test_…) inPERLY_PAY_SECRET_KEYein. - 3
Vorbereiten
npm run setuplegt mit Ihrem Schlüssel Produkt und Preis an und gibt ihre IDs für.envaus. - 4
Starten
npm start(odernpm run dev), wie seine README sagt. - 5
Ohne Wallet bezahlen
Abonnieren Sie auf der Startseite, klicken Sie auf der Rechnung auf Simulate payment und öffnen Sie dann
/pro?user=you@example.com: Pro ist bis zum Ende des Zeitraums frei.
Fallstricke
- Versprechen „wir buchen automatisch von Ihrer Wallet ab“. Nichts wird eingezogen; sagen Sie „verlängert sich per Rechnung“.
- Fehlende oder erfundene E-Mail des Kunden: Verlängerungsrechnungen und Erinnerungen gehen dorthin.
- Den Zugang in der ersten Minute der Verspätung sperren. Entscheiden Sie, was
past_duebedeutet (innerhalb der Kulanztage). - Zugang freischalten, wenn der Käufer vom Bezahlen zurückkommt. „Bezahlt“ heißt nur ein verifizierter Webhook
invoice.fulfilledoderentitlements.checkvon Ihrem Server.