Skip to main content

Checkout Handler

Integrera Dodo Payments-kassan i din Tanstack-app.

Customer Portal

Låt kunder hantera prenumerationer och uppgifter.

Webhooks

Ta emot och bearbeta Dodo Payments webhook-händelser.

Installation

1

Install the package

Kör följande kommando i projektets rotmapp:
2

Set up environment variables

Skapa en .env-fil i projektets rotmapp:
Commit aldrig din .env-fil eller hemligheter till versionshantering.

Exempel på rutt-hanterare

Alla exempel förutsätter att du använder Tanstack App Router.
Använd denna handlare för att integrera Dodo Payments-kassan i din Tanstack-app. Stöder statiska (GET), dynamiska (POST) och sessionbaserade (POST) betalningsflöden.

Kassa-rutt-hanterare

Dodo Payments stöder tre typer av betalningsflöden för att integrera betalningar på din webbplats. Denna adapter stöder alla typer av betalningsflöden.
  • Statiska betalningslänkar: Omedelbart delbara URL:er för snabb, kodfri insamling av betalningar.
  • Dynamiska betalningslänkar: Programmera generera betalningslänkar med anpassade detaljer med hjälp av API:er eller SDK:er.
  • Kassa-sessioner: Skapa säkra, anpassningsbara kassaupplevelser med förkonfigurerade produktvagnar och kunddetaljer.

Parametrar som stöds

string
obligatorisk
Produktidentifierare (t.ex. ?productId=pdt_nZuwz45WAs64n3l07zpQR).
integer
Produktens kvantitet.
string
Kundens fullständiga namn.
string
Kundens förnamn.
string
Kundens efternamn.
string
Kundens e-postadress.
string
Kundens land.
string
Kundens adressrad.
string
Kundens ort.
string
Kundens delstat/provins.
string
Kundens postnummer.
boolean
Inaktivera fältet för fullständigt namn.
boolean
Inaktivera fältet för förnamn.
boolean
Inaktivera fältet för efternamn.
boolean
Inaktivera e-postfältet.
boolean
Inaktivera landsfältet.
boolean
Inaktivera fältet för adressrad.
boolean
Inaktivera ortsfältet.
boolean
Inaktivera delstatsfältet.
boolean
Inaktivera postnummerfältet.
string
Ange betalningsvalutan (t.ex. USD).
boolean
Visa valutaväljare.
number
Fastställer det debiterade beloppet i större valutaenheter (t.ex. 12.5 för 12,50 USD). Gäller endast Pay What You Want-produkter och ignoreras om beloppet understiger produktens minimipris.
boolean
Visa rabattfält.
string
Alla query-parametrar som börjar med metadata_ skickas som metadata.
Om productId saknas returnerar handlare ett 400-svar. Ogiltiga frågeparametrar resulterar också i ett 400-svar.

Svarformat

Statisk kassa returnerar ett JSON-svar med kassa-URL:en:
Dynamic Checkout använder proxyer för de utfasade POST /payments- och POST /subscriptions-endpoints. Det fortsätter att fungera för befintliga integrationer, men nya integrationer bör använda Checkout Sessions nedan.

Svarsformat

Dynamic checkout returnerar ett JSON-svar med checkout-URL:en:
Checkout sessions erbjuder en säkrare, hostad checkout-upplevelse som hanterar hela betalningsflödet för både engångsköp och prenumerationer, med full kontroll över anpassningen.Mer information och en fullständig lista över fält som stöds finns i Integrationsguide för Checkout Sessions.

Svarsformat

Checkout sessions returnerar ett JSON-svar med checkout-URL:en:

Customer Portal Route Handler

Customer Portal Route Handler gör det möjligt att integrera Dodo Payments kundportal sömlöst i din Tanstack-applikation.

Frågeparametrar

string
obligatorisk
Kund-ID:t för portalsessionen (t.ex. ?customer_id=cus_123).
boolean
Om värdet är true skickas ett e-postmeddelande till kunden med portallänken.
Returnerar 400 om customer_id saknas.

Webhook Route Handler

  • Method: Endast POST-begäranden stöds. Övriga metoder returnerar 405.
  • Signature Verification: Verifierar webhook-signaturen med webhookKey. Returnerar 401 om verifieringen misslyckas.
  • Payload Validation: Valideras med Zod. Returnerar 400 för ogiltiga payloads.
  • Error Handling:
    • 401: Ogiltig signatur
    • 400: Ogiltig payload
    • 500: Internt fel under verifieringen
  • Event Routing: Anropar rätt eventhanterare baserat på payload-typen.

Webhook-eventhanterare som stöds


Prompt för LLM

Senast ändrad 21 augusti 2026