Files
ck_qr_nextjs_node_redis_pos…/api/routes/payments.js
T

49 lines
1.8 KiB
JavaScript

const express = require('express');
const router = express.Router();
const { Pool } = require('pg');
const pgPool = new Pool({
host: process.env.PGHOST || 'postgres',
port: process.env.PGPORT || 5432,
user: process.env.PGUSER || 'postgres',
password: process.env.PGPASSWORD || 'postgres',
database: process.env.PGDATABASE || 'ckqr',
});
// Placeholder for ICICI Payment Gateway initialization
router.post('/icici/initiate', async (req, res) => {
const { amount, plan, userId } = req.body;
try {
const userCheck = await pgPool.query('SELECT is_email_verified FROM users WHERE id = $1', [userId]);
if (userCheck.rows.length > 0 && !userCheck.rows[0].is_email_verified) {
return res.status(400).json({ error: 'Please verify your email address before upgrading your plan.' });
}
} catch (err) {
console.error('Error checking verification status', err);
return res.status(500).json({ error: 'Server error' });
}
// Here you would construct the ICICI request payload, compute checksums, etc.
// and return the URL or parameters for the frontend to redirect the user to ICICI.
console.log(`Initiating ICICI payment for user ${userId}, plan: ${plan}, amount: ${amount}`);
res.json({
message: 'Payment initiation logic goes here',
redirectUrl: 'https://placeholder.icicibank.com/pay'
});
});
// Placeholder for ICICI Webhook/Callback
router.post('/icici/webhook', async (req, res) => {
// Here ICICI will post back payment success or failure
// We would verify the signature, and if successful, upgrade the user in the database.
console.log('Received ICICI Webhook:', req.body);
res.status(200).send('Webhook received');
});
module.exports = router;