46 lines
1.8 KiB
Dart
46 lines
1.8 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:sefer_driver/controller/functions/crud.dart';
|
|
|
|
class PayoutService {
|
|
final String _baseUrl =
|
|
"https://walletintaleq.intaleq.xyz/v1/main/sms_webhook";
|
|
static const double payoutFee = 5000.0; // عمولة السحب الثابتة
|
|
|
|
/// دالة لإنشاء طلب سحب جديد على السيرفر
|
|
///
|
|
/// تعيد رسالة النجاح من السيرفر، أو رسالة خطأ في حال الفشل.
|
|
Future<String?> requestPayout({
|
|
required String driverId,
|
|
walletType,
|
|
payoutPhoneNumber,
|
|
required double amount,
|
|
}) async {
|
|
final url = ("$_baseUrl/request_payout.php");
|
|
try {
|
|
// هنا يمكنك إضافة هيدرز المصادقة (JWT) بنفس طريقتك المعتادة
|
|
final response = await CRUD().postWallet(link: url, payload: {
|
|
'driverId': driverId,
|
|
'amount': amount.toString(),
|
|
'phone': payoutPhoneNumber.toString(),
|
|
'wallet_type': walletType.toString(),
|
|
}).timeout(const Duration(seconds: 20));
|
|
|
|
if (response != 'failure') {
|
|
final data = (response);
|
|
if (data['status'] == 'success') {
|
|
debugPrint("Payout request successful: ${data['message']}");
|
|
return data['message']; // إرجاع رسالة النجاح
|
|
} else {
|
|
debugPrint("Payout request failed: ${data['message']}");
|
|
return "فشل الطلب: ${data['message']}"; // إرجاع رسالة الخطأ من السيرفر
|
|
}
|
|
} else {
|
|
return "خطأ في الاتصال بالسيرفر: ${response.statusCode}";
|
|
}
|
|
} catch (e) {
|
|
debugPrint("Exception during payout request: $e");
|
|
return "حدث خطأ غير متوقع. يرجى المحاولة مرة أخرى.";
|
|
}
|
|
}
|
|
}
|