From e2624e7e321b77e15aa1e99fe7178e52f7f81cda Mon Sep 17 00:00:00 2001 From: lizandrogd <77708265+lizandrogd@users.noreply.github.com> Date: Wed, 21 Jan 2026 12:58:44 -0500 Subject: [PATCH] Update media-url.php --- api/version/media-url.php | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/api/version/media-url.php b/api/version/media-url.php index 9a52ee4..410ecfa 100644 --- a/api/version/media-url.php +++ b/api/version/media-url.php @@ -31,7 +31,20 @@ if (!$mediaId && !$providedUrl) { $mediaUrl = null; if ($providedUrl) { + // Reconstruir la URL si fue pasada sin codificar y otros parámetros quedaron como GET separados $mediaUrl = $providedUrl; + $ignoredKeys = ['url','download','id','local']; + $extraParts = []; + foreach ($_GET as $k => $v) { + if (in_array($k, $ignoredKeys, true)) continue; + // Reconstruir sólo si el parámetro no está ya presente en la URL + if (strpos($mediaUrl, $k . '=') === false) { + $extraParts[] = $k . ($v !== '' ? '=' . rawurlencode($v) : ''); + } + } + if (!empty($extraParts)) { + $mediaUrl .= (strpos($mediaUrl, '?') === false ? '?' : '&') . implode('&', $extraParts); + } } else { $token = getConfigFromDB('whatsapp_token', ''); $apiUrl = rtrim(getConfigFromDB('whatsapp_api_url', 'https://graph.facebook.com/v22.0/'), '/'); @@ -148,6 +161,15 @@ if ($download) { exit; } + // Si el servidor remoto devolvió un código HTTP de error, devolverlo al cliente + $remoteHttp = isset($info['http_code']) ? (int)$info['http_code'] : 0; + if ($remoteHttp >= 400) { + http_response_code(502); + header('Content-Type: application/json; charset=utf-8'); + echo json_encode(['success' => false, 'error' => 'Remote server returned error status', 'http_code' => $remoteHttp, 'url' => $mediaUrl]); + exit; + } + $headerSize = isset($info['header_size']) ? (int)$info['header_size'] : 0; $headersText = $headerSize ? substr($response, 0, $headerSize) : ''; $body = $headerSize ? substr($response, $headerSize) : $response;