diff --git a/pytrustnfe/nfse/assinatura.py b/pytrustnfe/nfse/assinatura.py index cdfe64e..78c2354 100644 --- a/pytrustnfe/nfse/assinatura.py +++ b/pytrustnfe/nfse/assinatura.py @@ -9,20 +9,19 @@ from signxml import XMLSigner class Assinatura(object): - def __init__(self, cert_pem, private_key, password): - self.cert_pem = cert_pem - self.private_key = private_key - self.password = password + def __init__(self, cert_pem, private_key, password=False): + self.arquivo = cert_pem + self.senha = private_key def _checar_certificado(self): - if not os.path.isfile(self.private_key): + if not os.path.isfile(self.senha): raise Exception("Caminho do certificado não existe.") def assina_xml(self, xml_element, reference, getchildren=False): - self._checar_certificado() - cert = self.cert_pem - key = self.password + cert = self.arquivo + key = self.senha + xml_element = etree.fromstring(xml_element) for element in xml_element.iter("*"): if element.text is not None and not element.text.strip(): element.text = None @@ -37,11 +36,9 @@ class Assinatura(object): ns = {} ns[None] = signer.namespaces["ds"] signer.namespaces = ns - ref_uri = ("#%s" % reference) if reference else None signed_root = signer.sign( - xml_element, key=key.encode(), cert=cert.encode(), reference_uri=ref_uri - ) + xml_element, key=key.encode(), cert=cert.encode(), reference_uri=ref_uri) if reference: element_signed = signed_root.find(".//*[@Id='%s']" % reference) signature = signed_root.find( diff --git a/pytrustnfe/nfse/paulistana/__init__.py b/pytrustnfe/nfse/paulistana/__init__.py index bc8b8f0..95cb0a9 100644 --- a/pytrustnfe/nfse/paulistana/__init__.py +++ b/pytrustnfe/nfse/paulistana/__init__.py @@ -41,9 +41,8 @@ def _send(certificado, method, **kwargs): base_url = "https://nfe.prefeitura.sp.gov.br/ws/lotenfe.asmx?wsdl" cert, key = extract_cert_and_key_from_pfx(certificado.pfx, certificado.password) - cert, key = save_cert_key(cert, key) + # cert, key = save_cert_key(cert, key) client = get_authenticated_client(base_url, cert, key) - signer = Assinatura(cert, key, certificado.password) xml_send = signer.assina_xml(xml_send, "")