Skip to main content
Detta är det officiella Flutter-paketet för Dodo Payments (dodopayments_checkout på pub.dev). Det finns även ett separat, community-byggt paket, se Community Projects.

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.
dodopayments_checkout öppnar Dodos hostade checkout i SFSafariViewController på iOS och i en Chrome Custom Tab på Android — samma inbyggda kärnor som används av de fristående iOS- och Android-SDK:erna. All checkoutlogik finns i dessa inbyggda kärnor; Dart-lagret vidarebefordrar anropet via en typad Pigeon-kanal. Det innehåller ingen API-nyckel och anropar aldrig Dodo Payments API. Kräver Flutter 3.44+ / Dart 3.12+, iOS 16+ och Android minSdk 23.

Installation

1

Add the Dependency

pubspec.yaml
2

Register a Callback URL Scheme

Lägg till en URL-typ för ditt schema i ios/Runner/Info.plist:
ios/Runner/Info.plist
Vidarebefordra sedan inkommande URL:er (till exempel via app_links) till SDK:t, eftersom SFSafariViewController inte kan fånga sin egen retur-URL:
Det är säkert att vidarebefordra alla URL:er här. handleOpenURL agerar endast på URL:er som matchar ditt registrerade returnUrl och löser false för allt annat.

Användning

Vad resultatet betyder

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

Verifiera betalningen

Webhooks

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

Get Payment Detail

Slå upp paymentId med din hemliga nyckel för att kontrollera dess status direkt.
Bevilja åtkomst efter att något av dessa har bekräftat betalningen, aldrig enbart från result.status.

Fel

start kastar CheckoutException endast vid felaktig användning eller ett plattformsfel. En avbruten eller nekad betalning är alltid ett resultat, aldrig ett undantag.
  • invalidCheckoutUrl (INVALID_CHECKOUT_URL): inte en checkout.dodopayments.com sessions-URL.
  • invalidReturnUrl (INVALID_RETURN_URL): inte en giltig absolut URL.
  • alreadyInProgress (ALREADY_IN_PROGRESS): en checkout körs redan.
  • platformError (PLATFORM_ERROR): oväntat plattformsfel.

Övergivna sessioner

Om appen avslutas mitt under checkouten återställer du sessionen vid nästa start och synkroniserar den med din backend.

Relaterat

Mobile Integration Guide

Samma kontrakt för Android, iOS och React Native.

Community Projects

Det finns även ett separat, community-byggt Flutter-paket.
Senast ändrad 31 juli 2026