Betalningar med Stripe och SaaS-faktureringssystem · Lektion

Hantering av prenumerationers livscykel och händelser

Hantera en prenumerations hela livscykel, inklusive pausning, återupptagning, uppsägning och förnyelsehändelser.

Lektion 3 av 411 steg

Hantering av prenumerationers livscykel och händelser är en gratis lektion i Betalningar med Stripe och SaaS-faktureringssystem på CoddyKit. Detta är lektion 3 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Betalningar med Stripe och SaaS-faktureringssystem, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Betalningar med Stripe och SaaS-faktureringssystem innehåller totalt 4 lektioner.

Översikt över prenumerationens livscykel

Att hantera prenumerationer handlar inte bara om att skapa dem, utan också om att hantera hela deras resa! Denna resa, eller livscykel, omfattar olika tillstånd som aktiv, pausad eller avslutad.

För att bygga flexibla och användarvänliga prenumerationstjänster är det viktigt att förstå hur ni programmatiskt övergår mellan dessa tillstånd.

  • Kundupplevelse: Ger användarna flexibilitet.
  • Bevarande: En paus kan förhindra att kunder lämnar.
  • Affärslogik: Reagera på ändringar i prenumerationens status.

Pausa prenumerationer

Ibland behöver kunder ta en paus utan att avsluta prenumerationen helt. Då är det praktiskt att pausa en prenumeration!

När en prenumeration pausas slutar Stripe att samla in betalningar under en angiven period eller tills prenumerationen återupptas. Detta kan förbättra kundlojaliteten avsevärt genom att erbjuda flexibilitet i stället för att tvinga fram ett fullständigt avslut.

Pausa via Stripe API

Ni kan pausa en prenumeration med Stripe API genom att uppdatera prenumerationen och ange parametern pause_collection. Här är ett kort Java-exempel:

import com.stripe.Stripe;
import com.stripe.exception.StripeException;
import com.stripe.model.Subscription;
import com.stripe.param.SubscriptionUpdateParams;

import java.util.HashMap;
import java.util.Map;

public class PauseSubscription {
  public static void main(String[] args) {
    Stripe.apiKey = "sk_test_YOUR_SECRET_KEY"; // Replace with your actual secret key

    String subscriptionId = "sub_12345"; // Replace with a real subscription ID

    try {
      SubscriptionUpdateParams params = SubscriptionUpdateParams.builder()
          .setPauseCollection(SubscriptionUpdateParams.PauseCollection.builder()
              .setBehavior(SubscriptionUpdateParams.PauseCollection.Behavior.MARK_UNPAID)
              .build())
          .build();

      Subscription subscription = Subscription.retrieve(subscriptionId);
      subscription = subscription.update(params);

      System.out.println("Subscription " + subscription.getId() + " paused. Status: " + subscription.getStatus());
    } catch (StripeException e) {
      System.err.println("Error pausing subscription: " + e.getMessage());
    }
  }
}

Förstå pausens beteende

I föregående exempel använde vi MARK_UNPAID för pause_collection.behavior. Det innebär att alla fakturor som förfaller under pausperioden markeras som obetalda.

Andra beteenden är:

  • VOID: Fakturor som förfaller under pausen makuleras.
  • KEEP_AS_DRAFT: Fakturor skapas men förblir i utkaststatus.

Välj det beteende som bäst passar er affärslogik för hur fakturering ska hanteras under en paus.

Återuppta prenumerationer

Efter en paus kan en kund vilja fortsätta sin prenumeration. Att återuppta en prenumeration försätter den i aktivt tillstånd igen, och faktureringen återupptas enligt det ursprungliga schemat.

Detta är en enkel process som ofta initieras av kunden via en självbetjäningsportal eller av en administratör.

Återuppta via Stripe API

För att återuppta en pausad prenumeration uppdaterar ni den helt enkelt och sätter parametern pause_collection till null. Då tar Stripe bort pausen och startar om faktureringen.

import com.stripe.Stripe;
import com.stripe.exception.StripeException;
import com.stripe.model.Subscription;
import com.stripe.param.SubscriptionUpdateParams;

public class ResumeSubscription {
  public static void main(String[] args) {
    Stripe.apiKey = "sk_test_YOUR_SECRET_KEY"; // Replace with your actual secret key

    String subscriptionId = "sub_12345"; // Replace with a real subscription ID

    try {
      SubscriptionUpdateParams params = SubscriptionUpdateParams.builder()
          .setPauseCollection(null) // Setting to null removes the pause
          .build();

      Subscription subscription = Subscription.retrieve(subscriptionId);
      subscription = subscription.update(params);

      System.out.println("Subscription " + subscription.getId() + " resumed. Status: " + subscription.getStatus());
    } catch (StripeException e) {
      System.err.println("Error resuming subscription: " + e.getMessage());
    }
  }
}

