NEFT and RTGS transaction error resolved

This commit is contained in:
2025-08-26 15:58:31 +05:30
parent 4b28a113d4
commit 0bab68a2e6
11 changed files with 163 additions and 81 deletions

View File

@@ -1,6 +1,7 @@
// ignore_for_file: use_build_context_synchronously
import 'dart:async';
import 'package:dio/dio.dart';
import 'package:flutter/services.dart';
import 'package:kmobile/api/services/imps_service.dart';
import 'package:kmobile/api/services/neft_service.dart';
@@ -214,6 +215,38 @@ class _QuickPayOutsideBankScreen extends State<QuickPayOutsideBankScreen> {
utr: neftResponse.utr,
);
completer.complete(paymentResponse);
} on DioException catch (e) {
print(e);
String errorMessage;
if (e.response != null && e.response!.data != null) {
print('error has data');
try {
// final error = jsonDecode(e.response!.toString())['error'];
final error = e.response?.data['error'];
print('actual error message $error');
errorMessage = {
"INCORRECT_TPIN": "Please Enter the correct TPIN",
"INSUFFICIENT_FUNDS":
"Your account does not have sufficient balance"
}[error] ??
"Something Went Wrong";
} catch (_) {
print('error extracting errorMessage');
errorMessage = "Something Went Wrong";
}
} else {
print('has has no data');
errorMessage = "Something Went Wrong";
}
print('PaymentResponse generating');
final paymentResponse = PaymentResponse(
isSuccess: false,
errorMessage: errorMessage,
);
print('PaymentResponse generated');
print(paymentResponse);
completer.complete(paymentResponse);
print("NEFT transaction failed with DioException."); // Add
} catch (e) {
final paymentResponse = PaymentResponse(
isSuccess: false,
@@ -245,15 +278,32 @@ class _QuickPayOutsideBankScreen extends State<QuickPayOutsideBankScreen> {
);
try {
final neftResponse =
final impsResponse =
await impsService.processImpsTransaction(impsTx);
final paymentResponse = PaymentResponse(
isSuccess: neftResponse.message.toUpperCase() == 'SUCCESS',
isSuccess: impsResponse.message.toUpperCase() == 'SUCCESS',
date: DateTime.now(),
creditedAccount: impsTx.toAccount,
amount: impsTx.amount,
currency: 'INR',
utr: neftResponse.utr,
utr: impsResponse.utr,
);
completer.complete(paymentResponse);
} on DioException catch (e) {
print('dio exception');
print(e.toString());
final error = e.response?.data['error'];
var errorMessage = {
"INCORRECT_TPIN": "Please Enter the correct TPIN",
"INSUFFICIENT_FUNDS":
"Your account does not have sufficient balance"
}[error] ??
"Something Went Wrong";
final paymentResponse = PaymentResponse(
isSuccess: false,
errorMessage: errorMessage,
);
completer.complete(paymentResponse);
} catch (e) {
@@ -298,6 +348,25 @@ class _QuickPayOutsideBankScreen extends State<QuickPayOutsideBankScreen> {
utr: rtgsResponse.utr,
);
completer.complete(paymentResponse);
} on DioException catch (e) {
print('dio exception');
print(e.toString());
final error = e.response?.data['error'];
var errorMessage = {
"INCORRECT_TPIN": "Please Enter the correct TPIN",
"INSUFFICIENT_FUNDS":
"Your account does not have sufficient balance"
// ignore: duplicate_ignore
// ignore: use_build_context_synchronously
}[error] ??
"Something Went Wrong";
final paymentResponse = PaymentResponse(
isSuccess: false,
errorMessage: errorMessage,
);
completer.complete(paymentResponse);
} catch (e) {
final paymentResponse = PaymentResponse(
isSuccess: false,