5.gif", 7912 bytes, 55.74Kbyte/sec Tue Jul 22 12:27:26 2025 [pid 2933467] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-96153.gif", 19791 bytes, 93.64Kbyte/sec Tue Jul 22 12:27:26 2025 [pid 2933466] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-96150.gif", 15139 bytes, 106.80Kbyte/sec Tue Jul 22 12:27:26 2025 [pid 2933467] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-96141.gif", 5278 bytes, 37.22Kbyte/sec Tue Jul 22 12:27:26 2025 [pid 2933466] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-96140.gif", 27741 bytes, 128.98Kbyte/sec Tue Jul 22 12:27:26 2025 [pid 2933467] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-96138.gif", 13567 bytes, 95.88Kbyte/sec Tue Jul 22 12:27:26 2025 [pid 2933466] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-96137.gif", 13372 bytes, 94.81Kbyte/sec Tue Jul 22 12:27:26 2025 [pid 2933467] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-96132.gif", 6391 bytes, 45.40Kbyte/sec Tue Jul 22 12:27:27 2025 [pid 2933467] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-96125.gif", 9002 bytes, 63.37Kbyte/sec Tue Jul 22 12:27:27 2025 [pid 2933467] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-96124.gif", 9002 bytes, 63.77Kbyte/sec Tue Jul 22 12:27:27 2025 [pid 2933466] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-96129.gif", 31730 bytes, 43.93Kbyte/sec Tue Jul 22 12:27:27 2025 [pid 2933467] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-96123.gif", 9002 bytes, 63.28Kbyte/sec Tue Jul 22 12:27:28 2025 [pid 2933466] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-96122.gif", 9002 bytes, 60.32Kbyte/sec Tue Jul 22 12:27:28 2025 [pid 2933467] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-96119.gif", 3786 bytes, 26.74Kbyte/sec Tue Jul 22 12:27:28 2025 [pid 2933466] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-96107.gif", 6656 bytes, 46.90Kbyte/sec Tue Jul 22 12:27:28 2025 [pid 2933467] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-96106.gif", 6656 bytes, 47.47Kbyte/sec Tue Jul 22 12:27:28 2025 [pid 2933466] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-96105.gif", 8409 bytes, 59.30Kbyte/sec Tue Jul 22 12:27:28 2025 [pid 2933467] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-96104.gif", 3789 bytes, 27.00Kbyte/sec Tue Jul 22 12:27:28 2025 [pid 2933466] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-96098.gif", 14390 bytes, 102.36Kbyte/sec Tue Jul 22 12:27:29 2025 [pid 2933467] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-96077.gif", 3853 bytes, 27.52Kbyte/sec Tue Jul 22 12:27:29 2025 [pid 2933466] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-96076.gif", 9094 bytes, 64.03Kbyte/sec Tue Jul 22 12:27:29 2025 [pid 2933467] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-96072.gif", 1596 bytes, 11.25Kbyte/sec Tue Jul 22 12:27:29 2025 [pid 2933466] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-96071.gif", 1596 bytes, 11.25Kbyte/sec Tue Jul 22 12:27:29 2025 [pid 2933467] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-96069.gif", 7036 bytes, 50.02Kbyte/sec Tue Jul 22 12:27:29 2025 [pid 2933466] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-96068.gif", 10180 bytes, 71.59Kbyte/sec Tue Jul 22 12:27:29 2025 [pid 2933467] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-96067.gif", 24584 bytes, 117.05Kbyte/sec Tue Jul 22 12:27:30 2025 [pid 2933466] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-96056.gif", 26413 bytes, 124.78Kbyte/sec Tue Jul 22 12:27:30 2025 [pid 2933467] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-96055.gif", 18559 bytes, 87.49Kbyte/sec Tue Jul 22 12:27:30 2025 [pid 2933466] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-96054.gif", 19457 bytes, 92.19Kbyte/sec Tue Jul 22 12:27:30 2025 [pid 2933466] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-96052.gif", 23327 bytes, 109.16Kbyte/sec Tue Jul 22 12:27:31 2025 [pid 2933466] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-96051.gif", 9615 bytes, 67.65Kbyte/sec Tue Jul 22 12:27:31 2025 [pid 2933467] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-96053.gif", 31685 bytes, 44.12Kbyte/sec Tue Jul 22 12:27:31 2025 [pid 2933466] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-96050.gif", 8395 bytes, 58.66Kbyte/sec Tue Jul 22 12:27:31 2025 [pid 2933467] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-96049.gif", 9136 bytes, 64.16Kbyte/sec Tue Jul 22 12:27:31 2025 [pid 2933466] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-96048.gif", 19966 bytes, 94.11Kbyte/sec Tue Jul 22 12:27:31 2025 [pid 2933467] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-96046.gif", 16165 bytes, 75.35Kbyte/sec Tue Jul 22 12:27:32 2025 [pid 2933467] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-96041.gif", 10206 bytes, 71.69Kbyte/sec Tue Jul 22 12:27:32 2025 [pid 2933466] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-96042.gif", 16895 bytes, 79.25Kbyte/sec Tue Jul 22 12:27:32 2025 [pid 2933467] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-96040.gif", 10206 bytes, 71.81Kbyte/sec Tue Jul 22 12:27:32 2025 [pid 2933466] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-96039.gif", 22685 bytes, 106.71Kbyte/sec Tue Jul 22 12:27:32 2025 [pid 2933467] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-96038.gif", 14407 bytes, 97.77Kbyte/sec Tue Jul 22 12:27:32 2025 [pid 2933466] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-96037.gif", 15172 bytes, 107.14Kbyte/sec Tue Jul 22 12:27:32 2025 [pid 2933467] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-96036.gif", 14770 bytes, 104.18Kbyte/sec Tue Jul 22 12:27:33 2025 [pid 2933466] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-96035.gif", 13934 bytes, 98.63Kbyte/sec Tue Jul 22 12:27:33 2025 [pid 2933467] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-96034.gif", 17368 bytes, 81.58Kbyte/sec Tue Jul 22 12:27:33 2025 [pid 2933466] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-96033.gif", 6034 bytes, 42.37Kbyte/sec Tue Jul 22 12:27:33 2025 [pid 2933467] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-96032.gif", 6330 bytes, 44.47Kbyte/sec Tue Jul 22 12:27:33 2025 [pid 2933466] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-96031.gif", 20260 bytes, 95.45Kbyte/sec Tue Jul 22 12:27:34 2025 [pid 2933467] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-96030.gif", 17890 bytes, 83.46Kbyte/sec Tue Jul 22 12:27:34 2025 [pid 2933466] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-96027.gif", 17351 bytes, 81.22Kbyte/sec Tue Jul 22 12:27:34 2025 [pid 2933467] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-96026.gif", 18752 bytes, 87.05Kbyte/sec Tue Jul 22 12:27:34 2025 [pid 2933466] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-96025.gif", 60443 bytes, 169.62Kbyte/sec Tue Jul 22 12:27:34 2025 [pid 2933466] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-96023.gif", 8558 bytes, 60.27Kbyte/sec Tue Jul 22 12:27:35 2025 [pid 2933467] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-96024.gif", 30110 bytes, 53.48Kbyte/sec Tue Jul 22 12:27:35 2025 [pid 2933466] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-96022.gif", 17508 bytes, 81.86Kbyte/sec Tue Jul 22 12:27:35 2025 [pid 2933466] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-96011.gif", 52540 bytes, 180.63Kbyte/sec Tue Jul 22 12:27:36 2025 [pid 2933467] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-96012.gif", 33604 bytes, 42.12Kbyte/sec Tue Jul 22 12:27:36 2025 [pid 2933466] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-96010.gif", 47540 bytes, 167.63Kbyte/sec Tue Jul 22 12:27:36 2025 [pid 2933467] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-96009.gif", 53293 bytes, 186.71Kbyte/sec Tue Jul 22 12:27:36 2025 [pid 2933466] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-96008.gif", 22031 bytes, 103.14Kbyte/sec Tue Jul 22 12:27:36 2025 [pid 2933467] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-96007.gif", 14174 bytes, 98.53Kbyte/sec Tue Jul 22 12:27:36 2025 [pid 2933466] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-96006.gif", 21584 bytes, 101.18Kbyte/sec Tue Jul 22 12:27:37 2025 [pid 2933467] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-96005.gif", 26302 bytes, 124.43Kbyte/sec Tue Jul 22 12:27:37 2025 [pid 2933467] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-96003.gif", 14110 bytes, 97.90Kbyte/sec Tue Jul 22 12:27:37 2025 [pid 2933467] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-95999.gif", 26051 bytes, 121.89Kbyte/sec Tue Jul 22 12:27:37 2025 [pid 2933466] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-96004.gif", 38080 bytes, 43.43Kbyte/sec Tue Jul 22 12:27:38 2025 [pid 2933467] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-95998.gif", 9886 bytes, 69.33Kbyte/sec Tue Jul 22 12:27:38 2025 [pid 2933466] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-95997.gif", 17343 bytes, 82.17Kbyte/sec Tue Jul 22 12:27:38 2025 [pid 2933467] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-95996.gif", 16745 bytes, 79.09Kbyte/sec Tue Jul 22 12:27:38 2025 [pid 2933466] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-95995.gif", 14761 bytes, 100.49Kbyte/sec Tue Jul 22 12:27:38 2025 [pid 2933467] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-95994.gif", 15502 bytes, 106.15Kbyte/sec Tue Jul 22 12:27:38 2025 [pid 2933466] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-95993.gif", 11271 bytes, 78.95Kbyte/sec Tue Jul 22 12:27:39 2025 [pid 2933467] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-95992.gif", 14074 bytes, 99.13Kbyte/sec Tue Jul 22 12:27:39 2025 [pid 2933466] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-95985.gif", 13431 bytes, 93.89Kbyte/sec Tue Jul 22 12:27:39 2025 [pid 2933467] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-95983.gif", 19233 bytes, 91.13Kbyte/sec Tue Jul 22 12:27:39 2025 [pid 2933467] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-95980.gif", 24115 bytes, 113.88Kbyte/sec Tue Jul 22 12:27:40 2025 [pid 2933466] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-95982.gif", 33912 bytes, 42.25Kbyte/sec Tue Jul 22 12:27:40 2025 [pid 2933467] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-95979.gif", 29010 bytes, 136.13Kbyte/sec Tue Jul 22 12:27:40 2025 [pid 2933466] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-95978.gif", 21420 bytes, 100.54Kbyte/sec Tue Jul 22 12:27:40 2025 [pid 2933466] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-95976.gif", 25739 bytes, 121.41Kbyte/sec Tue Jul 22 12:27:41 2025 [pid 2933467] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-95977.gif", 35569 bytes, 40.74Kbyte/sec Tue Jul 22 12:27:41 2025 [pid 2933466] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-95965.gif", 24974 bytes, 117.76Kbyte/sec Tue Jul 22 12:27:41 2025 [pid 2933467] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-95964.gif", 17111 bytes, 80.64Kbyte/sec Tue Jul 22 12:27:41 2025 [pid 2933467] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-95962.gif", 11904 bytes, 84.64Kbyte/sec Tue Jul 22 12:27:42 2025 [pid 2933467] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-95955.gif", 19311 bytes, 91.07Kbyte/sec Tue Jul 22 12:27:42 2025 [pid 2933466] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", "/MAR-95963.gif", 44570 bytes, 47.62Kbyte/sec Tue Jul 22 12:27:42 2025 [pid 2933467] [usuarioftp] OK DOWNLOAD: Client "::ffff:201.149.27.131", 'https://www.zohoapis.com/crm/v2/Marcas/' . $MarcaId . '/photo', CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'GET', CURLOPT_HTTPHEADER => array( 'Authorization: Zoho-oauthtoken ' . $CRMaccess_token ), )); // ejecución y obtención de información de la llamada $response = curl_exec($curl); $curl_info = curl_getinfo($curl); $response_code = $curl_info['http_code']; // valida si el servicio devolvió código indicando que el registro no contiene una foto if($response_code === 204) { $hasPhoto = false; writeLog($idProcess, "Intento " . $retryCount . " el registro no contiene foto asociada"); } else { writeLog($idProcess, "Intento " . $retryCount . " para obtener imagen de marca de CRM, respuesta: " . $response_code); } // validación de código de respuesta http if ($response_code === 200) { $success = true; } else { $retryCount++; writeLog($idProcess, "ERROR al obtener imagen, intento: " . $retryCount . " , respuesta: " . json_encode(json_decode($response), JSON_PRETTY_PRINT)); // espera 2 segundos antes de reintentar la solicitud y evitar colisiones sleep(2); } } if(!$hasPhoto) { // devuelve mensaje e interrumpe el proceso $errorResponse = array( 'id' => null, 'Imagen' => null, 'message' => 'El registro no contiene foto asociada', ); writeLog($idProcess, 'No se pudo encontrar una imagen asociada a registro de CRM \n'); $imageData = array( 'id' => $MarcaId, 'Imagen' => '', ); $curl = curl_init(); // configuración para actualzar marca limpiando datos de imagen curl_setopt_array($curl, array( CURLOPT_URL => 'https://www.zohoapis.com/crm/v2/Marcas/' . $MarcaId, CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'PUT', CURLOPT_POSTFIELDS => json_encode( array( 'data' => array($imageData), )), CURLOPT_HTTPHEADER => array( 'Authorization: Zoho-oauthtoken ' . $CRMaccess_token ), )); $response = curl_exec($curl); $curl_info = curl_getinfo($curl); $response_code = $curl_info['http_code']; curl_close($curl); echo json_encode($errorResponse); return json_encode($errorResponse); } // valida el error después de reeintentar if (!$success) { // devuelve mensaje de error e interrumpe el proceso $errorResponse = array( 'id' => null, 'Imagen' => null, 'message' => 'Error al obtener imagen desde CRM, porfavor confirme si hay una imagen adjunta al registro', ); writeLog($idProcess, 'Error al obtener imagen desde CRM, porfavor confirme si hay una imagen adjunta al registro \n'); echo json_encode($errorResponse); return json_encode($errorResponse); } // extrae imagen y sus propiedades $content_type = curl_getinfo($curl, CURLINFO_CONTENT_TYPE); $image_type = strstr( $content_type, ';', true); $extension = str_replace( '/', '.', strstr( $image_type, '/' ) ); curl_close($curl); // creación de ruta para guardar imagen $filename = $RefAL . $extension; $filename_fullpath = './LogosArochi/' . $RefAL . $extension; /************************************************************ * Guardado de imagen en directorio local ************************************************************/ // variables para control de reintentos de guardado local de imagen $retryCountImgLocal = 0; $successImgLocal = false; // cicla reintentos para guardar imagen localmente while ($retryCountImgLocal < $maxRetries && !$successImgLocal) { // guarda imagen en directorio local con ruta creada anteriomente $fp = fopen($filename_fullpath, 'w'); fwrite($fp, $response); fclose($fp); // echo 'intentos para guardar imagen localmente: '. ($retryCountImgLocal+1); // Validar el guardado de la imagen localmente if (file_exists($filename_fullpath)) { $successImgLocal = true; writeLog($idProcess, "Imagen guardada localmente de manera exitosa"); } else { writeLog($idProcess, "Error al guardar imagen localmente"); $retryCount++; sleep(12); // espera 2 segundos antes de reintentar el guardado para evitar colisiones } } // valida si la imagen fue guardada correctamente if (!$successImgLocal) { // devuelve mensaje de error e interrumpe ejecución $errorResponse = array( 'id' => null, 'Imagen' => null, 'message' => 'Error al guardar imagen en directorio local', ); echo json_encode($errorResponse); return json_encode($errorResponse); } $imageData = array( 'id' => $MarcaId, 'Imagen' => 'https://aptuslegal.app/imagenesAptusLegal/arochi/LogosArochi/' . $filename , ); $retryCountUpdCrm = 0; $successUpdCrm = false; /************************************************************ * Actualización de marca en CRM con datos de imagen ************************************************************/ // se cicla proceso para reintentar en caso de fallo al actualizar while ($retryCountUpdCrm < $maxRetries && !$successUpdCrm) { $curl = curl_init(); // configuración para ACTUALIZAR marca con datos de imagen curl_setopt_array($curl, array( CURLOPT_URL => 'https://www.zohoapis.com/crm/v2/Marcas/' . $MarcaId, CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'PUT', CURLOPT_POSTFIELDS => json_encode( array( 'data' => array($imageData), )), CURLOPT_HTTPHEADER => array( 'Authorization: Zoho-oauthtoken ' . $CRMaccess_token ), )); $response = curl_exec($curl); $curl_info = curl_getinfo($curl); $response_code = $curl_info['http_code']; curl_close($curl); writeLog($idProcess, "Intento " . $retryCountUpdCrm . " para actualizar CRM con datos de url de marca: " . json_encode(json_decode($response), JSON_PRETTY_PRINT)); // validación de código http if ($response_code === 200) { $successUpdCrm = true; } else { $retryCountUpdCrm++; sleep(2); // espera 2 segundos antes de reintentar la solicitud } } // valida si la imagen fue guardada correctamente if (!$successUpdCrm) { // si la actualización del registro fue fallida elimina la imagen $filename_fullpath = './LogosArochi/' . $RefAL . '.png'; unlink($filename_fullpath); // devuelve mensaje de error e interrumpe ejecución $errorResponse = array( 'id' => null, 'Imagen' => null, 'message' => 'Error al guardar imagen en directorio local', ); } // objeto de respuesta exitosa $successResponse = array( 'id' => $MarcaId, 'Imagen' => 'https://aptuslegal.app/imagenesAptusLegal/arochi/LogosArochi/' . $filename , 'message' => 'Imagen guardada exitosamente', ); // se guarda entrada en log writeLog($idProcess, "Proceso finalizado exitosamente, URL: https://aptuslegal.app/imagenesAptusLegal/arochi/LogosArochi/" . $filename . " \n"); echo json_encode( $successUpdCrm? $successResponse: $errorResponse ); return json_encode($successUpdCrm? $successResponse: $errorResponse); } else { // se guarda entrada en log writeLog($idProcess, "Parámetros incompletos, solicitud: " . json_encode($_REQUEST)); } /** * Escribe/añade una entrada al archivo log correspondiente */ function writeLog($idProcess, $message) { $directory = './Logs'; // verificar si el directorio existe if (!is_dir($directory)) { mkdir($directory, 0777, true); } // obtener la fecha y hora actual $timestamp = date("Y-m-d H:i:s"); $filename = date("Y-m-d") . '.log'; // concatenar fecha y hora con el mensaje $logMessage = "[" . $idProcess . "](" . $timestamp . ") - " . $message . "\n"; // escribir en el archivo .log file_put_contents($directory . '/' . $filename, $logMessage, FILE_APPEND); } /** * Genera un ID para identificar procesos */ function generateUUID() { return sprintf( '%04x%04x-%04x-%04x-%04x-%04x%04x%04x', mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0x0fff) | 0x4000, mt_rand(0, 0x3fff) | 0x8000, mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0xffff) )