updating sequence of flows
This commit is contained in:
@@ -60,15 +60,10 @@ class GatewayController extends ChangeNotifier {
|
||||
dynamic response = workflowResponse['body'];
|
||||
|
||||
model.status = response['status'];
|
||||
transactionController.model.paymentStatus = response['status'];
|
||||
transactionController.updateReceiptData(response);
|
||||
transactionController.model.paymentStatus = response['paymentStatus'];
|
||||
|
||||
if(model.status == 'PENDING') {
|
||||
_showErrorSnackBar('Transaction status still pending');
|
||||
}
|
||||
|
||||
if(model.status != 'FAILED') {
|
||||
_showErrorSnackBar(response['errorMessage'].isEmpty ? 'Transaction failed' : response['errorMessage']);
|
||||
if(model.status == 'SUCCESS') {
|
||||
transactionController.updateReceiptData(response);
|
||||
}
|
||||
notifyListeners();
|
||||
} catch (e) {
|
||||
|
||||
@@ -7,8 +7,7 @@ import 'package:qpay/screens/gateway/gateway_controller.dart';
|
||||
import 'package:webview_flutter/webview_flutter.dart';
|
||||
|
||||
class GatewayScreen extends StatefulWidget {
|
||||
final String url;
|
||||
const GatewayScreen({super.key, required this.url});
|
||||
const GatewayScreen({super.key});
|
||||
|
||||
@override
|
||||
State<GatewayScreen> createState() => _GatewayScreenState();
|
||||
@@ -17,20 +16,22 @@ class GatewayScreen extends StatefulWidget {
|
||||
class _GatewayScreenState extends State<GatewayScreen> {
|
||||
late WebViewController _webViewController;
|
||||
late GatewayController controller;
|
||||
late String url;
|
||||
|
||||
bool integrationStarted = false;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
_initWebView(widget.url);
|
||||
controller = GatewayController(context);
|
||||
url = controller.transactionController.model.receiptData?['targetUrl'];
|
||||
_initWebView(url);
|
||||
|
||||
bool simulate = bool.parse(dotenv.env['SIMULATE_PAYMENT_SUCCESS']!);
|
||||
if(simulate) {
|
||||
sleep(Duration(seconds: 10));
|
||||
String url = widget.url.replaceAll("/pay/", "/receipt/");
|
||||
_webViewController.loadRequest(Uri.parse(url));
|
||||
String targetUrl = url.replaceAll("/pay/", "/receipt/");
|
||||
_webViewController.loadRequest(Uri.parse(targetUrl));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -71,7 +72,6 @@ class _GatewayScreenState extends State<GatewayScreen> {
|
||||
setState(() {
|
||||
integrationStarted = true;
|
||||
});
|
||||
await controller.poll(controller.transactionController.model.receiptData?['id']);
|
||||
|
||||
WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||
context.go('/integration');
|
||||
|
||||
Reference in New Issue
Block a user