This commit is contained in:
Hamza-Ayed
2024-08-03 00:50:14 +03:00
parent 74abae1b38
commit 871b9a4d09
24 changed files with 689 additions and 211 deletions

View File

@@ -1,8 +1,10 @@
import 'dart:convert';
import 'package:SEFER/constant/api_key.dart';
import 'package:SEFER/constant/style.dart';
import 'package:SEFER/controller/firebase/firbase_messge.dart';
import 'package:SEFER/controller/functions/tts.dart';
import 'package:SEFER/controller/payment/paymob/paymob_response.dart';
import 'package:SEFER/views/home/map_page_passenger.dart';
import 'package:SEFER/views/widgets/elevated_btn.dart';
import 'package:http/http.dart' as http;
import 'package:flutter/material.dart';
@@ -101,6 +103,54 @@ class PaymentController extends GetxController {
});
}
payToDriverForCancelAfterAppliedAndHeNearYou(String rideId) async {
{
double costOfWaiting5Minute = box.read(BoxName.countryCode) == 'Egypt'
? (4 * .08) + (5 * 1)
// 4 indicate foe 4 km ditance from driver start move to passenger
: (4 * .06) + (5 * .06); //for Eygpt other like jordan .06 per minute
var paymentTokenWait =
await generateTokenDriver(costOfWaiting5Minute.toString());
var res = await CRUD().post(link: AppLink.addDrivePayment, payload: {
'rideId': rideId,
'amount': costOfWaiting5Minute.toString(),
'payment_method': 'cancel-from-near',
'passengerID': box.read(BoxName.passengerID).toString(),
'token': paymentTokenWait,
'driverID': Get.find<MapPassengerController>().driverId.toString(),
});
var paymentTokenWait1 =
await generateTokenDriver(costOfWaiting5Minute.toString());
var res1 =
await CRUD().post(link: AppLink.addDriversWalletPoints, payload: {
'paymentID': 'rideId$rideId',
'amount': (costOfWaiting5Minute).toStringAsFixed(0),
'paymentMethod': 'cancel-from-near',
'token': paymentTokenWait1,
'driverID': Get.find<MapPassengerController>().driverId.toString(),
});
if (res != 'failure') {
FirebaseMessagesController().sendNotificationToDriverMAP(
'Cancel',
'Trip Cancelled. The cost of the trip will be added to your wallet.'
.tr,
Get.find<MapPassengerController>().driverToken,
[],
'cancel.wav',
);
}
var paymentTokenWaitPassenger1 =
await generateTokenPassenger((costOfWaiting5Minute * -1).toString());
await CRUD().post(link: AppLink.addPassengersWallet, payload: {
'passenger_id': box.read(BoxName.passengerID).toString(),
'balance': (costOfWaiting5Minute * -1).toString(),
'token': paymentTokenWaitPassenger1,
});
Get.offAll(const MapPagePassenger());
}
}
addPassengerWallet() async {
isLoading = true;
update();

View File

@@ -6,6 +6,7 @@ import 'package:url_launcher/url_launcher.dart';
import '../../constant/api_key.dart';
import '../../main.dart';
import '../../print.dart';
class PaymobManager extends GetxController {
String authanticationToken1 = "";
@@ -95,6 +96,7 @@ class PaymobManager extends GetxController {
'username': AK.usernamePayMob,
"password": AK.passwordPayMob,
});
Log.print('token: ${response}');
return response.data["token"];
}
@@ -111,6 +113,7 @@ class PaymobManager extends GetxController {
"delivery_needed": "false",
"items": [],
});
Log.print('id: ${response}');
return response.data["id"];
}
@@ -126,16 +129,15 @@ class PaymobManager extends GetxController {
"auth_token": authanticationToken.toString(),
"order_id": orderId.toString(),
"integration_id":
4556056, ////todo wallet or online card int.parse(AK.integrationIdPayMob),
4601103, ////todo wallet or online card int.parse(AK.integrationIdPayMob),
"lock_order_when_paid": "false",
"amount_cents": amount,
"currency": currency,
"billing_data": {
"first_name": box.read(BoxName.nameDriver) ?? box.read(BoxName.name),
"last_name": box.read(BoxName.lastNameDriver) ?? box.read(BoxName.name),
"email": box.read(BoxName.emailDriver) ?? box.read(BoxName.email),
"phone_number":
box.read(BoxName.phoneDriver) ?? box.read(BoxName.phone),
"first_name": box.read(BoxName.name),
"last_name": box.read(BoxName.name),
"email": box.read(BoxName.email),
"phone_number": box.read(BoxName.phone),
"apartment": "NA",
"floor": "NA",
"street": "NA",
@@ -147,7 +149,7 @@ class PaymobManager extends GetxController {
"state": "NA"
},
});
Log.print('token: ${response}');
return response.data["token"];
}
}

View File

@@ -4,6 +4,8 @@ import 'package:dio/dio.dart';
import 'package:flutter/material.dart';
import 'package:webview_flutter/webview_flutter.dart';
import '../../../print.dart';
class PaymobResponseWallet {
final bool success;
final String? transactionID;
@@ -142,9 +144,7 @@ class PaymobPaymentWallet {
}) async {
final Map<String, dynamic> data = {
"source": {
"identifier": box
.read(BoxName.phone)
.toString(), // Replace with actual source identifier
"identifier": box.read(BoxName.phone).toString(),
"subtype": "WALLET",
},
"payment_token": paymentToken,
@@ -219,6 +219,7 @@ class PaymobPaymentWallet {
),
);
final urlWallet = await _getWalletUrl(paymentToken: purchaseToken);
Log.print('urlWallet: ${urlWallet}');
if (context.mounted) {
final response = await PaymobIFrameWallet.show(