Skip to content
This repository was archived by the owner on Oct 22, 2024. It is now read-only.

Latest commit

 

History

History
239 lines (170 loc) · 7.42 KB

README.md

File metadata and controls

239 lines (170 loc) · 7.42 KB



PySIGEP

Interface python para uso dos serviços fornecidos pelo SIGEPWeb dos Correios.

Sobre | Recursos | Instalação | Utilização | Como Contribuir | Créditos

Sobre

O SIGEP WEB é um sistema com o propósito de preparar e gerenciar as postagens de Clientes dos Correios. Seus principais atributos técnicos são: facilidade e rapidez na preparação das postagens e gestão das informações sobre os objetos postados.

Recursos

  • Verificar status de um Cartão de Postagem
  • Obter dados do endereço a partir de seu respectivo CEP.
  • Verificar disponibilidade de um dado serviço.
  • Gerar etiquetas para postagem de mercadoria.

Instalação

A versão atual ainda esta em fase de desenvolvimento, sendo que os recursos disponiveis podem ser removidos sem aviso prévio. Portanto, não é recomendável seu uso em ambiente de produção.

Atualmente, a PySIGEP possui suporte para Python 3.5+.

pip install pysigep

A partir do código fonte

Você pode realizar o clone do repositório público:

git clone https://github.com/mstuttgart/pysigep.git

Uma vez que você tenha uma cópia do código fonte, você pode instalá-lo com:

python setup.py install

Utilização

A versão atual ainda esta em fase de desenvolvimento, sendo que os recursos disponiveis podem ser removidos sem aviso prévio. Portanto, não é recomendável seu uso em ambiente de produção.

PySigep no momento possui suporte para os seguintes serviços providos pelo SigepWeb:

  • consultaCEP
  • verificaDisponibilidadeServico
  • getStatusCartaoPostagem
  • solicitaEtiquetas
  • geraDigitoVerificadorEtiquetas

Novos serviços serão implementados futuramente. A seguir temos alguns exemplos de utilização da pysigep. Para mais detalhes sobre os serviçoes fornecidos, por favor, consulte o Manual do SigepWeb.

SOAPClient

A grande maioria dos serviços do SigepWeb, exigem um cadastro de usuário e senha. De modo a tornar mais prático a consulta, foi desenvolvido uma classe para armazenar estes dados durante o uso da biblioteca. Sendo assim, antes de qualquer consulta devemos criar um objeto SOAPClient.

from pysigep.utils import HOMOG_USUARIO, HOMOG_SENHA, HOMOLOGACAO

    # Criamos o cliente SOAP
    cliente = SOAPClient(ambiente=HOMOLOGACAO,
                         senha=HOMOG_SENHA,
                         usuario=HOMOG_USUARIO)

    # Realizamos a consulta di servico
    endereco = cliente.nomeservico(..)

As constantes HOMOG_USUARIO, HOMOG_SENHA, HOMOLOGACAO são constantes fornecidas para auxiliar o desenvolvedor durante o processo de desenvolvimento.

No momento, a pysigep possui as seguintes constantes:

  • HOMOG_USUARIO: usuario para consultas em ambiente de homologação,
  • HOMOG_SENHA: senha para o usuário de homologação,
  • HOMOLOGACAO: constante a ser fornecida na criação do SOAPClient, permitindo utilizar o ambiente de homologação,
  • PRODUCAO: constante a ser fornecida na criação do SOAPClient, permitindo utilizar o ambiente de homologação,
  • HOMOG_CODIGO_ADMIN: código adminstrativo de demonstração, fornecido pelos correios,
  • HOMOG_CARTAO: código do cartão de postagem de demonstração, fornecido pelos correios,
  • HOMOG_CNPJ: CNPJ de demonstração, fornecido pelos correios,
  • URLS: dict contendo as urls dos ambientes de homologação e produção.

