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.
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.
Installation
1
Install the Package
- Android
- iOS
- Expo
Paketet länkas automatiskt och hämtar Ingen ytterligare konfiguration krävs; den inbyggda beroendet löses automatiskt.
com.dodopayments.api:checkout-android från Maven.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.
- Android (Gradle)
- iOS (Info.plist)
- Expo (both platforms)
I Ersätt
android/app/build.gradle:android/app/build.gradle
"myapp" med din apps schema.Användning
Vidarebefordra retur-URL:en
LyssnarenLinking 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
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.result.status.
Anpassning av utseendet
Anpassa checkout-webbläsarens verktygsfält, knappar och färgschema viacustomization på start(...). 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.
Android — Custom Tab
Android — Custom Tab
Color
Bakgrundsfärg för verktygsfältet.
Färg på navigeringsfältet.
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å.
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.
iOS — SFSafariViewController
iOS — SFSafariViewController
'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 fullScreen — pageSheet 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 encheckout.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.