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
- iOS
- Android
Lägg till en URL-typ för ditt schema i Vidarebefordra sedan inkommande URL:er (till exempel via
ios/Runner/Info.plist:ios/Runner/Info.plist
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
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.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 encheckout.dodopayments.comsessions-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.