Browse Source

Correção de envio Ginfes - Mudança para o zeep para webservice SOAP

pull/133/head
Danimar Ribeiro 8 years ago
parent
commit
e712bf0d6a
  1. 31
      pytrustnfe/nfse/ginfes/__init__.py
  2. 1
      requirements.txt
  3. 3
      setup.py

31
pytrustnfe/nfse/ginfes/__init__.py

@ -3,9 +3,12 @@
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
import os
import suds
from requests import Session
from zeep import Client
from zeep.transports import Transport
from requests.packages.urllib3 import disable_warnings
from pytrustnfe.xml import render_xml, sanitize_response
from pytrustnfe.client import get_authenticated_client
from pytrustnfe.certificado import extract_cert_and_key_from_pfx, save_cert_key
from pytrustnfe.nfe.assinatura import Assinatura
@ -33,19 +36,21 @@ def _send(certificado, method, **kwargs):
cert, key = extract_cert_and_key_from_pfx(
certificado.pfx, certificado.password)
cert, key = save_cert_key(cert, key)
client = get_authenticated_client(base_url, cert, key)
try:
xml_send = kwargs['xml']
header = '<ns2:cabecalho xmlns:ns2="http://www.ginfes.com.br/cabecalho_v03.xsd" versao="3"><versaoDados>3</versaoDados></ns2:cabecalho>' #noqa
response = getattr(client.service, method)(header, xml_send)
except suds.WebFault as e:
return {
'sent_xml': xml_send,
'received_xml': e.fault.faultstring,
'object': None
}
response, obj = sanitize_response(response)
disable_warnings()
session = Session()
session.cert = (cert, key)
session.verify = False
transport = Transport(session=session)
client = Client(base_url, transport=transport)
xml_send = kwargs['xml']
response = client.service[method](header, xml_send)
response, obj = sanitize_response(response.encode('utf-8'))
return {
'sent_xml': xml_send,
'received_xml': response,

1
requirements.txt

@ -15,3 +15,4 @@ reportlab
pytest
pytest-cov
pytz
zeep

3
setup.py

@ -2,7 +2,7 @@
from setuptools import setup, find_packages
VERSION = "0.9.20"
VERSION = "0.9.21"
setup(
@ -53,6 +53,7 @@ later (LGPLv2+)',
'suds-jurko-requests >= 1.2',
'reportlab',
'pytz',
'zeep',
],
tests_require=[
'pytest',

Loading…
Cancel
Save