'Número de orden y código de orden son requeridos.']); exit; } // 2. Configurar la llamada a la API de Shalom $apiKey = 'sk_mlq1j3na_4a676ewvaop'; // La URL del endpoint de tracking según la documentación inferida. $url = "https://shalom-api.lat/api/tracking/$orderNumber/$orderCode"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, [ 'Accept: application/json', "Authorization: Bearer {$apiKey}" ]); // 3. Ejecutar la llamada y obtener la respuesta $response = curl_exec($ch); $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); $error = curl_error($ch); curl_close($ch); // 4. Manejar la respuesta if ($error) { http_response_code(500); echo json_encode(['error' => 'Error en la comunicación con la API de Shalom: ' . $error]); exit; } if ($httpCode >= 400) { http_response_code($httpCode); // Intentar decodificar el cuerpo del error si Shalom lo envía en JSON $errorBody = json_decode($response, true); if (json_last_error() === JSON_ERROR_NONE && isset($errorBody['message'])) { echo json_encode(['error' => "Error de la API de Shalom: " . $errorBody['message']]); } else { echo json_encode(['error' => "Error de la API de Shalom (código {$httpCode}).", 'details' => $response]); } exit; } // 5. Devolver la respuesta exitosa al cliente echo $response;