modificado para obtener todas las facturas que tiene el casillero de validación vacío, no más de 30 días

This commit is contained in:
George committed 2026-08-07 13:40:04 -05:00
1 parent 22aec163d2
commit 9f2d96e64c
9 files changed
+213 -198

No files matched your search

+9 -5
View File
@@ -3,6 +3,10 @@ import json
import urllib3
import time
from logger_manager import get_logger
logger = get_logger()
# Desactivar advertencias de SSL no verificado
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
@@ -28,8 +32,8 @@ def token(datos):
response = requests.request("POST", url, headers=headers, data=payload, verify=False, timeout=30)
print(f" 📤 Token request enviado")
print(f" 📥 Token response: {response.status_code}")
logger.info(f" 📤 Token request enviado")
logger.info(f" 📥 Token response: {response.status_code}")
if response.status_code == 200:
result = response.json()
@@ -66,13 +70,13 @@ def validar_comprobante(token,RUC,payload:dict):
for attempt in range(max_retries):
try:
response = requests.request("POST", url, headers=headers, json=payload, verify=False, timeout=30)
print(f" 📥 Status code: {response.status_code}")
logger.info(f" 📥 Status code: {response.status_code}")
return response.json()
except (requests.exceptions.ConnectionError, requests.exceptions.Timeout) as e:
print(f" ⚠️ Error de conexión (intento {attempt + 1}/{max_retries}): {e}")
logger.warning(f" ⚠️ Error de conexión (intento {attempt + 1}/{max_retries}): {e}")
if attempt < max_retries - 1:
time_to_wait = 2 ** (attempt + 1)
print(f" 🔄 Reintentando en {time_to_wait} segundos...")
logger.info(f" 🔄 Reintentando en {time_to_wait} segundos...")
time.sleep(time_to_wait)
else:
raise e