25-3/18/1

This commit is contained in:
Hamza-Ayed
2025-03-18 14:54:52 +03:00
parent 60548527e1
commit 0126011f0e
154 changed files with 2236 additions and 279 deletions

View File

@@ -15,7 +15,7 @@ class AppLink {
// static String seferPaymentServer = box.read('seferPaymentServer');
static String seferPaymentServer = box.read(BoxName.paymentLink);
// 'https://wallet.sefer.live/seferpw.shop/sefer/';
// 'https://wallet.sefer.click/seferpw.shop/sefer/';
static String seferPaymentServer0 = box.read('seferPaymentServer');
// static const String seferGizaServer = 'https://gizasefer.online/sefer';
// static final String seferGizaServer = Env.seferGizaServer;
@@ -25,7 +25,7 @@ class AppLink {
static final String endPoint =
box.read(BoxName.serverChosen) ?? box.read(BoxName.basicLink);
// 'https://server.sefer.live/sefer.click/sefer';
// 'https://server.sefer.click/sefer.click/sefer';
static final String server = endPoint;
static String tripzCairoServer = endPoint;
static String tripzGizaServer = box.read('Giza');
@@ -43,6 +43,7 @@ class AppLink {
static String getTokens = "$server/ride/firebase/get.php";
static String getTokenParent = "$server/ride/firebase/getTokenParent.php";
static String addTokens = "$server/ride/firebase/add.php";
static String addFingerPrint = "$seferPaymentServer/ride/firebase/add.php";
static String addTokensDriver = "$server/ride/firebase/addDriver.php";
static String packageInfo = "$server/auth/packageInfo.php";
@@ -108,17 +109,23 @@ class AppLink {
static String addKazanPercent = "$ride/kazan/add.php";
////-----------------DriverPayment------------------
static String addDriverpayment = "$ride/payment/add.php";
static String addDriverPaymentPoints = "$ride/driverPayment/add.php";
static String addDriverpayment = "$seferPaymentServer/ride/payment/add.php";
static String addDriverPaymentPoints =
"$seferPaymentServer/ride/driverPayment/add.php";
static String addPaymentTokenPassenger =
"$seferPaymentServer/ride/passengerWallet/addPaymentTokenPassenger.php";
static String addPaymentTokenDriver =
"$seferPaymentServer/ride/driverWallet/addPaymentToken.php";
static String getDriverPaymentPoints = "$ride/driverWallet/get.php";
static String getDriverpaymentToday = "$ride/payment/get.php";
static String getCountRide = "$ride/payment/getCountRide.php";
static String getAllPaymentFromRide = "$ride/payment/getAllPayment.php";
static String getAllPaymentVisa = "$ride/payment/getAllPaymentVisa.php";
static String getDriverPaymentPoints =
"$seferPaymentServer/ride/driverWallet/get.php";
static String getDriverpaymentToday =
"$seferPaymentServer/ride/payment/get.php";
static String getCountRide =
"$seferPaymentServer/ride/payment/getCountRide.php";
static String getAllPaymentFromRide =
"$seferPaymentServer/ride/payment/getAllPayment.php";
static String getAllPaymentVisa =
"$seferPaymentServer/ride/payment/getAllPaymentVisa.php";
//-----------------Passenger NotificationCaptain------------------
static String addNotificationPassenger =
@@ -207,7 +214,7 @@ class AppLink {
static String addRateToPassenger = "$ride/rate/add.php";
static String savePlacesServer = "$ride/places/add.php";
static String getapiKey =
"https://server.sefer.live/sefer.click/sefer/ride/apiKey/get.php";
"https://server.sefer.click/sefer.click/sefer/ride/apiKey/get.php";
static String addRateToDriver = "$ride/rate/addRateToDriver.php";
static String getDriverRate = "$ride/rate/getDriverRate.php";
static String getPassengerRate = "$ride/rate/getPassengerRate.php";
@@ -231,8 +238,7 @@ class AppLink {
static String location = '${box.read(BoxName.serverChosen)}/ride/location';
static String getCarsLocationByPassenger = "$location/get.php";
static String getLocationAreaLinks =
"https://server.sefer.live/sefer.click/sefer/ride/location/get_location_area_links.php";
static String getLocationAreaLinks = Env.getLocationAreaLinks;
static String addpassengerLocation = "$location/addpassengerLocation.php";
static String getCarsLocationByPassengerSpeed = "$location/getSpeed.php";
static String getCarsLocationByPassengerComfort = "$location/getComfort.php";
@@ -268,7 +274,7 @@ class AppLink {
static String loginJwtRider = "$server/login.php";
static String loginJwtWalletRider = "$seferPaymentServer/loginWallet.php";
static String loginFirstTime =
"https://server.sefer.live/sefer.click/sefer/loginFirstTime.php";
"https://server.sefer.click/sefer.click/sefer/loginFirstTime.php";
static String getTesterApp = "$auth/Tester/getTesterApp.php";
static String updateTesterApp = "$auth/Tester/updateTesterApp.php";
static String signUp = "$auth/signup.php";

View File

@@ -96,7 +96,8 @@ class LoginController extends GetxController {
await SecurityChecks.isDeviceRootedFromNative(Get.context!);
}
String fingerPrint = DeviceHelper.getDeviceFingerprint().toString();
String fingerPrint = await DeviceHelper.getDeviceFingerprint();
// print('fingerPrint: ${fingerPrint}');
dev = Platform.isAndroid ? 'android' : 'ios';
var payload = {
'id': box.read(BoxName.passengerID),
@@ -108,15 +109,14 @@ class LoginController extends GetxController {
Uri.parse(AppLink.loginJwtWalletRider),
body: payload,
);
Log.print('req: ${response1.request}');
Log.print('response: ${response1.body}');
Log.print('payload: ${payload}');
Log.print('decodedResponse1: ${jsonDecode(response1.body)}');
// Log.print('req: ${response1.request}');
// Log.print('response: ${response1.body}');
// Log.print('payload: ${payload}');
return jsonDecode(response1.body)['jwt'].toString();
}
getJWT() async {
print(Pasenger.pasengerpas);
// print(Pasenger.pasengerpas);
// await SecurityHelper.performSecurityChecks();
Log.print('firstTimeLoadKey: ${box.read(BoxName.firstTimeLoadKey)}');
dev = Platform.isAndroid ? 'android' : 'ios';
@@ -159,14 +159,14 @@ class LoginController extends GetxController {
Uri.parse(AppLink.loginJwtRider),
body: payload,
);
Log.print('req: ${response1.request}');
Log.print('response: ${response1.body}');
Log.print('payload: ${payload}');
Log.print('decodedResponse1: ${jsonDecode(response1.body)}');
// Log.print('req: ${response1.request}');
// Log.print('response: ${response1.body}');
// Log.print('payload: ${payload}');
// Log.print('decodedResponse1: ${jsonDecode(response1.body)}');
if (response1.statusCode == 200) {
final decodedResponse1 = jsonDecode(response1.body);
Log.print('decodedResponse1: ${decodedResponse1}');
// Log.print('decodedResponse1: ${decodedResponse1}');
final jwt = decodedResponse1['jwt'];
await box.write(BoxName.jwt, X.c(X.c(X.c(jwt, cn), cC), cs));
@@ -188,7 +188,7 @@ class LoginController extends GetxController {
.split(AppInformation.addd)[0]);
if (isTokenExpired) {
Log.print('isTokenExpired loginUsingCredentials: ${isTokenExpired}');
// Log.print('isTokenExpired loginUsingCredentials: ${isTokenExpired}');
await getJWT();
}
@@ -239,8 +239,7 @@ class LoginController extends GetxController {
var fingerPrint = DeviceHelper.getDeviceFingerprint().toString();
await storage.write(key: BoxName.fingerPrint, value: fingerPrint);
if (token != 'failure') {
if (EncryptionHelper.instance.decryptData(
jsonDecode(token)['data'][0]['token'].toString()) !=
if ((jsonDecode(token)['data'][0]['token'].toString()) !=
box.read(BoxName.tokenFCM)) {
MyDialog().getDialog('change device'.tr, 'token change'.tr,
() async {

View File

@@ -23,8 +23,7 @@ class TokenController extends GetxController {
'Basic ${base64Encode(utf8.encode(basicAuthCredentials.toString()))}',
},
body: {
'token': EncryptionHelper.instance
.decryptData(box.read(BoxName.tokenFCM.toString())),
'token': (box.read(BoxName.tokenFCM.toString())),
'passengerID': box.read(BoxName.passengerID).toString()
},
);

View File

@@ -2,10 +2,7 @@ import 'dart:convert';
import 'package:Tripz/constant/box_name.dart';
import 'package:Tripz/constant/links.dart';
import 'package:Tripz/controller/auth/login_controller.dart';
import 'package:Tripz/controller/functions/encrypt_decrypt.dart';
import 'package:Tripz/controller/functions/package_info.dart';
import 'package:Tripz/main.dart';
import 'package:Tripz/views/widgets/mydialoug.dart';
import 'package:get/get.dart';
import 'package:http/http.dart' as http;
import 'package:Tripz/env/env.dart';
@@ -35,12 +32,10 @@ class CRUD {
headers: {
"Content-Type": "application/x-www-form-urlencoded",
'Authorization':
// 'Bearer ${box.read(BoxName.firstTimeLoadKey) != null ? EncryptionHelper.instance.decryptData(box.read(BoxName.jwt).toString()) : box.read(BoxName.jwt).toString()}'
// 'Bearer ${box.read(BoxName.jwt).toString()}'
'Bearer ${X.r(X.r(X.r(box.read(BoxName.jwt), cn), cC), cs).toString().split(AppInformation.addd)[0]}'
},
);
// Log.print('req: ${response.request}');
// print('req: ${response.request}');
// Log.print('response: ${response.body}');
// Log.print('payload: ${payload}');
if (response.statusCode == 200) {
@@ -87,7 +82,9 @@ class CRUD {
'Authorization': 'Bearer $s'
},
);
// print('req: ${response.request}');
// Log.print('response: ${response.body}');
// Log.print('payload: ${payload}');
if (response.statusCode == 200) {
var jsonData = jsonDecode(response.body);
if (jsonData['status'] == 'success') {
@@ -179,6 +176,68 @@ class CRUD {
}
}
Future<dynamic> postWallet(
{required String link, Map<String, dynamic>? payload}) async {
var s = await LoginController().getJwtWallet();
var url = Uri.parse(link);
try {
var response = await http.post(
url,
body: payload,
headers: {
"Content-Type": "application/x-www-form-urlencoded",
'Authorization': 'Bearer $s'
},
);
// print('req: ${response.request}');
// Log.print('response: ${response.body}');
// Log.print('payload: ${payload}');
if (response.statusCode == 200) {
try {
var jsonData = jsonDecode(response.body);
if (jsonData['status'] == 'success') {
return jsonData;
} else {
return jsonData['status'];
}
} catch (e) {
addError(e.toString(), 'crud().post - JSON decoding');
return 'failure';
}
} else if (response.statusCode == 401) {
// Specifically handle 401 Unauthorized
var jsonData = jsonDecode(response.body);
if (jsonData['error'] == 'Token expired') {
// Show snackbar prompting to re-login
await Get.put(LoginController()).getJWT();
// MyDialog().getDialog(
// 'Session expired. Please log in again.'.tr,
// '',
// () {
// Get.put(LoginController()).loginUsingCredentials(
// box.read(BoxName.passengerID), box.read(BoxName.email));
// Get.back();
// },
// );
return 'token_expired'; // Return a specific value for token expiration
} else {
// Other 401 errors
addError('Unauthorized: ${jsonData['error']}', 'crud().post - 401');
return 'failure';
}
} else {
addError('Non-200 response code: ${response.statusCode}',
'crud().post - Other');
return 'failure';
}
} catch (e) {
addError('HTTP request error: $e', 'crud().post - HTTP');
return 'failure';
}
}
Future<dynamic> getTokenParent({
required String link,
Map<String, dynamic>? payload,
@@ -576,6 +635,9 @@ class CRUD {
url,
body: payload,
);
// Log.print('req: ${response.request}');
// Log.print('response: ${response.body}');
// Log.print('payload: ${payload}');
var jsonData = jsonDecode(response.body);
if (jsonData['status'] == 'OK') {
return jsonData;

View File

@@ -43,6 +43,7 @@ import '../firebase/firbase_messge.dart';
import '../functions/audio_record1.dart';
import '../functions/crud.dart';
import '../functions/launch.dart';
import '../functions/package_info.dart';
import '../functions/secure_storage.dart';
import '../payment/payment_controller.dart';
import 'vip_waitting_page.dart';
@@ -4907,22 +4908,27 @@ class MapPassengerController extends GetxController {
}
addToken() async {
String fingerPrint = await DeviceHelper.getDeviceFingerprint();
await CRUD()
.post(link: "${AppLink.server}/ride/firebase/add.php", payload: {
'token': box.read(BoxName.tokenFCM),
'passengerID': box.read(BoxName.passengerID).toString()
'token': (box.read(BoxName.tokenFCM.toString())),
'passengerID': box.read(BoxName.passengerID).toString(),
"fingerPrint": fingerPrint
});
CRUD().post(
link: "${AppLink.tripzAlexandriaServer}/ride/firebase/add.php",
payload: {
'token': box.read(BoxName.tokenFCM),
'passengerID': box.read(BoxName.passengerID).toString()
'token': (box.read(BoxName.tokenFCM.toString())),
'passengerID': box.read(BoxName.passengerID).toString(),
"fingerPrint": fingerPrint
});
CRUD().post(
link: "${AppLink.tripzGizaServer}/ride/firebase/add.php",
payload: {
'token': box.read(BoxName.tokenFCM),
'passengerID': box.read(BoxName.passengerID).toString()
'token': (box.read(BoxName.tokenFCM.toString())),
'passengerID': box.read(BoxName.passengerID).toString(),
"fingerPrint": fingerPrint
});
}
@@ -5325,6 +5331,15 @@ class MapPassengerController extends GetxController {
}
}
addFingerPrint() async {
String fingerPrint = await DeviceHelper.getDeviceFingerprint();
await CRUD().postWallet(link: AppLink.addFingerPrint, payload: {
'token': (box.read(BoxName.tokenFCM.toString())),
'passengerID': box.read(BoxName.passengerID).toString(),
"fingerPrint": fingerPrint
});
}
firstTimeRunToGetCoupon() async {
// Check if it's the first time and the app is installed and gift token is available
if (box.read(BoxName.isFirstTime).toString() == '0' &&
@@ -5377,6 +5392,7 @@ class MapPassengerController extends GetxController {
addCustomEndIcon();
// addToken();
await getLocation();
addFingerPrint();
getPassengerLocationUniversity();
_initializePolygons();
// await addToken();

View File

@@ -82,7 +82,8 @@ class CaptainWalletController extends GetxController {
late String paymentID;
Future addDriverPayment(String paymentMethod, amount) async {
var res = await CRUD().post(link: AppLink.addDriverPaymentPoints, payload: {
var res =
await CRUD().postWallet(link: AppLink.addDriverPaymentPoints, payload: {
'driverID': box.read(BoxName.driverID).toString(),
'amount': amount.toString(),
'payment_method': paymentMethod.toString(),
@@ -92,7 +93,7 @@ class CaptainWalletController extends GetxController {
}
Future addDriverWallet(String paymentMethod, point) async {
await CRUD().post(link: AppLink.addDriversWalletPoints, payload: {
await CRUD().postWallet(link: AppLink.addDriversWalletPoints, payload: {
'driverID': box.read(BoxName.driverID).toString(),
'paymentID': paymentID.toString(),
'amount': point,
@@ -105,7 +106,7 @@ class CaptainWalletController extends GetxController {
isLoading = false;
update();
if (box.read(BoxName.accountIdStripeConnect).toString().isEmpty) {
var res = await CRUD().get(link: AppLink.getAccount, payload: {
var res = await CRUD().getWallet(link: AppLink.getAccount, payload: {
'id': box.read(BoxName.driverID).toString(),
});
var d = jsonDecode(res);

View File

@@ -1,34 +1,17 @@
import 'dart:convert';
import 'dart:io';
import 'package:Tripz/controller/auth/login_controller.dart';
import 'package:Tripz/views/widgets/mydialoug.dart';
import 'package:flutter/services.dart';
import 'package:http/http.dart' as http;
import 'package:Tripz/constant/box_name.dart';
import 'package:Tripz/main.dart';
import 'package:device_info_plus/device_info_plus.dart';
import 'package:flutter/material.dart';
import 'package:flutter_font_icons/flutter_font_icons.dart';
import 'package:get/get.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
import 'package:jwt_decoder/jwt_decoder.dart';
import 'package:secure_string_operations/secure_string_operations.dart';
import '../../../constant/api_key.dart';
import '../../../constant/char_map.dart';
import '../../../constant/colors.dart';
import '../../../constant/info.dart';
import '../../../constant/links.dart';
import '../../../constant/table_names.dart';
import '../../../controller/functions/crud.dart';
import '../../../controller/auth/login_controller.dart';
import '../../../controller/functions/encrypt_decrypt.dart';
import '../../../controller/functions/package_info.dart';
import '../../../controller/functions/secure_storage.dart';
import '../../../controller/functions/securty_check.dart';
import '../../../controller/functions/tts.dart';
import '../../../controller/home/map_passenger_controller.dart';
import '../../../controller/home/vip_waitting_page.dart';
import '../../../env/env.dart';
import '../../../print.dart';
GetBuilder<MapPassengerController> leftMainMenuIcons() {
Get.put(TextToSpeechController());
@@ -106,6 +89,7 @@ class TestPage extends StatelessWidget {
// await DeviceHelper.getDeviceFingerprint();
// await SecurityHelper.performSecurityChecks();
LoginController().getJwtWallet();
// addFingerPrint() async {
},
child: Text(
"Text Button",