|
Server IP : 217.21.85.138 / Your IP : 216.73.216.103 Web Server : LiteSpeed System : Linux in-mum-web906.main-hosting.eu 4.18.0-553.37.1.lve.el8.x86_64 #1 SMP Mon Feb 10 22:45:17 UTC 2025 x86_64 User : u915722082 ( 915722082) PHP Version : 7.4.33 Disable Function : system, exec, shell_exec, passthru, mysql_list_dbs, ini_alter, dl, symlink, link, chgrp, leak, popen, apache_child_terminate, virtual, mb_send_mail MySQL : OFF | cURL : ON | WGET : ON | Perl : OFF | Python : OFF Directory (0755) : /home/u915722082/public_html/vendor/../projects/config/../admin/ |
| [ Home ] | [ C0mmand ] | [ Upload File ] |
|---|
<?php
session_start();
require_once '../config/config.php';
$con = getDatabaseConnection();
if (!isset($_SESSION['admin_id']) || !isset($_GET['order_id'])) {
header("Location: domain_portfolio.php");
exit;
}
$order_id = (int)$_GET['order_id'];
$order_query = "SELECT * FROM tbl_domain_orders WHERE order_id = $order_id AND user_id = " . $_SESSION['admin_id'];
$order_result = mysqli_query($con, $order_query);
if (mysqli_num_rows($order_result) == 0) {
header("Location: domain_portfolio.php");
exit;
}
$order = mysqli_fetch_assoc($order_result);
$settings_query = "SELECT setting_key, setting_value FROM tbl_domain_settings WHERE setting_key IN ('razorpay_key_id', 'razorpay_key_secret')";
$settings_result = mysqli_query($con, $settings_query);
$settings = [];
while ($row = mysqli_fetch_assoc($settings_result)) {
$settings[$row['setting_key']] = $row['setting_value'];
}
$razorpay_key_id = $settings['razorpay_key_id'] ?? '';
$razorpay_key_secret = $settings['razorpay_key_secret'] ?? '';
if (empty($razorpay_key_id) || empty($razorpay_key_secret)) {
$_SESSION['error'] = "Razorpay credentials not configured";
header("Location: domain_portfolio.php");
exit;
}
if (empty($order['razorpay_order_id'])) {
$order_data = [
'amount' => $order['total_amount'] * 100,
'currency' => $order['currency'],
'receipt' => $order['order_number'],
'notes' => [
'domain_name' => $order['domain_name'],
'renewal_years' => $order['renewal_years']
]
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.razorpay.com/v1/orders');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($order_data));
curl_setopt($ch, CURLOPT_USERPWD, $razorpay_key_id . ':' . $razorpay_key_secret);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json'
]);
$response = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($http_code == 200) {
$razorpay_response = json_decode($response, true);
$razorpay_order_id = $razorpay_response['id'];
mysqli_query($con, "UPDATE tbl_domain_orders SET razorpay_order_id = '$razorpay_order_id' WHERE order_id = $order_id");
$order['razorpay_order_id'] = $razorpay_order_id;
} else {
$_SESSION['error'] = "Failed to create payment order";
header("Location: domain_portfolio.php");
exit;
}
}
$user_name = $_SESSION['user_name'] ?? 'Admin';
$user_email = $_SESSION['email'] ?? ADMIN_EMAIL;
?>
<!DOCTYPE html>
<html lang="en">
<head>
<base href="../" />
<title>Payment - Domain Renewal</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Inter:300,400,500,600,700" />
<link href="assets/plugins/global/plugins.bundle.css" rel="stylesheet" type="text/css" />
<link href="assets/css/style.bundle.css" rel="stylesheet" type="text/css" />
</head>
<body id="kt_app_body" data-kt-app-layout="dark-sidebar" data-kt-app-header-fixed="true"
data-kt-app-sidebar-enabled="true" data-kt-app-sidebar-fixed="true"
data-kt-app-sidebar-hoverable="true" data-kt-app-sidebar-push-header="true"
data-kt-app-sidebar-push-toolbar="true" data-kt-app-sidebar-push-footer="true"
data-kt-app-toolbar-enabled="true" class="app-default">
<script>
var defaultThemeMode = "light";
var themeMode;
if (document.documentElement) {
if (document.documentElement.hasAttribute("data-bs-theme-mode")) {
themeMode = document.documentElement.getAttribute("data-bs-theme-mode");
} else {
if (localStorage.getItem("data-bs-theme") !== null) {
themeMode = localStorage.getItem("data-bs-theme");
} else {
themeMode = defaultThemeMode;
}
}
if (themeMode === "system") {
themeMode = window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
}
document.documentElement.setAttribute("data-bs-theme", themeMode);
}
</script>
<div class="d-flex flex-column flex-root app-root" id="kt_app_root">
<div class="app-page flex-column flex-column-fluid" id="kt_app_page">
<?php include 'includes/header.php'; ?>
<div class="app-wrapper flex-column flex-row-fluid" id="kt_app_wrapper">
<?php include 'includes/sidebar.php'; ?>
<div class="app-main flex-column flex-row-fluid" id="kt_app_main">
<div class="d-flex flex-column flex-column-fluid">
<div id="kt_app_toolbar" class="app-toolbar py-3 py-lg-6">
<div id="kt_app_toolbar_container" class="app-container container-xxl d-flex flex-stack">
<div class="page-title d-flex flex-column justify-content-center flex-wrap me-3">
<h1 class="page-heading d-flex text-gray-900 fw-bold fs-3 flex-column my-0">
🔒 Secure Payment
</h1>
<ul class="breadcrumb breadcrumb-separatorless fw-semibold fs-7 my-0 pt-1">
<li class="breadcrumb-item text-muted">
<a href="admin/domain_portfolio.php" class="text-muted text-hover-primary">Domains</a>
</li>
<li class="breadcrumb-item">
<span class="bullet bg-gray-500 w-5px h-2px"></span>
</li>
<li class="breadcrumb-item text-muted">Payment</li>
</ul>
</div>
</div>
</div>
<div id="kt_app_content" class="app-content flex-column-fluid">
<div id="kt_app_content_container" class="app-container container-xxl">
<div class="row g-5 g-xl-10">
<div class="col-xl-8 offset-xl-2">
<div class="card mb-5 mb-xl-10">
<div class="card-header">
<div class="card-title">
<h3 class="fw-bold m-0">Order Summary</h3>
</div>
</div>
<div class="card-body">
<div class="d-flex flex-column gap-5">
<div class="d-flex justify-content-between">
<span class="fw-semibold text-gray-600">Order Number:</span>
<span class="badge badge-light-primary fs-7"><?php echo $order['order_number']; ?></span>
</div>
<div class="d-flex justify-content-between">
<span class="fw-semibold text-gray-600">Domain Name:</span>
<span class="fw-bold text-gray-900"><?php echo htmlspecialchars($order['domain_name']); ?></span>
</div>
<div class="d-flex justify-content-between">
<span class="fw-semibold text-gray-600">Renewal Period:</span>
<span class="fw-bold text-gray-900"><?php echo $order['renewal_years']; ?> Year<?php echo $order['renewal_years'] > 1 ? 's' : ''; ?></span>
</div>
<div class="separator"></div>
<div class="d-flex justify-content-between">
<span class="fw-semibold text-gray-600">Current Expiry:</span>
<span class="text-gray-900"><?php echo date('M d, Y', strtotime($order['current_expiry'])); ?></span>
</div>
<div class="d-flex justify-content-between">
<span class="fw-semibold text-success">New Expiry:</span>
<span class="fw-bold text-success"><?php echo date('M d, Y', strtotime($order['new_expiry'])); ?></span>
</div>
<div class="separator"></div>
<div class="d-flex justify-content-between">
<span class="text-gray-600">Subtotal:</span>
<span class="text-gray-900"><?php echo $order['currency']; ?> <?php echo number_format($order['price_per_year'] * $order['renewal_years'], 2); ?></span>
</div>
<div class="d-flex justify-content-between">
<span class="text-gray-600">GST (18%):</span>
<span class="text-gray-900"><?php echo $order['currency']; ?> <?php echo number_format($order['total_amount'] - ($order['price_per_year'] * $order['renewal_years']), 2); ?></span>
</div>
<div class="separator border-dark"></div>
<div class="d-flex justify-content-between">
<span class="fs-3 fw-bold text-gray-900">Total Amount:</span>
<span class="fs-2 fw-bolder text-primary"><?php echo $order['currency']; ?> <?php echo number_format($order['total_amount'], 2); ?></span>
</div>
</div>
</div>
</div>
<div class="card">
<div class="card-body text-center py-10">
<button id="rzp-button" class="btn btn-lg btn-primary">
<i class="ki-duotone ki-shield-tick fs-2 me-2">
<span class="path1"></span>
<span class="path2"></span>
</i>
Pay <?php echo $order['currency']; ?> <?php echo number_format($order['total_amount'], 2); ?>
</button>
<div class="mt-5">
<i class="ki-duotone ki-shield-tick fs-2x text-success">
<span class="path1"></span>
<span class="path2"></span>
</i>
<span class="fw-semibold text-gray-600 ms-2">Secured by Razorpay</span>
</div>
<div class="mt-8">
<a href="admin/domain_portfolio.php" class="btn btn-light-primary">
<i class="ki-duotone ki-left fs-2"></i>
Cancel & Go Back
</a>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<?php include 'includes/footer.php'; ?>
</div>
</div>
</div>
</div>
<script src="https://checkout.razorpay.com/v1/checkout.js"></script>
<script src="assets/plugins/global/plugins.bundle.js"></script>
<script src="assets/js/scripts.bundle.js"></script>
<script>
var options = {
"key": "<?php echo $razorpay_key_id; ?>",
"amount": "<?php echo $order['total_amount'] * 100; ?>",
"currency": "<?php echo $order['currency']; ?>",
"name": "TheDotStudios",
"description": "Domain Renewal - <?php echo $order['domain_name']; ?>",
"image": "<?php echo BASE_URL; ?>assets/media/logos/LOGO.png",
"order_id": "<?php echo $order['razorpay_order_id']; ?>",
"handler": function (response) {
var form = document.createElement('form');
form.method = 'POST';
form.action = 'admin/verify_domain_payment.php';
var fields = {
'razorpay_payment_id': response.razorpay_payment_id,
'razorpay_order_id': response.razorpay_order_id,
'razorpay_signature': response.razorpay_signature,
'order_id': '<?php echo $order_id; ?>'
};
for (var key in fields) {
var input = document.createElement('input');
input.type = 'hidden';
input.name = key;
input.value = fields[key];
form.appendChild(input);
}
document.body.appendChild(form);
form.submit();
},
"prefill": {
"name": "<?php echo $user_name; ?>",
"email": "<?php echo $user_email; ?>",
"contact": ""
},
"notes": {
"order_number": "<?php echo $order['order_number']; ?>",
"domain_name": "<?php echo $order['domain_name']; ?>"
},
"theme": {
"color": "#009ef7"
},
"modal": {
"ondismiss": function() {
window.location.href = 'admin/domain_portfolio.php';
}
}
};
var rzp = new Razorpay(options);
document.getElementById('rzp-button').onclick = function(e) {
e.preventDefault();
rzp.open();
};
</script>
</body>
</html>