@dodopayments/nuxt fornisce alla tua app Nuxt tre gestori di route server. checkoutHandler restituisce gli URL di checkout, customerPortalHandler invia il cliente al Customer Portal e Webhooks verifica gli eventi webhook e li inoltra al tuo codice.
Checkout API Route
Crea URL di checkout da una server route di Nuxt.
Customer Portal API Route
Consenti ai clienti di gestire i propri abbonamenti e dettagli da una server route di Nuxt.
Webhooks API Route
Ricevi e verifica gli eventi webhook di Dodo Payments in Nuxt.
Panoramica
Il modulo registra i propri gestori come auto-import Nuxt server, quindi le tue route server chiamano
checkoutHandler, customerPortalHandler e Webhooks senza istruzioni di importazione. Ogni route legge le tue credenziali da runtimeConfig. Nuxt espone al browser solo runtimeConfig.public, quindi la chiave API e il segreto webhook restano sul server.Installazione
1
Install the Nuxt Module
Esegui questo comando nella directory principale del progetto:Il modulo elenca Nuxt 3 (3.13.1 o versioni successive) e
zod 3.25 o versioni successive come peer dependency.2
Register the Module in nuxt.config.ts
Aggiungi Imposta queste variabili dāambiente, ad esempio in un file
@dodopayments/nuxt al tuo array modules e associa le tue credenziali a runtimeConfig:nuxt.config.ts
.env nella directory principale del progetto:Un server Nuxt compilato non legge il tuo file
.env. In fase di esecuzione, Nuxt sovrascrive un valore runtimeConfig solo dalla variabile che corrisponde al relativo percorso, ad esempio NUXT_PRIVATE_RETURN_URL per private.returnUrl; quindi imposta queste variabili anche nellāambiente di hosting.Esempi di gestori per le API route
Gli esempi creano route server nella directory
server/routes/api/. Nuxt assegna le route ai file in base al nome e al suffisso del metodo, quindi checkout.get.ts gestisce GET /api/checkout.- Checkout API Route
- Customer Portal API Route
- Webhook API Route
Usa questo gestore per aggiungere il checkout di Dodo Payments alla tua app Nuxt. Una route GET fornisce il checkout statico. Una route POST fornisce le sessioni di checkout o il checkout dinamico quando imposti
type: "dynamic".checkout.post.ts fornisce un flusso POST. Usa lāesempio del checkout dinamico oppure quello della sessione di checkout:Gestore della route di checkout
Il gestore del checkout supporta tutti e tre i modi per accettare pagamenti con Dodo Payments:- Link di pagamento statici: URL condivisibili che raccolgono pagamenti senza codice.
- Link di pagamento dinamici: link di pagamento generati con dettagli personalizzati. Usano endpoint deprecati.
- Sessioni di checkout: checkout ospitato con carrello dei prodotti, dati del cliente e opzioni di personalizzazione. Ć il flusso consigliato.
checkoutHandler accetta queste opzioni:
Static Checkout (GET)
Static Checkout (GET)
Parametri della query supportati
string
obbligatorio
Identificatore del prodotto, ad esempio
?productId=pdt_nZuwz45WAs64n3l07zpQR.integer
predefinito:"1"
QuantitĆ del prodotto.
string
Nome completo del cliente. Ignorato se vengono forniti
firstName o lastName.string
Nome del cliente.
string
Cognome del cliente.
string
Indirizzo email del cliente.
string
Paese del cliente, come codice ISO 3166-1 alpha-2.
string
Riga dellāindirizzo del cliente.
string
CittĆ del cliente.
string
Stato o provincia del cliente.
string
CAP o codice postale del cliente.
boolean
Imposta su
true per disabilitare il campo del nome completo.boolean
Imposta su
true per disabilitare il campo del nome.boolean
Imposta su
true per disabilitare il campo del cognome.boolean
Imposta su
true per disabilitare il campo email.boolean
Imposta su
true per disabilitare il campo del paese.boolean
Imposta su
true per disabilitare il campo della riga dellāindirizzo.boolean
Imposta su
true per disabilitare il campo della cittĆ .boolean
Imposta su
true per disabilitare il campo dello stato.boolean
Imposta su
true per disabilitare il campo del CAP.string
Valuta del pagamento, ad esempio
USD.boolean
predefinito:"true"
Mostra o nascondi il selettore della valuta.
number
Imposta lāimporto addebitato, nelle unitĆ principali della valuta, ad esempio
12.5 per $12.50. Funziona solo con i prodotti Pay What You Want e viene ignorato se ĆØ inferiore al prezzo minimo del prodotto.boolean
predefinito:"true"
Mostra o nascondi la sezione degli sconti.
string
Qualsiasi parametro della query che inizia con
metadata_ viene passato come metadato.returnUrl dalla propria configurazione al link come redirect_url.Formato della risposta
Il checkout statico restituisce una risposta JSON con lāURL di checkout. In modalitĆ test, lāURL usatest.checkout.dodopayments.com.Dynamic Checkout (POST)
Dynamic Checkout (POST)
- Invia i parametri come corpo JSON in una richiesta POST.
- Supporta sia pagamenti una tantum sia ricorrenti.
billingecustomersono obbligatori.- Per tutti i campi del corpo supportati, consulta:
Formato della risposta
Il checkout dinamico restituisce una risposta JSON con lāURL di checkout:Checkout Sessions (POST)
Checkout Sessions (POST)
Le sessioni di checkout creano un checkout ospitato per acquisti una tantum e abbonamenti, con pieno controllo sulla personalizzazione.
product_cart ĆØ lāunico campo obbligatorio. Se il corpo non contiene return_url, il gestore usa returnUrl dalla propria configurazione.Per maggiori dettagli e per tutti i campi supportati, consulta la Guida allāintegrazione delle sessioni di checkout.Una sessione creata con payment_method_id non restituisce alcun URL di checkout, quindi il gestore risponde con 400. Per addebitare un metodo di pagamento salvato, crea la sessione con lāSDK.Formato della risposta
Le sessioni di checkout restituiscono una risposta JSON con lāURL di checkout:Gestore della route Customer Portal
Il gestore della route Customer Portal crea una sessione Customer Portal per il cliente specificato e reindirizza il browser a tale sessione.Parametri della query
string
obbligatorio
LāID cliente per la sessione del portale, ad esempio
?customer_id=cus_123.boolean
Se impostato su
true, Dodo Payments invia anche tramite email il link del portale al cliente.Gestore della route webhook
Il gestore della route webhook verifica ogni richiesta prima di eseguire il tuo codice:- Metodo: sono supportate solo le richieste POST. Gli altri metodi restituiscono 405.
- Verifica della firma: verifica il corpo grezzo della richiesta e gli header
webhook-id,webhook-timestampewebhook-signatureconwebhookKey, in conformitĆ alla specifica Standard Webhooks. Restituisce 401 se la verifica fallisce. - Convalida del payload: convalida il payload con Zod. Restituisce 400 per un payload non valido.
- Gestione degli errori:
- 401: firma non valida
- 400: payload non valido
- 500: errore interno durante la verifica
- Instradamento degli eventi: chiama
onPayloadper ogni evento, quindi il gestore per il tipo di evento, e restituisce 200.