nexusbert commited on
Commit
b494470
·
1 Parent(s): 8058f3a
src/controllers/walletController.ts CHANGED
@@ -287,7 +287,8 @@ export class WalletController {
287
 
288
  if (!reference) {
289
  // Redirect to frontend error page
290
- const frontendUrl = process.env.FRONTEND_URL || 'https://nexusbert-zurri.hf.space';
 
291
  return res.redirect(`${frontendUrl}/payment/failed?error=missing_reference`);
292
  }
293
 
@@ -297,7 +298,7 @@ export class WalletController {
297
 
298
  // Check if transaction was successful
299
  if (verification.status !== 'success') {
300
- const frontendUrl = process.env.FRONTEND_URL || 'https://nexusbert-zurri.hf.space';
301
  return res.redirect(
302
  `${frontendUrl}/payment/failed?reference=${reference}&status=${verification.status}&message=${encodeURIComponent(verification.gatewayResponse || 'Payment failed')}`
303
  );
@@ -306,7 +307,7 @@ export class WalletController {
306
  // Extract userId from metadata
307
  const userId = verification.metadata?.userId;
308
  if (!userId) {
309
- const frontendUrl = process.env.FRONTEND_URL || 'https://nexusbert-zurri.hf.space';
310
  return res.redirect(
311
  `${frontendUrl}/payment/failed?error=missing_user_id&reference=${reference}`
312
  );
@@ -316,7 +317,7 @@ export class WalletController {
316
  const existingTx = await walletService.getTransactionByReference(reference);
317
  if (existingTx && existingTx.status === TransactionStatus.COMPLETED) {
318
  // Already processed, redirect to success
319
- const frontendUrl = process.env.FRONTEND_URL || 'https://nexusbert-zurri.hf.space';
320
  const wallet = await walletService.getOrCreateWallet(userId);
321
  return res.redirect(
322
  `${frontendUrl}/payment/success?reference=${reference}&already_processed=true&balance=${Number(wallet.balance)}`
@@ -342,20 +343,20 @@ export class WalletController {
342
  const wallet = await walletService.getOrCreateWallet(userId);
343
 
344
  // Redirect to frontend success page with details
345
- const frontendUrl = process.env.FRONTEND_URL || 'https://nexusbert-zurri.hf.space';
346
  return res.redirect(
347
  `${frontendUrl}/payment/success?reference=${reference}&points=${points}&balance=${Number(wallet.balance)}&amount=${amountInNaira}`
348
  );
349
  } catch (verifyError: any) {
350
  console.error('Payment verification error in callback:', verifyError);
351
- const frontendUrl = process.env.FRONTEND_URL || 'https://nexusbert-zurri.hf.space';
352
  return res.redirect(
353
  `${frontendUrl}/payment/failed?reference=${reference}&error=${encodeURIComponent(verifyError.message || 'Verification failed')}`
354
  );
355
  }
356
  } catch (error: any) {
357
  console.error('Payment callback error:', error);
358
- const frontendUrl = process.env.FRONTEND_URL || 'https://nexusbert-zurri.hf.space';
359
  return res.redirect(`${frontendUrl}/payment/failed?error=${encodeURIComponent(error.message || 'Unknown error')}`);
360
  }
361
  }
 
287
 
288
  if (!reference) {
289
  // Redirect to frontend error page
290
+ // Default to Vercel frontend if not set
291
+ const frontendUrl = process.env.FRONTEND_URL || 'https://zurri-mock-frontend.vercel.app';
292
  return res.redirect(`${frontendUrl}/payment/failed?error=missing_reference`);
293
  }
294
 
 
298
 
299
  // Check if transaction was successful
300
  if (verification.status !== 'success') {
301
+ const frontendUrl = process.env.FRONTEND_URL || 'https://zurri-mock-frontend.vercel.app';
302
  return res.redirect(
303
  `${frontendUrl}/payment/failed?reference=${reference}&status=${verification.status}&message=${encodeURIComponent(verification.gatewayResponse || 'Payment failed')}`
304
  );
 
307
  // Extract userId from metadata
308
  const userId = verification.metadata?.userId;
309
  if (!userId) {
310
+ const frontendUrl = process.env.FRONTEND_URL || 'https://zurri-mock-frontend.vercel.app';
311
  return res.redirect(
312
  `${frontendUrl}/payment/failed?error=missing_user_id&reference=${reference}`
313
  );
 
317
  const existingTx = await walletService.getTransactionByReference(reference);
318
  if (existingTx && existingTx.status === TransactionStatus.COMPLETED) {
319
  // Already processed, redirect to success
320
+ const frontendUrl = process.env.FRONTEND_URL || 'https://zurri-mock-frontend.vercel.app';
321
  const wallet = await walletService.getOrCreateWallet(userId);
322
  return res.redirect(
323
  `${frontendUrl}/payment/success?reference=${reference}&already_processed=true&balance=${Number(wallet.balance)}`
 
343
  const wallet = await walletService.getOrCreateWallet(userId);
344
 
345
  // Redirect to frontend success page with details
346
+ const frontendUrl = process.env.FRONTEND_URL || 'https://zurri-mock-frontend.vercel.app';
347
  return res.redirect(
348
  `${frontendUrl}/payment/success?reference=${reference}&points=${points}&balance=${Number(wallet.balance)}&amount=${amountInNaira}`
349
  );
350
  } catch (verifyError: any) {
351
  console.error('Payment verification error in callback:', verifyError);
352
+ const frontendUrl = process.env.FRONTEND_URL || 'https://zurri-mock-frontend.vercel.app';
353
  return res.redirect(
354
  `${frontendUrl}/payment/failed?reference=${reference}&error=${encodeURIComponent(verifyError.message || 'Verification failed')}`
355
  );
356
  }
357
  } catch (error: any) {
358
  console.error('Payment callback error:', error);
359
+ const frontendUrl = process.env.FRONTEND_URL || 'https://zurri-mock-frontend.vercel.app';
360
  return res.redirect(`${frontendUrl}/payment/failed?error=${encodeURIComponent(error.message || 'Unknown error')}`);
361
  }
362
  }