@dodopayments/nuxt ger din Nuxt-app tre serverrout-hanterare. checkoutHandler returnerar checkout-URL:er, customerPortalHandler skickar en kund till Customer Portal och Webhooks verifierar webhook-händelser och dirigerar dem till din kod.
Checkout API Route
Skapa checkout-URL:er från en Nuxt-serverrutt.
Customer Portal API Route
Låt kunder hantera sina prenumerationer och uppgifter från en Nuxt-serverrutt.
Webhooks API Route
Ta emot och verifiera webhook-händelser från Dodo Payments i Nuxt.
Översikt
Modulen registrerar sina hanterare som automatiskt importerade Nuxt-servermoduler, så dina serverrutter anropar
checkoutHandler, customerPortalHandler och Webhooks utan import-satser. Varje rutt läser dina autentiseringsuppgifter från runtimeConfig. Nuxt exponerar endast runtimeConfig.public för webbläsaren, så API-nyckeln och webhook-hemligheten förblir på servern.Installation
1
Install the Nuxt Module
Kör det här kommandot i projektets rotkatalog:Modulen anger Nuxt 3 (3.13.1 eller senare) och
zod 3.25 eller senare som peer dependencies.2
Register the Module in nuxt.config.ts
Lägg till Ange dessa miljövariabler, till exempel i en
@dodopayments/nuxt i arrayen modules och mappa dina autentiseringsuppgifter till runtimeConfig:nuxt.config.ts
.env-fil i projektets rotkatalog:En byggd Nuxt-server läser inte din
.env-fil. Vid körning åsidosätter Nuxt ett värde i runtimeConfig endast från variabeln som motsvarar dess sökväg, till exempel NUXT_PRIVATE_RETURN_URL för private.returnUrl. Ange därför även dessa variabler i din hostingmiljö.Exempel på API-rout-hanterare
Exemplen skapar serverrutter i katalogen
server/routes/api/. Nuxt routar varje fil efter dess namn och metodsuffix, så checkout.get.ts hanterar GET /api/checkout.- Checkout API Route
- Customer Portal API Route
- Webhook API Route
Använd den här hanteraren för att lägga till Dodo Payments checkout i din Nuxt-app. En GET-rutt tillhandahåller statisk checkout. En POST-rutt tillhandahåller checkout-sessioner eller dynamisk checkout när du anger
type: "dynamic".checkout.post.ts tillhandahåller ett POST-flöde. Använd antingen exemplet med dynamisk checkout eller exemplet med checkout-session:Checkout-rout-hanterare
Checkout-hanteraren stöder alla tre sätten att ta emot betalningar 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-sessioner: Hosted checkout med en produktvagn, kunduppgifter och anpassningsalternativ. Detta är det rekommenderade flödet.
checkoutHandler tar emot dessa alternativ:
Static Checkout (GET)
Static Checkout (GET)
Exempel på query-parametrar
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-sessioner 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 bodyt inte innehåller return_url använder hanteraren returnUrl från sin konfiguration.Se Checkout Sessions Integration Guide för mer information och alla fält som stöds.En session som skapats med payment_method_id returnerar ingen checkout-URL, så hanteraren svarar med 400. Om du vill debitera en sparad betalningsmetod skapar du sessionen med SDK:t i stället.Svarsformat
Checkout-sessioner returnerar ett JSON-svar med checkout-URL:en:Customer Portal-rout-hanterare
Customer Portal-rout-hanteraren skapar en Customer Portal-session för kunden du anger och omdirigerar webbläsaren dit.Query-parametrar
Webhook-rout-hanterare
Webhook-rout-hanteraren verifierar varje request innan din kod körs:- Metod: Endast POST-requests stöds. Andra metoder returnerar 405.
- Signaturverifiering: Verifierar den råa request-body:n och headerarna
webhook-id,webhook-timestampochwebhook-signaturemedwebhookKeyenligt specifikationen Standard Webhooks. Returnerar 401 om verifieringen misslyckas. - Payload-validering: Validerar payloaden med Zod. Returnerar 400 för en ogiltig payload.
- Felhantering:
- 401: Ogiltig signatur
- 400: Ogiltig payload
- 500: Internt fel under verifieringen
- Händelsedirigering: Anropar
onPayloadför varje händelse, därefter hanteraren för händelsetypen, och returnerar 200.