TadaSoftware / PyNFe

Projeto de biblioteca para fazer interface com o webservice de Nota Fiscal eletrônica para Python, disponível sob LGPL.
http://groups.google.com/group/pynfe
Other
412 stars 171 forks source link

Max retries exceeded - cad.svrs.rs.gov.br/ws/cadconsultacadastro/cadconsultacadastro4.asmx #281

Open rodrigodellajustina opened 1 year ago

rodrigodellajustina commented 1 year ago

Ao realizar uma consulta de cadastro de um CNPJ do estado de Alagoas está acontecendo esse retorno

HTTPSConnectionPool(host='nfe.https', port=443): Max retries exceeded with url: //cad.svrs.rs.gov.br/ws/cadconsultacadastro/cadconsultacadastro4.asmx (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x000001C181BB6380>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

rodrigodellajustina commented 1 year ago

Alterado o comunicacao.py

 def consulta_cadastro(self, modelo, cnpj):
        """
        Consulta de cadastro
        :param modelo: Modelo da nota
        :param cnpj: CNPJ da empresa
        :return:
        """
        # UF que utilizam a SVRS - Sefaz Virtual do RS: Para serviço de Consulta Cadastro: AC, RN, PB, SC 
        lista_svrs = ['AC', 'RN', 'PB', 'SC', 'PA', 'CE']

        # RS implementa um método diferente na consulta de cadastro
        # usa o mesmo url para produção e homologação
        # não tem url para NFCE
        if self.uf.upper() == 'RS':
            url = NFE['RS']['CADASTRO']
        elif self.uf.upper() in ('AL', 'ES', 'RJ'):
            url = 'https://cad.svrs.rs.gov.br/ws/cadconsultacadastro/cadconsultacadastro4.asmx'
        elif self.uf.upper() in lista_svrs:
            url = NFE['SVRS']['CADASTRO']
        elif self.uf.upper() == 'SVC-RS':
            url = NFE['SVC-RS']['CADASTRO']
        else:
            url = self._get_url(modelo=modelo, consulta='CADASTRO')

        raiz = etree.Element('ConsCad', versao='2.00', xmlns=NAMESPACE_NFE)
        info = etree.SubElement(raiz, 'infCons')
        etree.SubElement(info, 'xServ').text = 'CONS-CAD'
        etree.SubElement(info, 'UF').text = self.uf.upper()
        etree.SubElement(info, 'CNPJ').text = cnpj
        # etree.SubElement(info, 'CPF').text = cpf

        # Monta XML para envio da requisição
        xml = self._construir_xml_soap('CadConsultaCadastro4', raiz)
        # Chama método que efetua a requisição POST no servidor SOAP
        return self._post(url, xml)

Deixei fixo para esses estados

        elif self.uf.upper() in ('AL', 'ES', 'RJ'):
            url = 'https://cad.svrs.rs.gov.br/ws/cadconsultacadastro/cadconsultacadastro4.asmx'
leogregianin commented 10 months ago

@rodrigodellajustina seria muito bom fazer um pull request pra isso.

felps-dev commented 4 months ago

@rodrigodellajustina tem planos de abrir um PR para isso? Iria ajudar bastante outros que utilizam esse endpoint...