9/29/1
This commit is contained in:
@@ -16,6 +16,7 @@ import '../../constant/colors.dart';
|
||||
import '../../constant/info.dart';
|
||||
import '../../constant/links.dart';
|
||||
import '../../main.dart';
|
||||
import '../../print.dart';
|
||||
import '../functions/crud.dart';
|
||||
import '../functions/toast.dart';
|
||||
import 'paymob/paymob_wallet.dart';
|
||||
@@ -588,25 +589,31 @@ class PaymentController extends GetxController {
|
||||
billingData: PaymobBillingDataWallet(),
|
||||
onPayment: (PaymobResponseWallet response) {},
|
||||
);
|
||||
|
||||
if (response!.success == true && response.responseCode == '200') {
|
||||
Get.defaultDialog(
|
||||
barrierDismissible: false,
|
||||
title: 'Payment Successful'.tr,
|
||||
titleStyle: AppStyle.title,
|
||||
content: Text(
|
||||
'The payment was approved.'.tr,
|
||||
style: AppStyle.title,
|
||||
),
|
||||
confirm: MyElevatedButton(
|
||||
title: 'OK'.tr,
|
||||
kolor: AppColor.greenColor,
|
||||
onPressed: () async {
|
||||
Get.back();
|
||||
method();
|
||||
},
|
||||
),
|
||||
);
|
||||
// Log.print('message: ${response!.message}');
|
||||
// Log.print('responseCode: ${response.responseCode}');
|
||||
// Log.print('success: ${response.success}');
|
||||
// Log.print('transactionID: ${response.transactionID}');
|
||||
if (response!.responseCode == '200' && response.success == true) {
|
||||
// Log.print('transactionID wewer: ${response.transactionID}');
|
||||
Toast.show(context, 'Payment Successful'.tr, AppColor.greenColor);
|
||||
method();
|
||||
// Get.defaultDialog(
|
||||
// barrierDismissible: false,
|
||||
// title: 'Payment Successful'.tr,
|
||||
// titleStyle: AppStyle.title,
|
||||
// content: Text(
|
||||
// 'The payment was approved.'.tr,
|
||||
// style: AppStyle.title,
|
||||
// ),
|
||||
// confirm: MyElevatedButton(
|
||||
// title: 'OK'.tr,
|
||||
// kolor: AppColor.greenColor,
|
||||
// onPressed: () async {
|
||||
// Get.back();
|
||||
// method();
|
||||
// },
|
||||
// ),
|
||||
// );
|
||||
} else {
|
||||
Get.defaultDialog(
|
||||
barrierDismissible: false,
|
||||
|
||||
@@ -313,6 +313,70 @@ class PaymobIFrameWallet extends StatefulWidget {
|
||||
State<PaymobIFrameWallet> createState() => _PaymobIFrameState();
|
||||
}
|
||||
|
||||
// class _PaymobIFrameState extends State<PaymobIFrameWallet> {
|
||||
// WebViewController? controller;
|
||||
|
||||
// @override
|
||||
// void initState() {
|
||||
// controller = WebViewController()
|
||||
// ..setJavaScriptMode(JavaScriptMode.unrestricted)
|
||||
// ..setNavigationDelegate(
|
||||
// NavigationDelegate(
|
||||
// onNavigationRequest: (NavigationRequest request) {
|
||||
// Log.print('request.url: ${request.url}');
|
||||
// if (request.url.contains('txn_response_code') &&
|
||||
// request.url.contains('success') &&
|
||||
// request.url.contains('id')) {
|
||||
// final params = _getParamFromURL(request.url);
|
||||
// final response = PaymobResponseWallet.fromJson(params);
|
||||
// if (widget.onPayment != null) {
|
||||
// widget.onPayment!(response);
|
||||
// }
|
||||
// Navigator.pop(context, response);
|
||||
// return NavigationDecision.prevent;
|
||||
// }
|
||||
// return NavigationDecision.navigate;
|
||||
// },
|
||||
// ),
|
||||
// )
|
||||
// ..loadRequest(Uri.parse(widget.redirectURL));
|
||||
// super.initState();
|
||||
// }
|
||||
|
||||
// @override
|
||||
// Widget build(BuildContext context) {
|
||||
// return Scaffold(
|
||||
// body: controller == null
|
||||
// ? const Center(
|
||||
// child: CircularProgressIndicator.adaptive(),
|
||||
// )
|
||||
// : SafeArea(
|
||||
// child: WebViewWidget(
|
||||
// controller: controller!,
|
||||
// ),
|
||||
// ),
|
||||
// );
|
||||
// }
|
||||
|
||||
// Map<String, dynamic> _getParamFromURL(String url) {
|
||||
// final uri = Uri.parse(url);
|
||||
// final queryParams = uri.queryParameters;
|
||||
// final data = <String, dynamic>{};
|
||||
|
||||
// queryParams.forEach((key, value) {
|
||||
// if (key.contains('.')) {
|
||||
// final parts = key.split('.');
|
||||
// data.putIfAbsent(parts.first, () => <String, dynamic>{});
|
||||
// (data[parts.first] as Map<String, dynamic>)[parts.last] = value;
|
||||
// } else {
|
||||
// data[key] = value;
|
||||
// }
|
||||
// });
|
||||
|
||||
// return data;
|
||||
// }
|
||||
// }
|
||||
|
||||
class _PaymobIFrameState extends State<PaymobIFrameWallet> {
|
||||
WebViewController? controller;
|
||||
|
||||
@@ -323,16 +387,23 @@ class _PaymobIFrameState extends State<PaymobIFrameWallet> {
|
||||
..setNavigationDelegate(
|
||||
NavigationDelegate(
|
||||
onNavigationRequest: (NavigationRequest request) {
|
||||
Log.print('request.url: ${request.url}');
|
||||
|
||||
if (request.url.contains('txn_response_code') &&
|
||||
// request.url.contains('successfully') &&
|
||||
request.url.contains('success') &&
|
||||
request.url.contains('id')) {
|
||||
final params = _getParamFromURL(request.url);
|
||||
final response = PaymobResponseWallet.fromJson(params);
|
||||
|
||||
if (widget.onPayment != null) {
|
||||
widget.onPayment!(response);
|
||||
}
|
||||
|
||||
Navigator.pop(context, response);
|
||||
|
||||
// Show a dialog after successful payment
|
||||
// _showSuccessDialog(response);
|
||||
|
||||
return NavigationDecision.prevent;
|
||||
}
|
||||
return NavigationDecision.navigate;
|
||||
@@ -375,4 +446,24 @@ class _PaymobIFrameState extends State<PaymobIFrameWallet> {
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
void _showSuccessDialog(PaymobResponseWallet response) {
|
||||
showDialog(
|
||||
context: context,
|
||||
builder: (BuildContext context) {
|
||||
return AlertDialog(
|
||||
title: Text('Payment Successful'),
|
||||
content: Text('Transaction ID: EGP'),
|
||||
actions: <Widget>[
|
||||
TextButton(
|
||||
onPressed: () {
|
||||
Navigator.of(context).pop(); // Close the dialog
|
||||
},
|
||||
child: Text('OK'),
|
||||
),
|
||||
],
|
||||
);
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user