Avsluta prenumerationer

Förr eller senare vill vissa kunder avsluta sin prenumeration. Stripe erbjuder två huvudsakliga sätt att göra detta:

  • Omedelbart: Prenumerationen avslutas direkt, och proportionell debitering kan tillämpas.
  • Vid periodens slut: Prenumerationen förblir aktiv till slutet av den aktuella faktureringsperioden och avslutas sedan. Detta är ofta bättre för kundupplevelsen.

Avsluta via Stripe API

För att avsluta en prenumeration använder ni metoden Subscription.cancel(). Ni kan ange om prenumerationen ska avslutas omedelbart eller i slutet av den aktuella perioden.

import com.stripe.Stripe;
import com.stripe.exception.StripeException;
import com.stripe.model.Subscription;
import com.stripe.param.SubscriptionCancelParams;

public class CancelSubscription {
  public static void main(String[] args) {
    Stripe.apiKey = "sk_test_YOUR_SECRET_KEY"; // Replace with your actual secret key

    String subscriptionId = "sub_12345"; // Replace with a real subscription ID

    try {
      // To cancel at the end of the current period:
      SubscriptionCancelParams params = SubscriptionCancelParams.builder()
          .setAtPeriodEnd(true)
          .build();

      Subscription subscription = Subscription.retrieve(subscriptionId);
      subscription = subscription.cancel(params);

      System.out.println("Subscription " + subscription.getId() + " status: " + subscription.getStatus() + ". Cancel at period end: " + subscription.getCancelAtPeriodEnd());

      // To cancel immediately (setAtPeriodEnd(false) or omit):
      // subscription = subscription.cancel();
      // System.out.println("Subscription " + subscription.getId() + " canceled immediately. Status: " + subscription.getStatus());

    } catch (StripeException e) {
      System.err.println("Error canceling subscription: " + e.getMessage());
    }
  }
}

Hantera förnyelsehändelser

Förnyelser av prenumerationer är viktiga händelser i livscykeln. Stripe skickar olika webhook-händelser som meddelar applikationen om dessa händelser.

  • customer.subscription.updated: Utlöses när en prenumeration förnyas, ändras eller avslutas.
  • invoice.payment_succeeded: Anger att betalningen för en förnyelsefaktura lyckades.
  • invoice.payment_failed: Anger att betalningen för en förnyelsefaktura misslyckades.

Genom att lyssna efter dessa händelser kan ni uppdatera användaråtkomst, skicka notifieringar och logga ändringar i faktureringen.

Snabbtest: prenumerationstillstånd

Vilka av följande åtgärder kan utföras för att hantera en prenumerations livscykel med Stripes API?

Sammanfattning: livscykelhantering

I den här lektionen utforskade vi hur ni hanterar en prenumerations hela livscykel med Stripes API.

  • Ni lärde er att pausa prenumerationer för ökad flexibilitet.
  • Ni såg hur ni återupptar pausade prenumerationer.
  • Vi gick igenom hur prenumerationer avslutas, både omedelbart och i slutet av faktureringsperioden.
  • Slutligen berörde vi vikten av webhook-händelser för att övervaka förnyelser och andra viktiga livscykelförändringar.

När ni behärskar dessa koncept kan ni bygga robusta och användarvänliga prenumerationsupplevelser!

Gratis att börja

Lär dig Betalningar med Stripe och SaaS-faktureringssystem med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
12
Lektioner
48

Vanliga frågor

Är lektionen ”Hantering av prenumerationers livscykel och händelser” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Betalningar med Stripe och SaaS-faktureringssystem, inklusive ”Hantering av prenumerationers livscykel och händelser”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Betalningar med Stripe och SaaS-faktureringssystem innehåller totalt 4 lektioner.

Vad lär jag mig i ”Hantering av prenumerationers livscykel och händelser”?

Hantera en prenumerations hela livscykel, inklusive pausning, återupptagning, uppsägning och förnyelsehändelser. Ni övar på Betalningar med Stripe och SaaS-faktureringssystem med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Betalningar med Stripe och SaaS-faktureringssystem?

Du behöver inga förkunskaper. Utbildningen i Betalningar med Stripe och SaaS-faktureringssystem på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 4.

Hur lång tid tar lektionen ”Hantering av prenumerationers livscykel och händelser”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Betalningar med Stripe och SaaS-faktureringssystem-lektionen?

Ja. Varje Betalningar med Stripe och SaaS-faktureringssystem-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Hantera provperioder och planuppgraderingar
  2. Implementera proportionella debiteringar och mätbaserad fakturering
  3. Hantering av prenumerationers livscykel och händelser
  4. Kuponger, rabatter och kampanjkoder
← Tillbaka till Betalningar med Stripe och SaaS-faktureringssystem