fix: cover all payment provider statuses in TopUpResult

Add overpaid (PAL24) to PAID_STATUSES, system_fail and refund_paid
(Heleket) to FAILED_STATUSES. Harmonize Balance.tsx redirect detection
with the same full status sets and case-insensitive matching.
This commit is contained in:
Fringg
2026-03-09 04:08:28 +03:00
parent b59122818c
commit 8897561fb2
2 changed files with 28 additions and 7 deletions

View File

@@ -64,14 +64,32 @@ export default function Balance() {
if (paymentHandledRef.current) return;
const paymentStatus = searchParams.get('payment') || searchParams.get('status');
const isSuccess =
paymentStatus === 'success' ||
paymentStatus === 'paid' ||
paymentStatus === 'completed' ||
searchParams.get('success') === 'true';
const paidSet = new Set([
'succeeded',
'success',
'paid',
'paid_over',
'overpaid',
'completed',
'confirmed',
'closed',
]);
const failedSet = new Set([
'fail',
'failed',
'error',
'canceled',
'cancelled',
'declined',
'expired',
'cancel',
'system_fail',
'refund_paid',
]);
const isFailed =
paymentStatus === 'failed' || paymentStatus === 'error' || paymentStatus === 'canceled';
const normalised = paymentStatus?.toLowerCase() ?? '';
const isSuccess = paidSet.has(normalised) || searchParams.get('success') === 'true';
const isFailed = failedSet.has(normalised);
if (isSuccess) {
paymentHandledRef.current = true;

View File

@@ -183,6 +183,7 @@ const PAID_STATUSES = new Set([
'success',
'paid',
'paid_over',
'overpaid',
'completed',
'confirmed',
'closed',
@@ -197,6 +198,8 @@ const FAILED_STATUSES = new Set([
'declined',
'expired',
'cancel',
'system_fail',
'refund_paid',
]);
function isPaidStatus(status: string): boolean {