49 lines
1.8 KiB
JavaScript
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;
|