diff --git a/android/build.gradle b/android/build.gradle index 17a89c3d..bb78690b 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -2,14 +2,14 @@ group 'co.paystack.flutterpaystack' version '1.0-SNAPSHOT' buildscript { - ext.kotlin_version = '1.7.20' + ext.kotlin_version = '1.9.21' repositories { mavenCentral() google() } dependencies { - classpath 'com.android.tools.build:gradle:7.4.0-rc02' + classpath 'com.android.tools.build:gradle:7.4.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } @@ -25,7 +25,7 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' android { - compileSdkVersion 32 + compileSdkVersion 33 sourceSets { main.java.srcDirs += 'src/main/kotlin' diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties index 8212ba0d..43292bf6 100644 --- a/android/gradle/wrapper/gradle-wrapper.properties +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip diff --git a/example/android/app/build.gradle b/example/android/app/build.gradle index 7e28387a..8202776b 100644 --- a/example/android/app/build.gradle +++ b/example/android/app/build.gradle @@ -28,7 +28,7 @@ android { defaultConfig { applicationId "co.paystack.flutterpaystack" - minSdkVersion 16 + minSdkVersion flutter.minSdkVersion targetSdkVersion 32 versionCode 1 versionName "1.0" @@ -44,4 +44,4 @@ android { flutter { source '../..' -} \ No newline at end of file +} diff --git a/example/android/build.gradle b/example/android/build.gradle index bef5f7b2..9065050a 100644 --- a/example/android/build.gradle +++ b/example/android/build.gradle @@ -26,6 +26,6 @@ subprojects { project.evaluationDependsOn(':app') } -task clean(type: Delete) { +tasks.register("clean", Delete) { delete rootProject.buildDir } diff --git a/example/lib/main.dart b/example/lib/main.dart index 87a7123e..5f863dab 100644 --- a/example/lib/main.dart +++ b/example/lib/main.dart @@ -272,6 +272,7 @@ class _HomePageState extends State { charge: charge, fullscreen: false, logo: MyLogo(), + uploadInformation: null, ); print('Response = $response'); setState(() => _inProgress = false); diff --git a/lib/src/common/paystack.dart b/lib/src/common/paystack.dart index 1af8bb4c..1e3f5c61 100644 --- a/lib/src/common/paystack.dart +++ b/lib/src/common/paystack.dart @@ -121,6 +121,7 @@ class PaystackPlugin { Future checkout( BuildContext context, { required Charge charge, + required dynamic uploadInformation, CheckoutMethod method = CheckoutMethod.selectable, bool fullscreen = false, Widget? logo, @@ -135,6 +136,7 @@ class PaystackPlugin { logo: logo, hideAmount: hideAmount, hideEmail: hideEmail, + uploadInformation: uploadInformation, ); } @@ -167,6 +169,7 @@ class _Paystack { required Charge charge, required CheckoutMethod method, required bool fullscreen, + required dynamic uploadInformation, bool hideEmail = false, bool hideAmount = false, Widget? logo, @@ -202,6 +205,7 @@ class _Paystack { logo: logo, hideAmount: hideAmount, hideEmail: hideEmail, + uploadInformation: uploadInformation, ), ); return response == null ? CheckoutResponse.defaults() : response; diff --git a/lib/src/models/checkout_response.dart b/lib/src/models/checkout_response.dart index 1a8b03ac..6132dfba 100644 --- a/lib/src/models/checkout_response.dart +++ b/lib/src/models/checkout_response.dart @@ -48,6 +48,18 @@ class CheckoutResponse { this.account}) : assert(card != null || account != null); + Map toMap() { + return { + 'message': message.toString(), + 'card': card.toString(), + 'account': account.toString(), + 'reference': reference.toString(), + 'status': status.toString(), + 'method': method.toString(), + 'verify': verify.toString(), + }; + } + @override String toString() { return 'CheckoutResponse{message: $message, card: $card, account: $account, reference: $reference, status: $status, method: $method, verify: $verify}'; diff --git a/lib/src/widgets/checkout/checkout_widget.dart b/lib/src/widgets/checkout/checkout_widget.dart index 6e467620..9b1b9de2 100644 --- a/lib/src/widgets/checkout/checkout_widget.dart +++ b/lib/src/widgets/checkout/checkout_widget.dart @@ -27,6 +27,7 @@ class CheckoutWidget extends StatefulWidget { final BankServiceContract bankService; final CardServiceContract cardsService; final String publicKey; + final dynamic uploadInformation; CheckoutWidget({ required this.method, @@ -34,6 +35,7 @@ class CheckoutWidget extends StatefulWidget { required this.bankService, required this.cardsService, required this.publicKey, + required this.uploadInformation, this.fullscreen = false, this.logo, this.hideEmail = false, @@ -188,7 +190,8 @@ class _CheckoutWidgetState extends BaseState Text( 'Pay', style: TextStyle( - fontSize: 14.0, color: context.textTheme().headline1?.color), + fontSize: 14.0, + color: context.textTheme().headline1?.color), ), SizedBox( width: 5.0, @@ -353,6 +356,9 @@ class _CheckoutWidgetState extends BaseState _paymentSuccessful = true; _paymentError = null; _onProcessingChange(false); + + // Upload information to database + widget.uploadInformation(); }); } @@ -421,7 +427,7 @@ class _CheckoutWidgetState extends BaseState if (_response!.card != null) { _response!.card!.nullifyNumber(); } - Navigator.of(context).pop(_response); + Navigator.of(context).pop(_response); }, ); diff --git a/pubspec.yaml b/pubspec.yaml index f76392a8..e25d1242 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,13 +1,13 @@ name: flutter_paystack description: A Flutter plugin for making payments via Paystack Payment Gateway. Completely supports Android and iOS. -version: 1.0.7 +version: 1.0.8 homepage: https://github.com/wilburt/flutter_paystack dependencies: flutter: sdk: flutter - http: ^0.13.5 - intl: ^0.17.0 + http: ^1.2.1 + intl: ^0.18.1 meta: ^1.8.0 async: ^2.9.0 diff --git a/test/src/widgets/checkout/checkout_widget_test.dart b/test/src/widgets/checkout/checkout_widget_test.dart index b5c069ac..605aa17e 100644 --- a/test/src/widgets/checkout/checkout_widget_test.dart +++ b/test/src/widgets/checkout/checkout_widget_test.dart @@ -37,6 +37,7 @@ void main() { charge: charge, fullscreen: false, logo: Container(), + uploadInformation: null, ), ); @@ -62,6 +63,7 @@ void main() { charge: charge, fullscreen: false, logo: null, + uploadInformation: null, ), ); @@ -90,6 +92,7 @@ void main() { charge: charge, fullscreen: false, logo: Container(), + uploadInformation: null, ), ); @@ -108,6 +111,7 @@ void main() { charge: charge, fullscreen: false, logo: Container(), + uploadInformation: null, ), ); @@ -132,6 +136,7 @@ void main() { charge: charge, fullscreen: false, logo: Container(), + uploadInformation: null, ), ); @@ -153,6 +158,7 @@ void main() { fullscreen: false, hideEmail: false, logo: Container(), + uploadInformation: null, ), ); @@ -172,6 +178,7 @@ void main() { fullscreen: false, hideEmail: true, logo: Container(), + uploadInformation: null, ), ); @@ -191,6 +198,7 @@ void main() { fullscreen: false, hideEmail: true, logo: Container(), + uploadInformation: null, ), ); @@ -212,6 +220,7 @@ void main() { fullscreen: false, hideAmount: false, logo: Container(), + uploadInformation: null, ), ); @@ -231,6 +240,7 @@ void main() { fullscreen: false, hideAmount: true, logo: Container(), + uploadInformation: null, ), );