: 1000.b119999a054afe8bd0430608cdcc99e2.a288c117d02843eb7b6d665b2cfbf43a [54383a51-6819-4342-857d-2a9dff41788e](2023-09-04 16:01:28) - Intento 0 para obtener imagen de marca de CRM, respuesta: 200 [54383a51-6819-4342-857d-2a9dff41788e](2023-09-04 16:01:28) - Imagen guardada localmente de manera exitosa [54383a51-6819-4342-857d-2a9dff41788e](2023-09-04 16:01:29) - Intento 0 para actualizar CRM con datos de url de marca: { "data": [ { "code": "SUCCESS", "details": { "Modified_Time": "2023-09-04T15:01:29-06:00", "Modified_By": { "name": "Aptus Legal Administrator", "id": "4597192000000287001" }, "Created_Time": "2023-09-04T11:22:16-06:00", "id": "4597192000127562612", "Created_By": { "name": "Irving Grimaldo Galan", "id": "4597192000093922734" } }, "message": "record updated", "status": "success" } ] } [54383a51-6819-4342-857d-2a9dff41788e](2023-09-04 16:01:29) - Proceso finalizado exitosamente, URL: https://aptuslegal.app/imagenesAptusLegal/arochi/LogosArochi/MAR-118412.png [b0745766-866e-4a73-873f-834e46a2ffb7](2023-09-04 16:09:05) - Proceso de subida de imagen iniciado, data: {"MarcaId":"4597192000127562449","RefAL":"MAR-118411"} [b0745766-866e-4a73-873f-834e46a2ffb7](2023-09-04 16:09:12) - Tokens generados: 1000.b119999a054afe8bd0430608cdcc99e2.a288c117d02843eb7b6d665b2cfbf43a [b0745766-866e-4a73-873f-834e46a2ffb7](2023-09-04 16:09:13) - Intento 0 para obtener imagen de marca de CRM, respuesta: 200 [b0745766-866e-4a73-873f-834e46a2ffb7](2023-09-04 16:09:13) - Imagen guardada localmente de manera exitosa [b0745766-866e-4a73-873f-834e46a2ffb7](2023-09-04 16:09:14) - Intento 0 para actualizar CRM con datos de url de marca: { "data": [ { "code": "SUCCESS", "details": { "Modified_Time": "2023-09-04T15:09:13-06:00", "Modified_By": { "name": "Aptus Legal Administrator", "id": "4597192000000287001" }, "Created_Time": "2023-09-04T11:14:41-06:00", "id": "4597192000127562449", "Created_By": { "name": "Irving Grimaldo Galan", "id": "4597192000093922734" } }, "message": "record updated", "status": "success" } ] } [b0745766-866e-4a73-873f-834e46a2ffb7](2023-09-04 16:09:14) - Proceso finalizado exitosamente, URL: https://aptuslegal.app/imagenesAptusLegal/arochi/LogosArochi/MAR-118411.png [a85da1ba-36d6-462f-ab49-3f93461a7b86](2023-09-04 16:24:09) - Proceso de subida de imagen iniciado, data: {"MarcaId":"4597192000127562449","RefAL":"MAR-118411","user":"arochiylindner.aptus@gmail.com"} [a85da1ba-36d6-462f-ab49-3f93461a7b86](2023-09-04 16:24:16) - Tokens generados: 1000.b119999a054afe8bd0430608cdcc99e2.a288c117d02843eb7b6d665b2cfbf43a [a85da1ba-36d6-462f-ab49-3f93461a7b86](2023-09-04 16:24:16) - Intento 0 para obtener imagen de marca de CRM, respuesta: 200 [a85da1ba-36d6-462f-ab49-3f93461a7b86](2023-09-04 16:24:16) - Imagen guardada localmente de manera exitosa [a85da1ba-36d6-462f-ab49-3f93461a7b86](2023-09-04 16:24:17) - Intento 0 para actualizar CRM con datos de url de marca: { "data": [ { "code": "SUCCESS", "details": { "Modified_Time": "2023-09-04T15:24:17-06:00", "Modified_By": { "name": "Aptus Legal Administrator", "id": "4597192000000287001" }, "Created_Time": "2023-09-04T11:14:41-06:00", "id": "4597192000127562449", "Created_By": { "name": "Irving Grimaldo Galan", "id": "4597192000093922734" } }, "message": "record updated", "st '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']; 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); } } // 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'); 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(2); // 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 exitotionDate (D:20241017123128) >> endobj 20 0 obj << /Type /Catalog /Pages 1 0 R >> endobj xref 0 21 0000000000 65535 f 0000003043 00000 n 0000135984 00000 n 0000000009 00000 n 0000000087 00000 n 0000003130 00000 n 0000014525 00000 n 0000110548 00000 n 0000110719 00000 n 0000111633 00000 n 0000111848 00000 n 0000112012 00000 n 0000112949 00000 n 0000113154 00000 n 0000113256 00000 n 0000113353 00000 n 0000129655 00000 n 0000134391 00000 n 0000135900 00000 n 0000136154 00000 n 0000136230 00000 n trailer << /Size 21 /Root 20 0 R /Info 19 0 R >> startxref 136280 %%EOF