Correccion en el metodo de codificacion base64 para llaves

This commit is contained in:
2025-07-31 10:06:12 -06:00
parent ea0c02a9be
commit 8ca47e8dfe
2 changed files with 12 additions and 3 deletions

View File

@@ -1199,7 +1199,7 @@ async def get_cove(request: ServiceRemesaSchema):
documentos_procesados = [] documentos_procesados = []
documentos_exitosos = 0 documentos_exitosos = 0
logger.info(f"Procesando acuses COVE para {len(coves)} documentos...") logger.info(f"Procesando COVE para {len(coves)} documentos...")
for idx, cove in enumerate(coves): for idx, cove in enumerate(coves):
documento_info = { documento_info = {
@@ -1262,7 +1262,7 @@ async def get_cove(request: ServiceRemesaSchema):
"documentos_exitosos": documentos_exitosos, "documentos_exitosos": documentos_exitosos,
"documentos_fallidos": len(coves) - documentos_exitosos "documentos_fallidos": len(coves) - documentos_exitosos
}, },
success_message=f"Se procesaron {documentos_exitosos}/{len(coves)} acuses cove de documentos exitosamente" success_message=f"Se procesaron {documentos_exitosos}/{len(coves)} cove de documentos exitosamente"
) )
# Agregar advertencias si hubo documentos fallidos # Agregar advertencias si hubo documentos fallidos

View File

@@ -9,6 +9,7 @@ import re
import os import os
from cryptography.hazmat.primitives import serialization, hashes from cryptography.hazmat.primitives import serialization, hashes
from cryptography.hazmat.primitives.asymmetric import padding from cryptography.hazmat.primitives.asymmetric import padding
from cryptography.hazmat.primitives.serialization import load_der_private_key
from dotenv import load_dotenv from dotenv import load_dotenv
from pathlib import Path from pathlib import Path
from core.config import settings from core.config import settings
@@ -30,7 +31,7 @@ def load_cert_base64(cert_path: str) -> str:
def sign_chain_original(key_path: str, password: str, cadena_original: str) -> str: def sign_chain_original(key_path: str, password: str, cadena_original: str) -> str:
with open(key_path, 'rb') as key_file: with open(key_path, 'rb') as key_file:
private_key = serialization.load_pem_private_key( private_key = load_der_private_key(
key_file.read(), key_file.read(),
password=password.encode() if password else None password=password.encode() if password else None
) )
@@ -953,9 +954,17 @@ async def get_soap_cove(credenciales, response_service, soap_controller, cove, i
# Realizar petición SOAP # Realizar petición SOAP
logger.info("Realizando petición SOAP...") logger.info("Realizando petición SOAP...")
# Headers específicos para este servicio SOAP
soap_headers = {
'Content-Type': 'text/xml; charset=utf-8',
'SOAPAction': '',
#'Accept-Encoding': 'gzip,deflate',
}
soap_response = await soap_controller.make_request_async( soap_response = await soap_controller.make_request_async(
"ventanilla/ConsultarEdocumentService?wsdl", "ventanilla/ConsultarEdocumentService?wsdl",
data=soap_xml, data=soap_xml,
headers=soap_headers
) )
if (soap_response) and (not soap_error(soap_response)): if (soap_response) and (not soap_error(soap_response)):