# -*- coding: utf-8 -*- # © 2016 Danimar Ribeiro, Trustcode # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). from uuid import uuid4 from pytrustnfe.client import HttpClient from pytrustnfe.certificado import save_cert_key, extract_cert_and_key_from_pfx from ..xml import sanitize_response common_namespaces = {'soap': 'http://www.w3.org/2003/05/soap-envelope'} soap_body_path = './soap:Envelope/soap:Body' soap_fault_path = './soap:Envelope/soap:Body/soap:Fault' def _soap_xml(body, cabecalho): xml = '' xml += '' xml += '' xml += '' + cabecalho.estado + '' + cabecalho.versao + '' xml += '' xml += body xml += '' return xml.rstrip('\n') def executar_consulta(certificado, url, cabecalho, xmlEnviar): cert, key = extract_cert_and_key_from_pfx( certificado.pfx, certificado.password) cert_path, key_path = save_cert_key(cert, key) client = HttpClient(url, cert_path, key_path) xml_enviar = _soap_xml(xmlEnviar, cabecalho) xml_retorno = client.post_soap(xml_enviar, cabecalho) return sanitize_response(xml_retorno)