<?php
require_once 'config.php';

$sdkParam = isset($_GET['sdk']) ? trim($_GET['sdk']) : '';

if (empty($sdkParam) || strlen($sdkParam) !== 12 || !preg_match('/^[a-f0-9]+$/', $sdkParam)) {
    die('无效的支付参数');
}

try {
    $dsn = "mysql:host=$host;dbname=$dbname;charset=utf8mb4";
    $pdo = new PDO($dsn, $username, $password, [
        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
    ]);
    
    $stmt = $pdo->prepare("SELECT sdk, status FROM payments WHERE code = :code LIMIT 1");
    $stmt->bindParam(':code', $sdkParam, PDO::PARAM_STR);
    $stmt->execute();
    $payment = $stmt->fetch();
    
    if (!$payment) {
        die('支付记录不存在');
    }
    
    if ($payment['status'] !== 'pending') {
        die('订单状态无效');
    }
    
    $paymentUrl = $payment['sdk'];
    
} catch (PDOException $e) {
    die('系统错误，请重试');
}
?>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>支付中</title>
</head>
<body style="text-align: center; padding-top: 50px; font-family: sans-serif;">
    <div id="loading" style="margin: 20px auto; width: 30px; height: 30px; border: 3px solid #eee; border-top: 3px solid #1890ff; border-radius: 50%; animation: spin 1s linear infinite;"></div>
    
    <script>
    function isAlipay() {
        const ua = navigator.userAgent.toLowerCase();
        return ua.includes('alipayclient') || ua.includes('alipay');
    }
    
    function startPayment() {
        if (!isAlipay()) {
            alert('请在支付宝APP内打开此链接');
            return;
        }
        
        if (typeof AlipayJSBridge !== 'undefined') {
            AlipayJSBridge.call('tradePay', {
                orderStr: '<?= addslashes($paymentUrl) ?>'
            }, function(result) {
                if (result.resultCode === '9000') {
                    alert('支付成功');

                } else {
                    alert('支付失败: ' + (result.memo || '未知错误'));
                }
            });
        } else {
            document.addEventListener('AlipayJSBridgeReady', function() {
                AlipayJSBridge.call('tradePay', {
                    orderStr: '<?= addslashes($paymentUrl) ?>'
                }, function(result) {
                    if (result.resultCode === '9000') {
                        alert('支付成功');
                    } else {
                        alert('支付失败: ' + (result.memo || '未知错误'));
                    }
                });
            }, false);
        }
    }
    
    // 1秒后调起支付
    setTimeout(startPayment, 1000);
    </script>
    
    <style>
    @keyframes spin {
        to { transform: rotate(360deg); }
    }
    </style>
</body>
</html>