flutter_ryft_payment 0.1.0
flutter_ryft_payment: ^0.1.0 copied to clipboard
A Flutter plugin implementing Ryft payment SDKs for both Android and iOS platforms, offering credit card, Google Pay, and Apple Pay integration.
Flutter Ryft Payment #
A Flutter plugin implementing Ryft payment SDKs for both Android and iOS platforms.
Features #
- Process payments with credit/debit cards
- Support for Google Pay (Android) and Apple Pay (iOS)
- Drop-in UI for payment processing
- 3D Secure authentication support
- Support for saved payment methods
Installation #
Add this to your package's pubspec.yaml
file:
dependencies:
flutter_ryft_payment: ^0.1.0
Then run:
flutter pub get
Android Setup #
Ensure your minimum SDK version is set to 21 or higher in your android/app/build.gradle
file:
defaultConfig {
minSdkVersion 21
// ...
}
iOS Setup #
Ensure your minimum deployment target is set to iOS 12.0 or higher in your ios/Podfile
:
platform :ios, '12.0'
If you want to use Apple Pay, you'll need to add the necessary entitlements to your iOS app.
Usage #
Initializing the SDK #
Initialize the SDK as early as possible in your app, typically in the main.dart
file:
import 'package:flutter_ryft_payment/flutter_ryft_payment.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await RyftPayment().initialize(
publicApiKey: 'your_ryft_public_api_key',
);
runApp(MyApp());
}
Showing the Drop-in Payment UI #
To show the drop-in payment UI:
import 'dart:io';
import 'package:flutter_ryft_payment/flutter_ryft_payment.dart';
Future<void> showPaymentForm() async {
try {
final config = RyftPaymentConfiguration(
clientSecret: 'your_client_secret', // Get this from your backend
subAccountId: 'optional_sub_account_id', // Optional
collectCardholderName: true, // Whether to collect cardholder name
// Configure Apple Pay for iOS
applePayConfig: Platform.isIOS ? RyftApplePayConfiguration(
merchantIdentifier: 'merchant.com.yourcompany',
merchantName: 'Your Company',
merchantCountryCode: 'US',
) : null,
// Configure Google Pay for Android
googlePayConfig: Platform.isAndroid ? RyftGooglePayConfiguration(
merchantName: 'Your Company',
merchantCountryCode: 'US',
) : null,
);
final result = await RyftPayment().showDropIn(config: config);
// Handle the result
switch (result.status) {
case RyftPaymentResultStatus.approved:
print('Payment approved: ${result.paymentSession}');
break;
case RyftPaymentResultStatus.failed:
print('Payment failed: ${result.errorMessage}');
break;
case RyftPaymentResultStatus.cancelled:
print('Payment cancelled');
break;
case RyftPaymentResultStatus.requiresAction:
print('Payment requires additional action');
break;
}
} catch (e) {
print('Error showing payment form: $e');
}
}
Processing a Payment with a Card #
To process a payment with a card:
Future<void> processCardPayment() async {
try {
final paymentMethod = RyftCardPaymentMethod(
cardNumber: '4242424242424242',
expiryMonth: '12',
expiryYear: '2025',
cvc: '123',
cardholderName: 'John Doe', // Optional
storeCard: false, // Whether to store the card for future payments
);
final result = await RyftPayment().processCardPayment(
clientSecret: 'your_client_secret',
paymentMethod: paymentMethod,
subAccountId: 'optional_sub_account_id', // Optional
);
// Handle the result
// ...
} catch (e) {
print('Error processing card payment: $e');
}
}
Processing a Payment with a Saved Payment Method #
To process a payment with a saved payment method:
Future<void> processSavedPaymentMethod() async {
try {
final paymentMethod = RyftSavedPaymentMethod(
id: 'saved_payment_method_id',
);
final result = await RyftPayment().processSavedPaymentMethod(
clientSecret: 'your_client_secret',
paymentMethod: paymentMethod,
subAccountId: 'optional_sub_account_id', // Optional
);
// Handle the result
// ...
} catch (e) {
print('Error processing saved payment method: $e');
}
}
Processing a Payment with Google Pay (Android only) #
To process a payment with Google Pay:
Future<void> processGooglePayPayment() async {
try {
final paymentMethod = RyftGooglePayPaymentMethod(
token: 'google_pay_token', // Get this from the Google Pay SDK
);
final result = await RyftPayment().processGooglePayPayment(
clientSecret: 'your_client_secret',
paymentMethod: paymentMethod,
subAccountId: 'optional_sub_account_id', // Optional
);
// Handle the result
// ...
} catch (e) {
print('Error processing Google Pay payment: $e');
}
}
Processing a Payment with Apple Pay (iOS only) #
To process a payment with Apple Pay:
Future<void> processApplePayPayment() async {
try {
final result = await RyftPayment().processApplePayPayment(
clientSecret: 'your_client_secret',
subAccountId: 'optional_sub_account_id', // Optional
);
// Handle the result
// ...
} catch (e) {
print('Error processing Apple Pay payment: $e');
}
}
Example #
See the example directory for a complete sample app.
Contributing #
Contributions are welcome! If you find a bug or want a feature, please open an issue.
License #
This project is licensed under the MIT License - see the LICENSE file for details.