@dodopayments/nextjs ger ditt Next.js App Router-projekt tre route handlers. Checkout returnerar checkout-URL:er, CustomerPortal skickar en kund till Customer Portal och Webhooks verifierar webhook-händelser och skickar dem vidare till din kod. Paketet stöder Next.js 14, 15 och 16.
Checkout Handler
Skapa checkout-URL:er med statiska, dynamiska och checkout session-flöden.
Customer Portal
Låt kunder hantera sina prenumerationer och uppgifter.
Webhooks
Ta emot och bearbeta Dodo Payments webhook-händelser.
Installation
1
Install the Package
Kör det här kommandot i projektets rotkatalog:Paketet kräver även Zod 3.25 eller Zod 4 som peer dependency.
2
Set Up Environment Variables
Skapa en fil med namnet
.env i projektets rotkatalog. Skapa API-nyckeln under Developer → API Keys och webhook-hemligheten under Developer → Webhooks i dashboarden:DODO_PAYMENTS_RETURN_URL är den sida som kunder kommer till efter checkout. Om du inte anger en miljö använder handlers live_mode.Exempel på route handlers
Alla exempel förutsätter att du använder Next.js App Router.
- Checkout Handler
- Customer Portal Handler
- Webhook Handler
Använd den här handlern för att lägga till Dodo Payments checkout i din app. En
GET-handler hanterar statisk checkout. En POST-handler hanterar checkout sessions, eller dynamisk checkout när du anger type: "dynamic".Checkout route handler
Checkout-handlern stöder alla tre sätt att ta betalt med Dodo Payments:- Statiska betalningslänkar: Delbara URL:er som samlar in betalningar utan kod.
- Dynamiska betalningslänkar: Betalningslänkar som du genererar med anpassade uppgifter. De använder föråldrade endpoints.
- Checkout sessions: Hosted checkout med en produktvarukorg, kunduppgifter och anpassningsalternativ. Detta är det rekommenderade flödet.
Static Checkout (GET)
Static Checkout (GET)
Parametrar som stöds
Fastställer det debiterade beloppet i större valutaenheter, till exempel
12.5 för $12.50. Fungerar endast med Pay What You Want-produkter och ignoreras om beloppet understiger produktens minimipris.returnUrl från sin konfiguration i länken som redirect_url.Svarsformat
Statisk checkout returnerar ett JSON-svar med checkout-URL:en. I testläge använder URL:entest.checkout.dodopayments.com.Dynamic Checkout (POST)
Dynamic Checkout (POST)
Checkout Sessions (POST)
Checkout Sessions (POST)
Checkout sessions skapar en hosted checkout för engångsköp och prenumerationer, med full kontroll över anpassningen.
product_cart är det enda obligatoriska fältet. Om bodyn inte innehåller return_url använder handlern returnUrl från sin konfiguration.Mer information och alla fält som stöds finns i Checkout Sessions Integration Guide.En session som skapats med payment_method_id returnerar ingen checkout-URL, så handlern svarar med 400. Om du vill debitera en sparad betalningsmetod skapar du sessionen med SDK:n i stället.Svarsformat
Checkout sessions returnerar ett JSON-svar med checkout-URL:en:Customer Portal route handler
Customer Portal route handler skapar en Customer Portal-session för kunden du anger och omdirigerar webbläsaren dit.Query-parametrar
Handlern returnerar 400 omcustomer_id saknas och 500 om portalsessionen inte kan skapas.
Webhook route handler
Webhook route handler verifierar varje begäran innan din kod körs:- Metod: Endast POST-begäranden stöds. Andra metoder returnerar 405.
- Signaturverifiering: Verifierar den råa request-bodyn mot headers
webhook-id,webhook-timestampochwebhook-signaturemedwebhookKey. Returnerar 401 om verifieringen misslyckas. - Validering av payload: Tolkar den verifierade bodyn som JSON och validerar den med Zod. Returnerar 400 när en tolkad payload inte följer webhook-schemat.
- Felhantering:
- 401: Ogiltig signatur
- 400: Ogiltig payload
- 500: Oväntade verifieringsfel, felaktig JSON eller fel som kastas av dina callbacks
- Event-routing: Anropar
onPayloadför varje event, sedan handlern för eventets typ, och returnerar 200.