cloudcard_flutter 0.0.5-dev-4
cloudcard_flutter: ^0.0.5-dev-4 copied to clipboard
Flutter SDK for card digitization and provisioning with Sudo
CloudCard Flutter #
A Flutter plugin for Sudo's CloudCard digital wallet API, enabling seamless digital card operations and contactless payments.
Overview #
CloudCard Flutter provides an interface for managing digital cards, including provisioning, management, and transactions. It wraps Sudo Africa's CloudCard API to offer a comprehensive solution for card lifecycle management, tokenization, and payment operations in your Flutter applications.
Installation #
1. Add the package to your pubspec.yaml #
dependencies:
cloudcard_flutter: <latest_version>
2. Configure Android Access #
Ensure your Android project has the required access to access sdk:
For older Gradle (pre-7):
In android/build.gradle:
allprojects {
repositories {
google()
mavenCentral()
maven {
url = uri("https://sdk.sudo.africa/repository/maven-releases/")
credentials {
username = project.findProperty("maven.repo.username") ?: ""
password = project.findProperty("maven.repo.password") ?: ""
}
}
}
}
For Gradle 7+ (Flutter 3.7+):
In android/settings.gradle:
dependencyResolutionManagement {
repositories {
google()
mavenCentral()
maven {
url = uri("https://sdk.sudo.africa/repository/maven-releases/")
credentials {
username = project.findProperty("maven.repo.username") ?: ""
password = project.findProperty("maven.repo.password") ?: ""
}
}
}
}
Replace YOUR_USERNAME and YOUR_PASSWORD with the credentials provided by Sudo Africa.
Getting Started #
Initialize the SDK #
Before using any features, initialize the SDK in your app's startup:
import 'package:cloudcard_flutter/cloudcard_flutter.dart';
Future<void> initializeCloudCard() async {
// Use true for sandbox, false for production environment
await cloudCardFlutter.init(isSandBox: true,
onCardScanned: (event){
//Handle navigation to card page
});
}
Sandbox vs Production #
- Sandbox Mode: Use for development and testing (set
isSandBox: true) - Production Mode: Use for live applications (set
isSandBox: false)
Core Features #
Register a Card #
Card registration data is retrieved after completing onboarding on the Sudo Africa platform.
final registrationData = RegistrationData(
walletId: 'wallet-id-from-sudo (institution id)',
paymentAppInstanceId: 'device Id eg Firebase ID',
accountId: 'account-id or cardId',
secret: 'secret-key',
jwtToken: 'jwt-token-from-sudo',
// Optional fields
cardNumber: '4111111111111111',
expiryDate: '12/25',
cardHolderName: 'John Doe',
);
final result = await CloudCardFlutter().registerCard(registrationData);
if (result.success) {
// Card successfully registered
}
Get Cards #
Retrieve all cards provisioned on the device (Limited to 1 card per device):
final cards = await CloudCardFlutter().getCards();
for (var card in cards) {
print('Card ID: ${card.id}, Last 4: ${card.last4}, Network: ${card.network}');
}
Generate EMV QR Code #
Create a one-time use customer-presented QR code that can be used to make payments on terminals as a physical card would:
final result = await CloudCardFlutter().getEmvQr(
cardId: 'card-id-here',
amount: '1000.00', // Optional, omit for dynamic amount
foregroundColorHex: '#000000', // Optional, defaults to #000000 (Black)
backgroundColorHex: '#FFFFFF', // Optional, defaults to #FFFFFF (White)
);
if (result.success && result.data != null) {
final qrCodeData = result.data!['qrCode'];
// Display QR code to user for payment
}
Get Saved Transactions #
You can retrieve up to 5 recently completed transactions from the CloudCard local cache. This can be useful for showing a transaction history page in your app. Returns List
final transactions = await cloudCardFlutter().getSavedTransactions();
for (var transaction in transactions) {
}
Additional Features #
- NFC Operations: Check NFC availability and set up payment defaults
- Card Management: Freeze/unfreeze cards, delete cards
- Security: Manage authentication requirements and key replenishment
- Token Management: Get token usage summaries and thresholds
Transaction Processing #
For transaction processing functionality, please use the companion library flutter_tappa.
Requirements #
- Flutter 2.5.0 or higher
- iOS 12.0+ / Android API level 21+
- NFC-enabled device for NFC contactless payments (Not required for QR payments)
License #
This project is licensed under the MIT License - see the LICENSE file for details.
Support #
For support, please contact [email protected] or visit sudo.africa.