@@ -5,8 +5,9 @@ import 'package:flutterwave_standard/models/requests/standard_request.dart';
55import 'package:flutterwave_standard/models/responses/charge_response.dart' ;
66import 'package:flutterwave_standard/models/responses/standard_response.dart' ;
77import 'package:flutterwave_standard/models/subaccount.dart' ;
8+ import 'package:flutterwave_standard/utils.dart' ;
89import 'package:flutterwave_standard/view/flutterwave_style.dart' ;
9- import 'package:flutterwave_standard/view/standard_webview .dart' ;
10+ import 'package:flutterwave_standard/view/standard_widget .dart' ;
1011import 'package:flutterwave_standard/view/view_utils.dart' ;
1112import 'package:http/http.dart' ;
1213
@@ -20,11 +21,12 @@ class Flutterwave {
2021 String publicKey;
2122 String paymentOptions;
2223 String redirectUrl;
23- String ? currency;
24+ String currency;
2425 String ? paymentPlanId;
2526 List <SubAccount >? subAccounts;
2627 Map <dynamic , dynamic >? meta;
2728 FlutterwaveStyle ? style;
29+ ChargeResponse ? response;
2830
2931 Flutterwave (
3032 {required this .context,
@@ -36,13 +38,13 @@ class Flutterwave {
3638 required this .customization,
3739 required this .redirectUrl,
3840 required this .isTestMode,
39- this .currency,
41+ required this .currency,
4042 this .paymentPlanId,
4143 this .subAccounts,
4244 this .meta,
4345 this .style});
4446
45- /// Starts Standard Transaction
47+ /// Starts a transaction by calling the Standard service
4648 Future <ChargeResponse > charge () async {
4749 final request = StandardRequest (
4850 txRef: txRef,
@@ -83,24 +85,17 @@ class Flutterwave {
8385 txRef: request.txRef, status: "error" , success: false );
8486 }
8587
86- final transactionResult = await Navigator .push (
87- context,
88- MaterialPageRoute (
89- builder: (context) => StandardWebView (
90- url: standardResponse! .data! .link! ,
88+ final response = await Navigator .push (
89+ context,
90+ MaterialPageRoute (
91+ builder: (context) => StandardPaymentWidget (
92+ webUrl: standardResponse! .data! .link! ,
93+ ),
9194 ),
92- ),
93- );
95+ );
9496
95- if (transactionResult == null ) {
96- return ChargeResponse (
97- txRef: request.txRef, status: "cancelled" , success: false );
98- }
99- if (transactionResult.runtimeType == ChargeResponse ().runtimeType) {
100- return transactionResult;
97+ if (response != null ) return response! ;
98+ return ChargeResponse (txRef: request.txRef, status: "cancelled" , success: false );
10199 }
102100
103- return ChargeResponse (
104- txRef: request.txRef, status: "cancelled" , success: false );
105- }
106101}
0 commit comments