Browse Source

ajustes e correções apontadas no teste

pull/281/head
Mackilem 5 years ago
parent
commit
045c7f0919
  1. 19
      pytrustnfe/nfse/assinatura.py
  2. 3
      pytrustnfe/nfse/paulistana/__init__.py

19
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(

3
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, "")

Loading…
Cancel
Save