prepare("INSERT INTO payment_tokens (token, driverID, dateCreated, amount) VALUES (?, ?, NOW(), ?)"); try { $stmt->execute([$token, $driverID, $amount]); if ($stmt->rowCount() > 0) { printSuccess($token); } else { printFailure("Failed to save record"); } } catch (PDOException $e) { error_log("[addPaymentToken] " . $e->getMessage()); printFailure("Database error"); } function generateSecureToken($driverID, $amount) { global $secretKey; // Concatenate the parameters $data = $driverID . $amount . time(); // Add the secret key from the environment variable $data .= $secretKey; // Generate a hash $hash = hash('sha256', $data); // Add some randomness $randomBytes = bin2hex(random_bytes(16)); // Combine hash and random bytes $token = $hash . $randomBytes; // Truncate to a reasonable length (e.g., 64 characters) return substr($token, 0, 64); }