<?php
// ১. পেজের URL ডাইনামিকভাবে বের করা
$protocol = isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http";
$base_url = $protocol . "://" . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'];

$action = isset($_GET['action']) ? $_GET['action'] : 'home';

// ==========================================
// [A] Webhook / Notify Action (ব্যাকএন্ডে পেমেন্ট ভেরিফিকেশন)
// ==========================================
if ($action == 'notify') {
    $gateway_response = file_get_contents("php://input");
    if (empty($gateway_response) && !empty($_POST)) {
        $gateway_response = json_encode($_POST);
    }
    
    file_put_contents('payment_log.txt', date('Y-m-d H:i:s') . " - Notify Data: " . $gateway_response . PHP_EOL, FILE_APPEND);
    
    echo "success"; 
    exit();
}

// ==========================================
// [B] Success Action (পেমেন্ট সফল হওয়ার পর রিটার্ন পেজ)
// ==========================================
if ($action == 'success') {
    ?>
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Payment Successful</title>
        <style>
            body { font-family: Arial, sans-serif; text-align: center; padding: 50px; background: #f0f2f5; }
            .box { background: #fff; border-top: 5px solid #28a745; padding: 40px; border-radius: 8px; box-shadow: 0 4px 15px rgba(0,0,0,0.1); display: inline-block; }
            .btn { background: #007bff; color: white; text-decoration: none; padding: 10px 20px; border-radius: 4px; display: inline-block; margin-top: 20px; }
        </style>
    </head>
    <body>
        <div class="box">
            <h2 style="color: #28a745;">🎉 পেমেন্ট সফলভাবে সম্পন্ন হয়েছে!</h2>
            <p>আপনার ট্রানজেকশনটি সফলভাবে প্রসেস করা হয়েছে।</p>
            <a href="<?php echo $base_url; ?>" class="btn">হোম পেজে ফিরুন</a>
        </div>
    </body>
    </html>
    <?php
    exit();
}

// ==========================================
// [C] Pay Action (পেমেন্ট রিকোয়েস্ট Cowpay সার্ভারে পাঠানো)
// ==========================================
if ($action == 'pay') {
    
    // আপনার সঠিক মার্চেন্ট ক্রেডেনশিয়ালস
    $merchant_id = "M2713105311620300318";
    $secret_key  = "d90915c5bb1c442bc4b7466e2ad90283"; 
    
    $order_id   = (string) time(); 
    $amount     = "100.00"; 
    $currency   = "BDT"; 

    $return_url = $base_url . "?action=success";
    $notify_url = $base_url . "?action=notify";

    $api_endpoint = "https://api.cowpay.co/pay"; 

    // প্যারামিটার (Alphabetical Order অনুযায়ী সাজানো)
    $params = array(
        'amount'       => $amount,
        'country_code' => 'BD',
        'currency'     => $currency,
        'merchant_code'=> $merchant_id,
        'notify_url'   => $notify_url,
        'out_trade_no' => $order_id,
        'return_url'   => $return_url
    );

    // MD5 Signature তৈরি
    ksort($params); 
    $sign_string = '';
    foreach($params as $key => $value) {
        if($value !== '' && $value !== null) {
            $sign_string .= $key . '=' . $value . '&';
        }
    }
    $sign_string .= 'key=' . $secret_key;
    $signature = strtoupper(md5($sign_string)); // UPPERCASE MD5
    
    // চূড়ান্ত JSON ডেটা অবজেক্ট
    $payload_array = array(
        'merchant_code' => $merchant_id,
        'signtype'      => 'MD5',
        'sign'          => $signature,
        'transdata'     => $params
    );
    
    $json_payload = json_encode($payload_array, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);

    // cURL রিকোয়েস্ট পাঠানো
    $ch = curl_init($api_endpoint);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $json_payload); 
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(
        'Content-Type: application/json',
        'Content-Length: ' . strlen($json_payload)
    ));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
    curl_setopt($ch, CURLOPT_TIMEOUT, 30); 
    
    $response = curl_exec($ch);
    $http_status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);

    $result = json_decode($response, true);

    // সফল হলে পেমেন্ট পেজে রিডাইরেক্ট করবে
    if($http_status == 200 && isset($result['code']) && $result['code'] == '200') { 
        $payment_url = isset($result['data']['payment_url']) ? $result['data']['payment_url'] : (isset($result['payUrl']) ? $result['payUrl'] : (isset($result['url']) ? $result['url'] : ''));
        
        if(!empty($payment_url)){
            header("Location: " . $payment_url);
            exit();
        }
    } 
    
    // IP ব্লক বা অন্য কোনো এরর থাকলে সেটি সুন্দরভাবে দেখাবে
    echo "<div style='font-family:Arial; text-align:center; padding:50px; background:#f9f9f9; border:1px solid #ddd; max-width:600px; margin:50px auto; border-radius:8px;'>";
    echo "<h3 style='color:#dc3545;'>পেমেন্ট গেটওয়ে কানেকশন ফেইলড!</h3>";
    echo "<p style='font-size:16px;'><b>Cowpay Server Message:</b> <br><br> <span style='color:#333; background:#eee; padding:10px; display:inline-block; border-radius:4px;'>" . (isset($result['message']) ? htmlspecialchars($result['message']) : 'Unknown Error') . "</span></p>";
    
    // আইপি হোয়াইটলিস্টের এরর হলে সরাসরি গাইডলাইন দেখাবে
    if(isset($result['message']) && strpos($result['message'], 'whitelist') !== false) {
        echo "<div style='background:#e2f3f5; border-left:4px solid #17a2b8; padding:15px; margin-top:20px; text-align:left;'>";
        echo "<b style='color:#117a8b;'>💡 করণীয়:</b> আপনার Cowpay Merchant ড্যাশবোর্ডে লগইন করে <b>IP Whitelist</b> অপশনে গিয়ে আপনার সার্ভারের আইপি (যেমন: <b>68.65.120.177</b>) সেভ করুন। এরপর আবার ট্রাই করুন।";
        echo "</div>";
    }
    
    echo "<a href='".$base_url."' style='display:inline-block; padding:12px 25px; background:#007bff; color:#fff; text-decoration:none; border-radius:5px; margin-top:25px;'>আবার চেষ্টা করুন</a>";
    echo "</div>";
    exit();
}

// ==========================================
// [D] Default View (হোম পেজ)
// ==========================================
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Cowpay API Gateway</title>
    <style>
        body { font-family: Arial, sans-serif; text-align: center; padding: 60px; background-color: #f8f9fa;}
        .container { background: #fff; padding: 50px; border-radius: 12px; box-shadow: 0 5px 20px rgba(0,0,0,0.05); display: inline-block;}
        .btn { background-color: #000; color: white; padding: 15px 40px; text-decoration: none; border-radius: 30px; font-size: 18px; font-weight: bold; display: inline-block; margin-top: 20px; transition: 0.3s;}
        .btn:hover { background-color: #333; transform: translateY(-2px);}
        .secure-badge { display: block; margin-top: 15px; font-size: 13px; color: #28a745; font-weight: bold;}
    </style>
</head>
<body>
    <div class="container">
        <h2 style="margin-bottom: 10px; color:#333;">Secure Checkout</h2>
        <p style="color:#666; font-size: 16px;">Total Amount: <b>100.00 BDT</b></p>
        <a href="?action=pay" class="btn">Pay Now</a>
        <span class="secure-badge">🔒 Secured by Cowpay API</span>
    </div>
</body>
</html>
