Skip to main content
The @dodopayments/convex component adds Dodo Payments to your Convex backend. It provides a checkout function that creates checkout sessions, a customerPortal function that opens the Customer Portal for the signed-in user, and createDodoWebhookHandler, which verifies webhooks in a Convex HTTP action. It requires Convex 1.26 or later.

Checkout Function

Skapa checkout-sessioner från Convex-actions.

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:
2

Add Component to Convex Config

Lägg till Dodo Payments-komponenten i din Convex-konfiguration:
När du har redigerat convex.config.ts kör du npx convex dev en gång för att generera typerna.
3

Set Up Environment Variables

Ange miljövariabler i Convex-instrumentpanelen under Settings → Environment Variables. Öppna instrumentpanelen genom att köra:
Lägg till dessa miljövariabler:
  • DODO_PAYMENTS_API_KEY: Din Dodo Payments API-nyckel, från Developer → API Keys i Dodo Payments-instrumentpanelen.
  • DODO_PAYMENTS_ENVIRONMENT: test_mode eller live_mode.
  • DODO_PAYMENTS_WEBHOOK_SECRET: Din webhook-hemlighet, från Developer → Webhooks. Krävs för webhook-hantering. Webhook-hanteraren läser exakt det här variabelnamnet.
Lagra hemligheter som Convex-miljövariabler. Convex-backendfunktioner läser inte .env-filer. Checka aldrig in hemligheter i versionshanteringen.

Exempel på komponentkonfiguration

1

Create Internal Query

Skapa en intern query som hittar en kund i din databas med hjälp av auth-ID:t. Funktionen identify i nästa steg använder den för att hämta den inloggade användarens Dodo Payments-kund-ID till kundportalen.
Komponenten definierar inget schema. Innan du använder den här queryn definierar du en customers-tabell med ett by_auth_id-index i convex/schema.ts, eller ändrar queryn så att den matchar ditt befintliga schema.
2

Configure DodoPayments Component

Skapa klienten. identify mappar den inloggade Convex-användaren till ett Dodo Payments-kund-ID. Den returnerar null om ingen användare är inloggad eller om ingen kund matchar.
Lägg sedan till de funktioner du behöver:
Använd den här funktionen för att lägga till Dodo Payments checkout i din Convex-app. Den skapar en checkout-session från de fält som accepteras av komponentens validator för checkout-payload.

Checkout-funktion

Convex-komponenten skapar checkout-sessioner, det rekommenderade checkout-flödet för alla betalningar. En session innehåller produktvarukorgen, kunduppgifter och checkout-alternativ.

Användning

Anropa checkout från en Convex-action med checkout-sessionens fält i payload:
checkout anropar inte identify. Om du vill koppla en befintlig kund skickar du customer: { customer_id } i payloaden. Mer information och en fullständig lista över fält som stöds finns i Checkout-sessioner. En session som skapas med payment_method_id returnerar ingen checkout-URL, så checkout kastar ett fel för den.

Svarsformat

Checkout-funktionen returnerar ett objekt med checkout-URL:en:

Customer Portal-funktion

Kundportalsfunktionen returnerar en Customer Portal-URL för den inloggade användaren.

Användning

Den returnerar ett objekt med ett portal_url-fält.

Parametrar

boolean
standard:"false"
Om det anges till true skickar Dodo Payments även portal-länken via e-post till kunden.
customerPortal hämtar kunden från funktionen identify i din DodoPayments-konfiguration, som måste returnera kundens dodoCustomerId. Om identify returnerar null kastar customerPortal ett User is not authenticated.-fel.

Webhook-hanterare

createDodoWebhookHandler verifierar varje begäran innan din kod körs:
  • Method: Registrera routen med method: "POST". Begäranden med andra metoder når inte hanteraren.
  • Signature Verification: Verifierar Standard Webhooks-signaturen med miljövariabeln DODO_PAYMENTS_WEBHOOK_SECRET. Returnerar 400 om verifieringen misslyckas.
  • Payload Validation: Valideras med Zod. Returnerar 400 för ogiltiga payloads.
  • Error Handling:
    • 400: Ogiltig signatur, ogiltig payload eller ett fel som kastats av en av dina hanterare
    • 200: Alla hanterare har slutförts
    • Om DODO_PAYMENTS_WEBHOOK_SECRET inte har angetts kastar hanteraren ett fel och begäran misslyckas.
  • Event Routing: Anropar onPayload för varje händelse och därefter hanteraren för händelsetypen.

Webhook-händelsehanterare som stöds

Varje hanterare tar emot Convex ActionCtx och den verifierade payloaden för sin händelsetyp:

Användning i frontend

Anropa checkout- och portal-actions från dina React-komponenter med hooken useAction från convex/react.

Prompt för LLM

Kopiera den här prompten till din AI-kodningsassistent för att få den att lägga till komponenten i ditt projekt. Om du även vill ge din agent Dodo Payments-dokumentationen och färdigheterna installerar du Agent Plugin.
Senast ändrad 26 september 2026