|
|
|
|
@ -78,10 +78,15 @@ class PayTabsViewModel extends ChangeNotifier {
|
|
|
|
|
notifyListeners();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
startApplePayPayment({Function(PaytabsTransactionResponseModel)? onSuccess, Function(String)? onError}) {
|
|
|
|
|
FlutterPaytabsBridge.startApplePayPayment(paymentConfiguration, (event) {
|
|
|
|
|
startApplePayPayment({Function(PaytabsTransactionResponseModel)? onSuccess, Function(String)? onError}) async {
|
|
|
|
|
bool _callbackFired = false; // prevent duplicate callback invocations
|
|
|
|
|
|
|
|
|
|
await FlutterPaytabsBridge.startApplePayPayment(paymentConfiguration, (event) {
|
|
|
|
|
if (_callbackFired) return; // ignore any subsequent callback calls
|
|
|
|
|
|
|
|
|
|
final transactionDetails = event["data"] as Map<Object?, Object?>?;
|
|
|
|
|
if (event["status"] == "success") {
|
|
|
|
|
_callbackFired = true;
|
|
|
|
|
// Cast Map<Object?, Object?> to Map<String, dynamic>
|
|
|
|
|
final data = Map<String, dynamic>.from(event["data"] as Map);
|
|
|
|
|
paytabsTransactionResponseModel = PaytabsTransactionResponseModel.fromJson(data);
|
|
|
|
|
@ -95,11 +100,13 @@ class PayTabsViewModel extends ChangeNotifier {
|
|
|
|
|
onError!(errorMessage);
|
|
|
|
|
}
|
|
|
|
|
} else if (event["status"] == "error") {
|
|
|
|
|
_callbackFired = true;
|
|
|
|
|
final errorMessage = event["message"] ?? "An error occurred";
|
|
|
|
|
debugPrint("Error occurred in transaction: $errorMessage");
|
|
|
|
|
debugPrint("Full error event: $event");
|
|
|
|
|
onError!(errorMessage);
|
|
|
|
|
} else if (event["status"] == "event") {
|
|
|
|
|
// Intermediate SDK events – do NOT mark _callbackFired, just log
|
|
|
|
|
final eventMessage = event["message"] ?? "Event occurred";
|
|
|
|
|
debugPrint("Event occurred: $eventMessage");
|
|
|
|
|
}
|
|
|
|
|
@ -107,9 +114,14 @@ class PayTabsViewModel extends ChangeNotifier {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
startCardPayment({Function(PaytabsTransactionResponseModel)? onSuccess, Function(String)? onError}) {
|
|
|
|
|
bool _callbackFired = false; // prevent duplicate callback invocations
|
|
|
|
|
|
|
|
|
|
FlutterPaytabsBridge.startCardPayment(paymentConfiguration, (event) {
|
|
|
|
|
if (_callbackFired) return; // ignore any subsequent callback calls
|
|
|
|
|
|
|
|
|
|
final transactionDetails = event["data"] as Map<Object?, Object?>?;
|
|
|
|
|
if (event["status"] == "success") {
|
|
|
|
|
_callbackFired = true;
|
|
|
|
|
// Cast Map<Object?, Object?> to Map<String, dynamic>
|
|
|
|
|
final data = Map<String, dynamic>.from(event["data"] as Map);
|
|
|
|
|
paytabsTransactionResponseModel = PaytabsTransactionResponseModel.fromJson(data);
|
|
|
|
|
@ -123,11 +135,13 @@ class PayTabsViewModel extends ChangeNotifier {
|
|
|
|
|
onError!(errorMessage);
|
|
|
|
|
}
|
|
|
|
|
} else if (event["status"] == "error") {
|
|
|
|
|
_callbackFired = true;
|
|
|
|
|
final errorMessage = event["message"] ?? "An error occurred";
|
|
|
|
|
debugPrint("Error occurred in transaction: $errorMessage");
|
|
|
|
|
debugPrint("Full error event: $event");
|
|
|
|
|
onError!(errorMessage);
|
|
|
|
|
} else if (event["status"] == "event") {
|
|
|
|
|
// Intermediate SDK events – do NOT mark _callbackFired, just log
|
|
|
|
|
final eventMessage = event["message"] ?? "Event occurred";
|
|
|
|
|
debugPrint("Event occurred: $eventMessage");
|
|
|
|
|
}
|
|
|
|
|
|