Skip to main content
Detta är det officiella Dodo Payments React Native checkout-SDK:t, @dodopayments/react-native-checkout. Det öppnar Dodo’s hosted checkout i en inbyggd webbläsarvy och returnerar ett typat resultat. Obs! Det finns ett äldre, orelaterat paket med namnet dodopayments-react-native-sdk (utan scope) med ett helt annat API. Den här sidan dokumenterar endast det aktuella officiella paketet med scope.

Checkout Sessions API

Skapa checkout_url som detta SDK öppnar från din backend.

Mobile Integration Guide

Se hur detta passar in i det fullständiga mobila betalningsflödet.
React Native SDK är ett tunt Turbo Module-omslag runt samma inbyggda Swift- och Kotlin-kärnor. Det öppnar SFSafariViewController på iOS och en Chrome Custom Tab på Android, innehåller ingen API-nyckel och anropar aldrig Dodo API direkt. All checkout-logik körs i webbläsaren; SDK:t hanterar bara vyernas livscykel och fångar upp retur-URL:en.
Detta SDK kräver endast New Architecture, React Native 0.76+, iOS 16+ och Android minSdk 24.

Installation

1

Install the Package

Paketet länkas automatiskt och hämtar com.dodopayments.api:checkout-android från Maven.
Ingen ytterligare konfiguration krävs; den inbyggda beroendet löses automatiskt.
2

Register a Callback URL Scheme

Din app måste registrera ett URL-schema för att ta emot retur-URL:en från checkout.
I android/app/build.gradle:
android/app/build.gradle
Ersätt "myapp" med din apps schema.

Användning

Vidarebefordra retur-URL:en

Lyssnaren Linking krävs för iOS-hantering av retur-URL:er. På Android är handleOpenURL en no-op som löser false eftersom Android-kärnan hanterar omdirigeringen inbyggt. Det är säkert att registrera lyssnaren ovillkorligen på båda plattformarna.

Vad resultatet betyder

result.status är en UI-ledtråd, inte ett bevis på betalning. Bekräfta varje betalning från din backend via webhooken payment.succeeded / subscription.active.
CheckoutStatus
obligatorisk
En av succeeded, failed, cancelled, pending, expired.
string
Anges när retur-URL:en innehöll en sådan. Visa den i gränssnittet, men använd den inte för att bevilja åtkomst. Se Verifiera betalningen nedan.
string
Anges för subscription-checkouter.
string[]
Anges när checkouten innehåller produkter med licensnycklar.
string
Anges när checkouten samlar in en e-postadress.
Record<string, string>
Varje frågeparameter från retur-URL:en, ordagrant.

Verifiera betalningen

Webhooks

Dodo Payments kontaktar din backend när en betalning lyckas eller en prenumeration aktiveras.

Get Payment Detail

Slå upp paymentId med din secret key för att kontrollera dess status direkt.
Bevilja åtkomst efter att en av dessa har bekräftat betalningen, aldrig enbart utifrån result.status.

Anpassning av utseendet

Anpassa checkout-webbläsarens verktygsfält, knappar och färgschema via customizationstart(...). Alternativen är grupperade efter plattform eftersom Androids Custom Tab och iOS:s SFSafariViewController exponerar olika inbyggda kontroller. Alla fält är valfria; om customization utelämnas används respektive plattformens standardutseende.
Color
Bakgrundsfärg för verktygsfältet.
Color
Färg på navigeringsfältet.
Color
Avdelarfärg ovanför navigeringsfältet.
'default' | 'back'
default visar systemets “X”-ikon; back ritar i stället en bakåtpil.
'start' | 'end'
Vilken sida av verktygsfältet som stängningsknappen visas på.
boolean
Visar verktygsfältets delningsikon.
boolean
Visar sidans titel under URL:en i verktygsfältet.
boolean
Låter verktygsfältet döljas automatiskt när sidan rullas.
boolean
Visar “Bokmärk den här sidan” i overflow-menyn.
boolean
Visar “Ladda ned sidan” i overflow-menyn.
'system' | 'light' | 'dark'
Tvingar fram ljust eller mörkt utseende oavsett enhetens systeminställning.
'done' | 'close' | 'cancel'
Etikett eller ikon för avvisningsknappen.
'pageSheet' | 'fullScreen'
pageSheet visas som ett kort som kan svepas bort; fullScreen täcker hela skärmen.
boolean
Låter verktygsfältet fällas ihop vid rullning. Visas endast när presentationStyle är fullScreenpageSheet håller fälten fixerade oavsett den här inställningen.
'system' | 'light' | 'dark'
Tvingar fram ljust eller mörkt utseende oavsett enhetens systeminställning.

Fel

start avvisar med ett CheckoutError endast vid felaktig användning eller ett plattformsfel. En avbruten eller nekad betalning är alltid ett resultat, aldrig ett undantag.
  • INVALID_CHECKOUT_URL: inte en checkout.dodopayments.com-session-URL.
  • INVALID_RETURN_URL: inte en giltig absolut URL.
  • ALREADY_IN_PROGRESS: en checkout körs redan.
  • PLATFORM_ERROR: oväntat plattformsfel.

Övergivna sessioner

Om appen eller JS-paketet avslutas mitt under checkout försvinner promise-objektet, men det inbyggda lagret behåller sessionen. Återställ den vid nästa mount och stäm av den mot din backend.

Relaterat

Mobile Integration Guide

Samma kontrakt för Android, iOS och Flutter.

Expo Boilerplate

Ett komplett Expo-exempel med checkout-integrering.
Senast ändrad 17 augusti 2026