Den här handledningen använder Node.js och Express. Du kan anpassa koden för ditt ramverk (Next.js, React, Vue osv.) och anpassa användargränssnittet så att det passar din applikation.
- Skapar prenumerationsprodukter med platsbaserad prissättning
- Ställer in tillägg för ytterligare platser
- Genererar betalningslänkar med anpassade tilläggsmängder
- Hanterar kassa-sessioner med dynamiska platsantal
Vad vi bygger
Låt oss skapa en platsbaserad prissättningsmodell:- Basplan: $49/månad för upp till 5 teammedlemmar
- Platstillägg: $2/månad per extra plats
- Betalningslänkar: Dynamisk checkout med anpassade platskvantiteter
Innan vi börjar, se till att du har:
- Ett Dodo Payments-konto
- Grundläggande kunskaper om TypeScript/Node.js
Steg 1: Skapa ditt plats-tillägg
Skapa ett tillägg som representerar extra platser. Det här tillägget kopplas till din basprenumeration och gör det möjligt för kunder att köpa extra platser.
1
Navigate to Add-Ons
- I din Dodo Payments-instrumentpanel, håll dig kvar i avsnittet Products
- Klicka på fliken Add-Ons
- Klicka på Create Add-On
2
Enter add-on details
Fyll i de här värdena för vårt plats-tillägg:Add-On Name:
Additional Team SeatDescription: Add extra team members to your workspace with full access to all featuresPrice: Enter → 2.00Valuta: Måste matcha din basprenumerationsvalutaSkattekategori: Välj lämplig kategori för din produkt.3
Save your add-on
- Granska alla dina inställningar:
- Namn: Ytterligare teamplats
- Pris: $2.00/månad
- Klicka på Create Add-On
Tillägg skapat! Ditt plats-tillägg finns nu tillgängligt för att kopplas till prenumerationer.
Steg 2: Skapa din basprenumerationsprodukt
Skapa en basprenumerationsprodukt som inkluderar 5 teammedlemmar. Detta blir grunden för din platsbaserade prismodell.
1
Navigate to Products
- Logga in på din Dodo Payments-instrumentpanel
- Klicka på Products i vänstra sidomenyn
- Klicka på knappen Create Product
- Välj Subscription som produkttyp
2
Fill in the subscription details
Nu anger vi de specifika detaljerna för vår basplan:Product Name:
MotionDescription: Where your team's documentation lives.Recurring Price: Enter → 49.00Billing Cycle: Select → MonthlyCurrency: Select your preferred currency (e.g., USD)Steg 3: Koppla tillägg till prenumeration
Koppla ditt platstillägg till basprenumerationen så att kunder kan köpa extra platser under checkout.1
Attach the seat add-on

- Scrolla ner till sektionen Tillägg
- Klicka på Lägg till Tillägg
- Välj ditt plats-tillägg från rullgardinsmenyn
- Bekräfta att det visas i din prenumerationskonfiguration
2
Save subscription changes
- Granska din fullständiga prenumerationskonfiguration:
- Basplan: $49/månad för 5 platser
- Tillägg: $2/månad per ytterligare plats
- Klicka på Spara ändringar
Platsbaserad prissättning har konfigurerats! Kunder kan nu köpa din basplan och lägga till extra platser efter behov.
Steg 4: Generera betalningslänkar med anpassade tilläggskvantiteter
Skapa en Express.js-applikation som genererar betalningslänkar med anpassade tilläggskvantiteter. Detta gör att du dynamiskt kan skapa checkout-sessioner med valfritt antal extra platser.1
Set up your project
Skapa ett nytt Node.js-projekt och installera de nödvändiga beroendena:Skapa en
tsconfig.json-fil:2
Create your environment file
Skapa en
.env-fil med din Dodo Payments API-nyckel:3
Implement the checkout session creation
Skapa en
src/server.ts-fil med följande kod:4
Add a simple web interface
Skapa en
public/index.html-fil för enkel testning:Webbgränssnittet har skapats! Du har nu ett enkelt användargränssnitt för att testa olika platskvantiteter.
5
Serve static files
Lägg till detta i din
src/server.ts för att visa HTML-filen:Statiska filer har konfigurerats! Besök
http://localhost:3000 för att se ditt demogränssnitt.Steg 5: Testa din implementation
Låt oss testa vår platsbaserade prismodell för att säkerställa att allt fungerar korrekt.1
Start your server
- Se till att du har din
.env-fil med rätt API-nyckel - Uppdatera produkt- och tilläggs-ID:na i koden med de faktiska värdena från din Dodo Payments-instrumentpanel
- Starta servern:
Servern bör starta utan problem och visa “Server is running on port 3000”
2
Test the web interface

- Öppna webbläsaren och gå till
http://localhost:3000 - Du bör se demogränssnittet för platsbaserad prissättning
- Testa olika platskvantiteter (0, 3, 10 osv.)
- Klicka på “Generate Checkout Link” för varje kvantitet
- Kontrollera att checkout-URL:erna genereras korrekt
3
Test a checkout session
- Generera en checkout-länk med 3 extra platser
- Klicka på checkout-URL:en för att öppna Dodo Payments checkout
- Kontrollera att checkout visar:
- Basplan: $49/månad
- Extra platser: 3 × 2 dollar = $6/månad
- Slutför testköpet
Checkout bör visa rätt prisuppdelning och låta dig slutföra köpet.
4
Listen for webhooks and update your database
Håll din databas synkroniserad med ändringar av prenumerationer och platser genom att lyssna efter webhook-händelser från Dodo Payments. Webhooks meddelar din backend när en kund slutför checkout, uppdaterar sin prenumeration eller ändrar antalet platser.Följ den officiella Dodo Payments-guiden för webhooks för stegvisa instruktioner om hur du konfigurerar webhook-endpoints och hanterar händelser:
Dodo Payments Webhooks Documentation
Lär dig hur du tar emot och bearbetar webhook-händelser för prenumerations- och platshantering på ett säkert sätt.
Felsökning
Vanliga problem och deras lösningar:Checkout creation failing
Checkout creation failing
Möjliga orsaker:
- Ogiltigt produkt-ID eller tilläggs-ID
- API-nyckeln har inte tillräckliga behörigheter
- Tillägget är inte korrekt kopplat till prenumerationen
- Problem med nätverksanslutningen
- Kontrollera att produkt- och tilläggs-ID:na finns i din Dodo Payments-instrumentpanel
- Kontrollera att tillägget är korrekt kopplat till prenumerationen
- Säkerställ att API-nyckeln har behörighet att skapa checkout-sessioner
- Testa API-anslutningen med en enkel GET-begäran
Grattis! Du har implementerat platsbaserad prissättning
Du har skapat ett platsbaserat prissättningssystem med Dodo Payments. Här är vad du har åstadkommit:Base Subscription
Skapat en prenumerationsprodukt med 5 inkluderade platser för $49/månad
Seat Add-ons
Konfigurerat tillägg för extra platser för $2/månad per plats
Checkout
Byggt ett API som genererar checkout-sessioner med anpassade platskvantiteter
Web Interface
Skapat ett enkelt webgränssnitt för att testa olika platskvantiteter
Det här exemplet visar en minimal implementation av platsbaserad prissättning. För produktionsanvändning bör du lägga till felhantering, autentisering, datavalidering och säkerhetsåtgärder samt anpassa logiken efter din applikations krav.