<?php
session_start();
require_once(__DIR__ . "/lib/SslCommerzNotification.php");
include("../../../php/dbconnect.php");

// Get payment details from URL parameters
$payment_details = isset($_GET['payment_details']) ? json_decode(urldecode($_GET['payment_details']), true) : null;

if (!$payment_details) {
    echo "<script>
        alert('Payment details not found. Please try again.');
        window.location.href = '../index.php';
    </script>";
    exit;
}

// Store in session for callback
$_SESSION['payment_details'] = $payment_details;

// Prepare SSLCommerz post data
$post_data = array();

// Transaction information
$post_data['total_amount'] = $payment_details['amount'];
$post_data['currency'] = "BDT";
$post_data['tran_id'] = "SSLCZ_" . $payment_details['payment_id'] . "_" . uniqid();

// Get student information from database
$student_query = "SELECT * FROM student WHERE regi = '{$payment_details['student_id']}'";
$student_result = mysqli_query($con, $student_query);
$student_data = mysqli_fetch_assoc($student_result);

// Customer Information
$post_data['cus_name'] = $student_data['sname'] ?? "Student Name";
$post_data['cus_email'] = $student_data['emailid'] ?? "student@email.com";
$post_data['cus_phone'] = $student_data['contact'] ?? "01700000000";
$post_data['cus_add1'] = $student_data['parental_address'] ?? "Address";
$post_data['cus_city'] =  "City";
$post_data['cus_country'] = "Bangladesh";
$post_data['cus_postcode'] = "1000";

// Shipment Information (Required but not used)
$post_data['shipping_method'] = "NO";
$post_data['ship_name'] = $student_data['sname'] ?? "Student Name";
$post_data['ship_add1'] = $student_data['parental_address'] ?? "Address";
$post_data['ship_city'] =  "City";
$post_data['ship_postcode'] = "1000";
$post_data['ship_country'] = "Bangladesh";

// Product Information
$post_data['product_name'] = $payment_details['fee_type'];
$post_data['product_category'] = "Education";
$post_data['product_profile'] = "non-physical-goods";
$post_data['num_of_item'] = 1;

// Additional Information
$post_data['value_a'] = $payment_details['student_id'];
$post_data['value_b'] = $payment_details['payment_id'];
$post_data['value_c'] = $payment_details['aaa_type'];
$post_data['value_d'] = $payment_details['year'];

try {
    // Initialize SSLCommerz
    $sslcz = new SslCommerzNotification();
    
    // Start the payment transaction
    $payment_options = $sslcz->makePayment($post_data, 'hosted');

    if (!is_array($payment_options)) {
        print_r($payment_options);
        $payment_options = array();
    }

} catch (Exception $e) {
    echo "<script>
        alert('Error initializing payment: " . addslashes($e->getMessage()) . "');
        window.location.href = '../index.php';
    </script>";
}