From e712bf0d6aa7edc65773e15d99940899247b8b0b Mon Sep 17 00:00:00 2001 From: Danimar Ribeiro Date: Tue, 8 May 2018 16:48:43 -0300 Subject: [PATCH] =?UTF-8?q?Corre=C3=A7=C3=A3o=20de=20envio=20Ginfes=20-=20?= =?UTF-8?q?Mudan=C3=A7a=20para=20o=20zeep=20para=20webservice=20SOAP?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pytrustnfe/nfse/ginfes/__init__.py | 35 ++++++++++++++++++++--------------- requirements.txt | 1 + setup.py | 3 ++- 3 files changed, 23 insertions(+), 16 deletions(-) diff --git a/pytrustnfe/nfse/ginfes/__init__.py b/pytrustnfe/nfse/ginfes/__init__.py index 80e969b..fb27677 100644 --- a/pytrustnfe/nfse/ginfes/__init__.py +++ b/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 = '3' #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) + + header = '3' #noqa + + 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, diff --git a/requirements.txt b/requirements.txt index 92f9079..63f4786 100644 --- a/requirements.txt +++ b/requirements.txt @@ -15,3 +15,4 @@ reportlab pytest pytest-cov pytz +zeep diff --git a/setup.py b/setup.py index 4bf323b..c5686a4 100644 --- a/setup.py +++ b/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',