コード例 #1
0
def _render(certificado, method, **kwargs):
    path = os.path.join(os.path.dirname(__file__), 'templates')
    xml_send = render_xml(path, '%s.xml' % method, True, **kwargs)

    reference = ''
    signer = Assinatura(certificado.pfx, certificado.password)
    xml_send = signer.assina_xml(xml_send, reference)
    return xml_send
コード例 #2
0
 def test_assinar_xml_valido(self):
     pfx = open(os.path.join(self.caminho, 'teste.pfx')).read()
     signer = Assinatura(pfx, '123456')
     xml = signer.assina_xml(
         etree.fromstring(XML_ASSINAR),
         'NFe43150602261542000143550010000000761792265342')
     xml_assinado = open(os.path.join(self.caminho, 'xml_assinado.xml'),
                         'r').read()
     self.assertEqual(xml_assinado, xml, 'Xml assinado é inválido')
コード例 #3
0
 def test_assinar_xml_valido(self):
     pfx = open(os.path.join(self.caminho, "teste.pfx"), "rb").read()
     signer = Assinatura(pfx, "123456")
     xml = signer.assina_xml(
         etree.fromstring(XML_ASSINAR),
         "NFe43150602261542000143550010000000761792265342",
     )
     xml_assinado = open(
         os.path.join(self.caminho, "xml_valido_assinado.xml"), "r").read()
     self.assertEqual(xml_assinado, xml, "Xml assinado é inválido")
コード例 #4
0
 def test_assinar_xml_valido(self):
     pfx = open(os.path.join(self.caminho, 'teste.pfx')).read()
     signer = Assinatura(pfx, '123456')
     xml = signer.assina_xml(
         etree.fromstring(XML_ASSINAR),
         'NFe43150602261542000143550010000000761792265342')
     xml_assinado = open(os.path.join(self.caminho,
                                      'xml_valido_assinado.xml'),
                         'r').read()
     self.assertEqual(xml_assinado, xml, 'Xml assinado é inválido')
コード例 #5
0
def _render(certificado, method, **kwargs):
    path = os.path.join(os.path.dirname(__file__), 'templates')
    xml_send = render_xml(path, '%s.xml' % method, True, **kwargs)

    reference = ''
    if method == 'RecepcionarLoteRpsV3':
        reference = 'rps%s' % kwargs['nfse']['lista_rps'][0]['numero']

    signer = Assinatura(certificado.pfx, certificado.password)
    xml_send = signer.assina_xml(xml_send, reference)
    return xml_send
コード例 #6
0
ファイル: __init__.py プロジェクト: danimaribeiro/PyTrustNFe
def _render(certificado, method, **kwargs):
    path = os.path.join(os.path.dirname(__file__), 'templates')
    xml_send = render_xml(path, '%s.xml' % method, True, **kwargs)

    reference = ''
    if method == 'RecepcionarLoteRpsV3':
        reference = 'rps%s' % kwargs['nfse']['lista_rps'][0]['numero']

    signer = Assinatura(certificado.pfx, certificado.password)
    xml_send = signer.assina_xml(xml_send, reference)
    return xml_send
コード例 #7
0
ファイル: __init__.py プロジェクト: andremoober/pytrustnfe4
def _render(certificado, method, **kwargs):
    path = os.path.join(os.path.dirname(__file__), 'templates')
    xml_send = render_xml(path, '%s.xml' % method, True, **kwargs)

    reference = ''
    if method == 'GerarNfse':
        reference = 'r%s' % kwargs['rps']['numero']
    elif method == 'CancelarNfse':
        reference = 'Cancelamento_NF%s' % kwargs['cancelamento']['numero_nfse']

    signer = Assinatura(certificado.pfx, certificado.password)
    xml_send = signer.assina_xml(xml_send, reference)
    return xml_send.encode('utf-8')
コード例 #8
0
def _render(certificado, method, **kwargs):
    path = os.path.join(os.path.dirname(__file__), "templates")
    xml_send = render_xml(path, "%s.xml" % method, True, **kwargs)

    reference = ""
    if method in ("RecepcionarLoteRpsV3", "RecepcionarLoteRpsSincronoV3"):
        reference = "rps%s" % kwargs["nfse"]["lista_rps"][0]["numero"]
    elif method == "CancelarNfseV3":
        reference = "C%s" % kwargs["cancelamento"]["numero_nfse"]

    signer = Assinatura(certificado.pfx, certificado.password)
    xml_send = signer.assina_xml(xml_send, reference)
    return xml_send
コード例 #9
0
def sign_rps(path, certificado, **kwargs):
    if "nfse" in kwargs:
        lote = ""
        for item in kwargs["nfse"]["lista_rps"]:
            data = {"rps": item}
            xml_rps = render_xml(path, "Rps.xml", True, **data)

            signer = Assinatura(certificado.pfx, certificado.password)
            lote += signer.assina_xml(
                xml_rps, f"rps:{item.get('numero')}{item.get('serie')}", getchildren=True
            )
        return lote
    return ""
コード例 #10
0
def _render(certificado, method, **kwargs):
    path = os.path.join(os.path.dirname(__file__), "templates")
    xml_send = render_xml(path, "%s.xml" % method, True, **kwargs)

    reference = ""
    if method == "GerarNfse":
        reference = "r%s" % kwargs["rps"]["numero"]
    elif method == "CancelarNfse":
        reference = "Cancelamento_NF%s" % kwargs["cancelamento"]["numero_nfse"]

    signer = Assinatura(certificado.pfx, certificado.password)
    xml_send = signer.assina_xml(xml_send, reference)
    return xml_send.encode("utf-8")
コード例 #11
0
 def test_assinar_xml_invalido(self):
     pfx = open(os.path.join(self.caminho, "teste.pfx"), "rb").read()
     signer = Assinatura(pfx, "123456")
     self.assertRaises(
         Exception,
         signer.assina_xml,
         signer,
         etree.fromstring(XML_ERRADO),
         "NFe43150602261542000143550010000000761792265342",
     )
コード例 #12
0
def _render(certificado, method, **kwargs):
    path = os.path.join(os.path.dirname(__file__), "templates")
    parser = etree.XMLParser(
        remove_blank_text=True, remove_comments=True, strip_cdata=False
    )

    lote = ""
    referencia = ""
    if method == "RecepcionarLoteRps":
        referencia = "lote"
        lote = sign_rps(path, certificado, **kwargs)

    kwargs["lote"] = lote
    xml_send = render_xml(path, "%s.xml" % method, False, **kwargs)

    signer = Assinatura(certificado.pfx, certificado.password)

    xml_send = signer.assina_xml(etree.fromstring(
        xml_send, parser=parser), f"{referencia}", getchildren=True)
    return xml_send
コード例 #13
0
 def test_assinar_xml_senha_invalida(self):
     pfx = open(os.path.join(self.caminho, 'teste.pfx')).read()
     signer = Assinatura(pfx, '123')
     self.assertRaises(Exception, signer.assina_xml, signer,
                       etree.fromstring(XML_ASSINAR),
                       'NFe43150602261542000143550010000000761792265342')