25-6-23/2
This commit is contained in:
@@ -135,6 +135,8 @@ class AppLink {
|
|||||||
"$seferPaymentServer/ride/payMob/paymob_driver/paymet_verfy.php";
|
"$seferPaymentServer/ride/payMob/paymob_driver/paymet_verfy.php";
|
||||||
static String updatePaymetToPaid =
|
static String updatePaymetToPaid =
|
||||||
"$seferPaymentServer/ride/payment/updatePaymetToPaid.php";
|
"$seferPaymentServer/ride/payment/updatePaymetToPaid.php";
|
||||||
|
static String paymobPayoutDriverWallet =
|
||||||
|
"$seferPaymentServer/ride/payMob/paymob_driver/paymob_payout.php'";
|
||||||
|
|
||||||
static String addSeferWallet = "$seferPaymentServer/ride/seferWallet/add.php";
|
static String addSeferWallet = "$seferPaymentServer/ride/seferWallet/add.php";
|
||||||
static String getSeferWallet = "$seferPaymentServer/ride/seferWallet/get.php";
|
static String getSeferWallet = "$seferPaymentServer/ride/seferWallet/get.php";
|
||||||
|
|||||||
@@ -43,9 +43,9 @@ class CRUD {
|
|||||||
'Bearer ${X.r(X.r(X.r(box.read(BoxName.jwt), cn), cC), cs).toString().split(AppInformation.addd)[0]}'
|
'Bearer ${X.r(X.r(X.r(box.read(BoxName.jwt), cn), cC), cs).toString().split(AppInformation.addd)[0]}'
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
print(response.request);
|
// print(response.request);
|
||||||
Log.print('response.body: ${response.body}');
|
// Log.print('response.body: ${response.body}');
|
||||||
print(payload);
|
// print(payload);
|
||||||
if (response.statusCode == 200) {
|
if (response.statusCode == 200) {
|
||||||
var jsonData = jsonDecode(response.body);
|
var jsonData = jsonDecode(response.body);
|
||||||
if (jsonData['status'] == 'success') {
|
if (jsonData['status'] == 'success') {
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ import 'package:sefer_driver/constant/box_name.dart';
|
|||||||
import 'package:sefer_driver/main.dart';
|
import 'package:sefer_driver/main.dart';
|
||||||
import 'package:sefer_driver/views/widgets/error_snakbar.dart';
|
import 'package:sefer_driver/views/widgets/error_snakbar.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:http/http.dart' as http;
|
|
||||||
|
|
||||||
import '../../../constant/links.dart';
|
import '../../../constant/links.dart';
|
||||||
import '../../../views/widgets/mydialoug.dart';
|
import '../../../views/widgets/mydialoug.dart';
|
||||||
@@ -28,18 +27,16 @@ class PaymobPayout extends GetxController {
|
|||||||
sensitiveTransaction: true,
|
sensitiveTransaction: true,
|
||||||
));
|
));
|
||||||
if (didAuthenticate) {
|
if (didAuthenticate) {
|
||||||
var dec = await CRUD().postWallet(
|
var dec = await CRUD()
|
||||||
link:
|
.postWallet(link: AppLink.paymobPayoutDriverWallet, payload: {
|
||||||
'wl.tripz-egypt.com/v1/main/ride/payMob/paymob_driver/paymob_payout.php',
|
"issuer": issuer,
|
||||||
payload: {
|
"method": "wallet",
|
||||||
"issuer": issuer,
|
"amount": amount, //9.0,
|
||||||
"method": "wallet",
|
"full_name":
|
||||||
"amount": amount, //9.0,
|
'${box.read(BoxName.nameDriver)} ${box.read(BoxName.lastNameDriver)}',
|
||||||
"full_name":
|
"msisdn": msisdn, //"01010101010",
|
||||||
'${box.read(BoxName.nameDriver)} ${box.read(BoxName.lastNameDriver)}',
|
"bank_transaction_type": "cash_transfer"
|
||||||
"msisdn": msisdn, //"01010101010",
|
});
|
||||||
"bank_transaction_type": "cash_transfer"
|
|
||||||
});
|
|
||||||
if (dec['disbursement_status'] == 'successful') {
|
if (dec['disbursement_status'] == 'successful') {
|
||||||
var paymentToken = await Get.find<CaptainWalletController>()
|
var paymentToken = await Get.find<CaptainWalletController>()
|
||||||
.generateToken(
|
.generateToken(
|
||||||
|
|||||||
BIN
lib/env.zip
BIN
lib/env.zip
Binary file not shown.
@@ -1,14 +1,12 @@
|
|||||||
import 'package:sefer_driver/constant/box_name.dart';
|
import 'package:sefer_driver/constant/box_name.dart';
|
||||||
import 'package:sefer_driver/controller/firebase/local_notification.dart';
|
import 'package:sefer_driver/controller/firebase/local_notification.dart';
|
||||||
import 'package:sefer_driver/main.dart';
|
import 'package:sefer_driver/main.dart';
|
||||||
import 'package:sefer_driver/print.dart';
|
|
||||||
import 'package:sefer_driver/views/home/Captin/driver_map_page.dart';
|
import 'package:sefer_driver/views/home/Captin/driver_map_page.dart';
|
||||||
import 'package:sefer_driver/views/home/Captin/orderCaptin/vip_order_page.dart';
|
import 'package:sefer_driver/views/home/Captin/orderCaptin/vip_order_page.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_font_icons/flutter_font_icons.dart';
|
import 'package:flutter_font_icons/flutter_font_icons.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:sefer_driver/controller/home/captin/home_captain_controller.dart';
|
import 'package:sefer_driver/controller/home/captin/home_captain_controller.dart';
|
||||||
import 'package:sefer_driver/views/widgets/error_snakbar.dart';
|
|
||||||
import 'package:sefer_driver/views/widgets/mydialoug.dart';
|
import 'package:sefer_driver/views/widgets/mydialoug.dart';
|
||||||
|
|
||||||
import '../../../../../constant/colors.dart';
|
import '../../../../../constant/colors.dart';
|
||||||
@@ -47,7 +45,6 @@ GetBuilder<HomeCaptainController> leftMainMenuCaptainIcons() {
|
|||||||
Get.back();
|
Get.back();
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
// Log.print(
|
|
||||||
// 'box.read(BoxName.rideArgumentsFromBackground): ${box.read(BoxName.rideArgumentsFromBackground)}');
|
// 'box.read(BoxName.rideArgumentsFromBackground): ${box.read(BoxName.rideArgumentsFromBackground)}');
|
||||||
},
|
},
|
||||||
icon: Icon(
|
icon: Icon(
|
||||||
@@ -151,7 +148,6 @@ GetBuilder<HomeCaptainController> leftMainMenuCaptainIcons() {
|
|||||||
// child: Builder(builder: (context) {
|
// child: Builder(builder: (context) {
|
||||||
// return IconButton(
|
// return IconButton(
|
||||||
// onPressed: () async {
|
// onPressed: () async {
|
||||||
// Log.print('phoneDriver: ${box.read(BoxName.phoneDriver)}');
|
|
||||||
// },
|
// },
|
||||||
// icon: const Icon(
|
// icon: const Icon(
|
||||||
// FontAwesome5.grin_tears,
|
// FontAwesome5.grin_tears,
|
||||||
@@ -171,8 +167,6 @@ GetBuilder<HomeCaptainController> leftMainMenuCaptainIcons() {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void _log(String message) => print(message);
|
|
||||||
|
|
||||||
Future<void> checkForPendingOrderFromServer() async {
|
Future<void> checkForPendingOrderFromServer() async {
|
||||||
bool _isProcessingOrder = false;
|
bool _isProcessingOrder = false;
|
||||||
if (_isProcessingOrder) return;
|
if (_isProcessingOrder) return;
|
||||||
@@ -191,20 +185,14 @@ Future<void> checkForPendingOrderFromServer() async {
|
|||||||
|
|
||||||
// Assuming the server returns order data if found, or 'failure'/'none' if not
|
// Assuming the server returns order data if found, or 'failure'/'none' if not
|
||||||
if (response != 'failure') {
|
if (response != 'failure') {
|
||||||
Log.print('response: ${response}');
|
|
||||||
_log("MAIN_APP_LOG: Pending order DETECTED from server!");
|
|
||||||
|
|
||||||
final Map<String, dynamic> orderInfoFromServer = response['message'];
|
final Map<String, dynamic> orderInfoFromServer = response['message'];
|
||||||
final Map<String, dynamic> rideArguments =
|
final Map<String, dynamic> rideArguments =
|
||||||
_transformServerDataToAppArguments(orderInfoFromServer);
|
_transformServerDataToAppArguments(orderInfoFromServer);
|
||||||
// 2. Build the new arguments map, matching your Flutter structure
|
// 2. Build the new arguments map, matching your Flutter structure
|
||||||
|
|
||||||
_log("MAIN_APP_LOG: Constructed rideArguments map successfully.");
|
|
||||||
|
|
||||||
/////////////
|
/////////////
|
||||||
final customerToken = (response)['message']['token_passenger'];
|
final customerToken = (response)['message']['token_passenger'];
|
||||||
final orderId = (response)['message']['ride_id'].toString();
|
final orderId = (response)['message']['ride_id'].toString();
|
||||||
Log.print('orderId: ${orderId}');
|
|
||||||
box.write(BoxName.rideArgumentsFromBackground, rideArguments);
|
box.write(BoxName.rideArgumentsFromBackground, rideArguments);
|
||||||
box.write(BoxName.statusDriverLocation, 'on');
|
box.write(BoxName.statusDriverLocation, 'on');
|
||||||
box.write(BoxName.rideStatus, 'Apply');
|
box.write(BoxName.rideStatus, 'Apply');
|
||||||
@@ -215,11 +203,9 @@ Future<void> checkForPendingOrderFromServer() async {
|
|||||||
_sendAcceptanceNotification(customerToken, orderId.toString());
|
_sendAcceptanceNotification(customerToken, orderId.toString());
|
||||||
// await _bringAppToForegroundAndNavigate(orderId);
|
// await _bringAppToForegroundAndNavigate(orderId);
|
||||||
} else {
|
} else {
|
||||||
_log("MAIN_APP_LOG: No pending orders found on server.");
|
|
||||||
box.write(BoxName.rideArgumentsFromBackground, 'failure');
|
box.write(BoxName.rideArgumentsFromBackground, 'failure');
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
_log("Error while polling server: $e");
|
|
||||||
} finally {
|
} finally {
|
||||||
_isProcessingOrder = false; // Release lock
|
_isProcessingOrder = false; // Release lock
|
||||||
}
|
}
|
||||||
@@ -227,8 +213,6 @@ Future<void> checkForPendingOrderFromServer() async {
|
|||||||
|
|
||||||
Map<String, dynamic> _transformServerDataToAppArguments(
|
Map<String, dynamic> _transformServerDataToAppArguments(
|
||||||
Map<String, dynamic> serverData) {
|
Map<String, dynamic> serverData) {
|
||||||
_log("Transforming server data to match app's argument structure.");
|
|
||||||
|
|
||||||
// Helper function to safely get and convert values to String
|
// Helper function to safely get and convert values to String
|
||||||
String _getString(String key, [String defaultValue = 'unknown']) {
|
String _getString(String key, [String defaultValue = 'unknown']) {
|
||||||
// serverData[key] might be an int, double, or string. .toString() handles all.
|
// serverData[key] might be an int, double, or string. .toString() handles all.
|
||||||
@@ -288,7 +272,6 @@ void _sendAcceptanceNotification(String? customerToken, rideId) {
|
|||||||
if (customerToken == null) return;
|
if (customerToken == null) return;
|
||||||
final FirebaseMessagesController _firebaseMessagesController =
|
final FirebaseMessagesController _firebaseMessagesController =
|
||||||
Get.put(FirebaseMessagesController());
|
Get.put(FirebaseMessagesController());
|
||||||
_log("Attempting to send acceptance notification to passenger...");
|
|
||||||
List<String> bodyToPassenger = [
|
List<String> bodyToPassenger = [
|
||||||
box.read(BoxName.driverID).toString(),
|
box.read(BoxName.driverID).toString(),
|
||||||
box.read(BoxName.nameDriver).toString(),
|
box.read(BoxName.nameDriver).toString(),
|
||||||
@@ -301,11 +284,6 @@ void _sendAcceptanceNotification(String? customerToken, rideId) {
|
|||||||
if (token != null && token.isNotEmpty) {
|
if (token != null && token.isNotEmpty) {
|
||||||
_firebaseMessagesController.sendNotificationToDriverMAP('Accepted Ride',
|
_firebaseMessagesController.sendNotificationToDriverMAP('Accepted Ride',
|
||||||
'your ride is applied'.tr, token, bodyToPassenger, 'start.wav');
|
'your ride is applied'.tr, token, bodyToPassenger, 'start.wav');
|
||||||
_log("Acceptance notification task was fired.");
|
} else {}
|
||||||
} else {
|
} catch (e) {}
|
||||||
_log("Could not send notification: Customer token is missing or empty.");
|
|
||||||
}
|
|
||||||
} catch (e) {
|
|
||||||
_log("Error while firing notification task: $e");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user