cloudpayments_sdk 0.3.1
cloudpayments_sdk: ^0.3.1 copied to clipboard
CloudPayments for Flutter: card validation, cryptogram generation through the official native iOS and Android SDKs, the Payment API, and 3-D Secure in a native WebView.
Changelog #
0.3.1 - 2026-07-26 #
Bug Fixes #
- (ci) setup
OIDCtoken step - (637ec57)
Features #
- enhance payment handling with lifecycle management and touch blockers - (56f2f46)
Miscellaneous Chores #
- (readme) video showcase link - (26b44d9)
- (readme) gifs instead of video - (a7ee16e)
- (readme) reduce size for assets - (3578d08)
examplein.pubignore- (6226472)
Refactoring #
- (example) migrate to SwiftPM - (4f9639b)
0.3.0 - 2026-07-25 #
Bug Fixes #
Documentation #
- (example) correct the Android and iOS setup notes - (68c9a5c)
Features #
- (ios) resolve CloudPayments via Swift PM - (ceb9ce9)
- annotate the public API with @immutable and @useResult - (e92b60b)
- CI/CD workflow - (b921cb5)
Miscellaneous Chores #
- (README) add contact information for adopting the package - (c736f19)
- (example) check in the iOS Runner project - (587201f)
- (example) add the missing project files - (2ca6b46)
- (skip) change
darttoflutterin CI/CD - (fb7c15b) .pubignoreto exclude unnecessary files - (120e7ea)- remove .fvmrc - (a4bd45f)
Refactoring #
- move the plugin identifier to dev.arxdeus.flutter - (d4d51ee)
Unreleased #
- The plugin identifier moved from
ru.cloudpayments.fluttertodev.arxdeus.flutter. This covers the method channel name, the Android package, namespace and Maven group, the 3-D SecureIntentextra keys and the ProGuard rules. Nothing in the Dart API changes, and the CloudPayments SDK dependencies (ru.cloudpayments.sdk,ru.cloudpayments.gitpub…) are untouched. Apps that keep their own ProGuard rules for the plugin classes have to update the package name there.
0.3.0 #
-
Models, results, options and exceptions are annotated
@immutable, and pure serialisers, parsers and validators are annotated@useResult, so the analyzer catches a mutable subclass or a discardedtoJson()at compile time.ReceiptItemgained aconstconstructor as part of this; itsamountis now computed on read rather than at construction, with the same value as before. -
Android now requires AGP 8.13.0 or newer. API 37 is published only as
platforms;android-37.0, so older plugins cannot resolve thecompileSdk37 the CloudPayments AAR demands and fail withFailed to find Platform SDK with path: platforms;android-37. The module declares its compile SDK through therelease(37) { minorApiLevel = 0 }DSL. -
Fixed the
cpSdkHostmanifest placeholder replacing the whole placeholder map instead of adding to it, which dropped theapplicationNameplaceholder the Flutter Gradle plugin sets and broke the manifest merge. -
iOS dependency via Swift Package Manager. The plugin's
Package.swiftpulls CloudPayments 2.1.6 from gitpub, so SPM-enabled apps (default on Flutter 3.44+) no longer add CloudPayments git pods toios/Podfile. CocoaPods dual support remains: when SPM is disabled, the existing Podfile git-pod instructions still apply. Android still requires the JitPack repository.
0.2.0 #
- The ready-made CloudPayments payment form.
CloudpaymentsSdk.presentPaymentForm()opens the native SDK's own checkout —PaymentActivityon Android,PaymentOptionsViewControlleron iOS — which handles card entry, 3-D Secure and whichever of СБП, T‑Pay, SberPay, Долями and foreign cards the terminal has enabled. Outcomes come back as a sealedPaymentFormResult. - Subscriptions.
CloudpaymentsRecurrentcreates a subscription together with the first payment; CloudPayments charges every following period server-side, with no API secret and no further involvement from the app. Supported on both the form (presentPaymentForm(recurrent: ...)) and the low-level path (PaymentDetails.recurrent, folded intoJsonData). PaymentFormOptionscovers two-stage payments, the email field, payment-method order and single-method mode.
0.1.0 #
Initial release.
- Card data validation (Luhn, expiry, CVV, card system detection) implemented in pure Dart, using the same 14–19 digit range CloudPayments itself accepts.
- Card cryptogram packet generation delegated to the official CloudPayments native SDKs
(
ru.cloudpayments.gitpub.integrations.sdk:cloudpayments-androidon Android, theCloudpaymentspod on iOS), with the RSA key fetched frompayments/publickeyand passed in explicitly so the first payment after a cold install cannot fail. - CloudPayments Payment API client:
charge,auth,ThreeDSCallback,bins/infoandpayments/publickeywith a Public ID alone, pluspost3ds,confirm,void,refund,payments/get, token payments andtestfor server-side use with an API secret. - 3-D Secure handled by a native WebView screen: an
Activityon Android and a presentedUIViewControlleron iOS. Both official SDKs implement 3-D Secure 1 only. CloudpaymentsSdk.pay()runs the whole cycle in one call: cryptogram → charge or auth → 3-D Secure → callback → outcome.- Outcomes are values, not exceptions:
PaymentSuccess,PaymentDeclined,PaymentCancelled,PaymentFailureandPaymentRequiresThreeDsform a sealed hierarchy. An outcome that genuinely cannot be determined raises rather than being guessed at.