import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:webview_flutter/webview_flutter.dart'; // ✅ شاشة جديدة ومبسطة خاصة بـ ecash class EcashPaymentScreen extends StatefulWidget { final String paymentUrl; const EcashPaymentScreen({required this.paymentUrl, Key? key}) : super(key: key); @override State createState() => _EcashPaymentScreenState(); } class _EcashPaymentScreenState extends State { late final WebViewController _controller; @override void initState() { super.initState(); _controller = WebViewController() ..setJavaScriptMode(JavaScriptMode.unrestricted) ..setNavigationDelegate(NavigationDelegate( onPageFinished: (url) { print('Ecash WebView URL Finished: $url'); // ✅ هنا نتحقق فقط من أن المستخدم عاد إلى صفحة النجاح // هذه الصفحة هي التي حددناها في `APP_REDIRECT_URL_SUCCESS` في ملف PHP if (url.contains("success.php")) { // لا نستدعي أي API هنا. الـ Webhook على السيرفر يقوم بكل العمل. // فقط نعرض للمستخدم رسالة بأن العملية قيد المراجعة ونغلق الشاشة. showProcessingDialog(); } }, )) ..loadRequest(Uri.parse(widget.paymentUrl)); } // دالة لعرض رسالة "العملية قيد المعالجة" void showProcessingDialog() { showDialog( barrierDismissible: false, context: Get.context!, builder: (BuildContext context) { return AlertDialog( shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(12.0), ), title: Row( children: [ Icon(Icons.check_circle, color: Colors.green), const SizedBox(width: 8), Text( "Payment Successful".tr, style: TextStyle( color: Colors.green, fontWeight: FontWeight.bold, ), ), ], ), content: Text( "Your payment is being processed and your wallet will be updated shortly." .tr, style: const TextStyle(fontSize: 16), ), actions: [ TextButton( onPressed: () { // أغلق مربع الحوار، ثم أغلق شاشة الدفع Navigator.pop(context); // Close the dialog Navigator.pop(context); // Close the payment screen }, style: TextButton.styleFrom( backgroundColor: Colors.green, shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(8.0), ), ), child: Text( "OK".tr, style: const TextStyle(color: Colors.white), ), ), ], ); }, ); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar(title: Text('Complete Payment'.tr)), body: WebViewWidget(controller: _controller), ); } }