BABER adlı üyeden alıntı: mesajı görüntüle
İlk yanıtımı güncelledim onu dener misiniz?
shopier secret vb ekledim oldu şimdi ama veritabanı işlemlerini yapmıyor bu sefer hocam kodu aşşağıya bırakıyorum

$router->map('POST', '/panel/callback/[*:platform]', function($platform) {
    global $vt, $shopierSecret; // Assuming $shopierSecret is defined somewhere
    $shopierSecret = xxxxxxx;
    // POST data retrieval and sanitization
    $status = $_POST["status"] ?? "";
    $invoiceId = $_POST["platform_order_id"] ?? "";
    $transactionId = $_POST["payment_id"] ?? "";
    $installment = $_POST["installment"] ?? "";
    $signature = $_POST["signature"] ?? "";
    
    // Signature validation
    $data = $_POST["random_nr"] . $_POST["platform_order_id"] . $_POST["total_order_value"] . $_POST["currency"];
    $signature = base64_decode($signature);
    $expected = hash_hmac('SHA256', $data, $shopierSecret, true);
    
    // Verify signature
    if ($signature === $expected) {
        $status = strtolower($status);
        
        if ($status === "success") {
            // Payment successful: Update user balance and payment status
            $paymentInfo = $vt->prepare("SELECT * FROM payments WHERE unique_id=?");
            $paymentInfo->execute([$invoiceId]);
            $paymentInfo = $paymentInfo->fetch(PDO::FETCH_OBJ);
            
                $userDetails = $vt->prepare("SELECT * FROM users WHERE id=?");
                $userDetails->execute([$paymentInfo->user_id]);
                $userInfo = $userDetails->fetch(PDO::FETCH_OBJ);
                
                // Update user balance
                $newBalance = $userInfo->balance + $paymentInfo->amount;
                $updateBalance = $vt->prepare("UPDATE users SET balance = ? WHERE id = ?");
                $updateBalance->execute([$newBalance, $paymentInfo->user_id]);
                
                // Update payment status
                $updatePaymentStatus = $vt->prepare("UPDATE payments SET status = ? WHERE id = ?");
                $updatePaymentStatus->execute([1, $paymentInfo->id]);
            echo "para eklendi";
        }
    } else {
        echo "İmza doğrulaması başarısız.";
    }
    exit(); // Ensure script terminates after processing
}, 'app.callback.post');