import nc from 'next-connect'; import auth from '@/middlewares/auth'; import pool from '@/lib/mysql'; import crypto from 'crypto'; const handler = nc(); handler.use(auth); handler.post(async (req, res) => { const { total } = req.body; let ip = "88.242.49.85"; const moid = makeid(20); let totalAmount = total * 100; var hashSTR = `${process.env.PAYTR_MERCHANT_ID}${ip}${moid}${req.user.email}${totalAmount}${"eft"}${"1"}`; console.log(hashSTR) var paytr_token = hashSTR + process.env.PAYTR_MERCHANT_SALT; var token = crypto.createHmac('sha256', process.env.PAYTR_MERCHANT_KEY).update(paytr_token).digest('base64'); const response = await fetch('https://www.paytr.com/odeme/api/get-token', { method: 'POST', headers: { 'Content-Type': 'application/www-form-urlencoded', }, body: new URLSearchParams({ merchant_id: process.env.PAYTR_MERCHANT_ID, user_ip: ip, merchant_oid : moid, email: req.user.email, payment_amount: totalAmount, payment_type: "eft", paytr_token: token, debug_on: 1, timeout_limit: 10, test_mode: 1, }) }) console.log(response); }) function makeid(length) { var result = ''; var characters = '0123456789'; var charactersLength = characters.length; for (var i = 0; i < length; i++) { result += characters.charAt(Math.floor(Math.random() * charactersLength)); } return result; } export default handler;