Estas constantes podem ser acessadas através do pacote utils:

    from pysigep.utils import (URLS,
                               HOMOLOGACAO,
                               PRODUCAO
                               HOMOG_USUARIO,
                               HOMOG_SENHA,
                               HOMOG_CODIGO_ADMIN,
                               HOMOG_CARTAO,
                               HOMOG_CNPJ)

consultaCEP

Este método retorna o endereço correspondente ao número de CEP informado.

    # Criamos o cliente SOAP
    cliente = SOAPClient(ambiente=HOMOLOGACAO,
                         senha=HOMOG_SENHA,
                         usuario=HOMOG_USUARIO)

    # Realizamos a consulta de CEP
    endereco = cliente.consulta_cep('37.503-130')

    print(endereco.bairro)
    print(endereco.cep)
    print(endereco.cidade)
    print(endereco.complemento)
    print(endereco.complemento2)
    print(endereco.end)
    print(endereco.id)
    print(endereco.uf)
    print(endereco.unidadesPostagem)

verificaDisponibilidadeServico

Verifica se um serviço que não possui abrangência nacional está disponível entre um CEP de Origem e de Destino.

    params = {
        'cod_administrativo': HOMOG_CODIGO_ADMIN,
        'numero_servico': '04162',
        'cep_origem': '70002900',
        'cep_destino': '70.002-900',
    }

    # Criamos o cliente SOAP
    cliente = SOAPClient(ambiente=HOMOLOGACAO,
                         senha=HOMOG_SENHA,
                         usuario=HOMOG_USUARIO)

    # Realizamos a verificacao de disponibilidade
    disponibilidade = cliente.verifica_disponibilidade_servico(**params)

    print(disponibilidade)
    # Saída: True ou False

getStatusCartaoPostagem

Este método retorna o situação do cartão de postagem, ou seja, se o mesmo está 'Normal' ou 'Cancelado'. É recomendada a pesquisa periódica para evitar tentativa de postagens com cartão suspenso, ocasionando a não aceitação dos objetos nos Correios.

    # Criamos o cliente SOAP
    cliente = SOAPClient(ambiente=HOMOLOGACAO,
                         senha=HOMOG_SENHA,
                         usuario=HOMOG_USUARIO)

    params = {
        'numero_cartao_postagem': HOMOG_CARTAO,
    }

    # Realizamos a consulta do status do cartao de postagem
    status = cliente.get_status_cartao_postagem(**params)

    print(status)
    # Saída: 'Normal' ou 'Cancelado'

solicitaEtiquetas

Retorna uma dada quantidade de etiquetas sem o digito verificador.

    params = {
        'tipo_destinatario': 'C',
        'cnpj': HOMOG_CNPJ,
        'id_servico': 124849,
        'qtd_etiquetas': 2,
    }

    # Criamos o cliente SOAP
    cliente = SOAPClient(ambiente=HOMOLOGACAO,
                         senha=HOMOG_SENHA,
                         usuario=HOMOG_USUARIO)

    params = {
        'numero_cartao_postagem': HOMOG_CARTAO,
    }

    # Realizamos a solicitacao de etiquetas
    lista_etiquetas = cliente.solicita_etiquetas(**params)

    print(lista_etiquetas)
    # Saída: lista_etiquetas = [
    #             'DL76023727 BR',
    #             'DL76023728 BR',
    #        ]

geraDigitoVerificadorEtiquetas

Este método retorna o DV - Dígito Verificador de um lista de etiquetas.

    params = {
            'etiquetas': ['DL76023727 BR', 'DL76023728 BR'],
    }

    # Criamos o cliente SOAP
    cliente = SOAPClient(ambiente=HOMOLOGACAO,
                         senha=HOMOG_SENHA,
                         usuario=HOMOG_USUARIO)

    # Realizamos a consulta do status do cartao de postagem
    lista_digitos = cliente.gera_digito_verificador_etiquetas(**params)

    print(lista_digitos)
    # Saída: lista_digitos = [2, 6]