Giter Club home page Giter Club logo

python-sigep's Introduction

SIGEP Web - Correios

Build Status Coverage Status Code Health Project Status License

Implementação do sistema SIGEP Web em Python permitindo integração com Web Service do Correios. O Módulo funciona como uma interface de consulta para os métodos fornecidos pelo webservice. Também permite rastreamento de encomendas a partir da etiqueta de identificação e cálculo de frete.

Recursos

  • Consultar custo do frete e prazos para entrega dado um endereço.
  • Realizar o rastreamento de uma mercadoria através do seu número de rastreamento.
  • 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 e posterior rastreamento.
  • Criação da pré-lista de postagem (PLP) e envio de seu XML para o webservice dos Correios.
  • Imprimir etiqueta da PLP em formato PDF.
  • Imprimir Chancela em formato PDF.

Dependências

  • python 2.7
  • requests

Instalação do requests: sudo pip install requests

Como usar

# -*- coding: utf-8 -*-
from sigep.sigep.consulta_cep import RequestConsultaCEP
from sigep.sigep.disponibilidade_servico import RequestDisponibilidadeServico
from sigep.sigep.status_cartao_postagem import RequestStatusCartaoPostagem
from sigep.frete.consulta_frete import RequestCalcPrecoPrazo
from sigep.webservices.webservice_sigep import WebserviceSIGEP
from sigep.webservices.webservice_frete import WebserviceFrete
from sigep.webservices.webservice_rastreamento import WebserviceRastreamento
from sigep.rastreamento.consulta_rastreamento import RequestRastreamento

LOGIN = 'sigep'
SENHA = 'n5f9t8'
COD_ADMIN = '08082650'
NUMERO_SERVICO = '40436'
CEP_ORIGEM = '99200-000'
CEP_DESTINO = '99200-000'
CARTAO_POSTAGEM = '0057018901'

# Cliente do webservice do sistema sigep Correios
server = WebserviceSIGEP(WebserviceSIGEP.AMBIENTE_HOMOLOGACAO)

# Requisição para serviço ConsultaCEP
req = RequestConsultaCEP('37503-000')

# Executando a requisição
response = server.request(req)

print response.resposta['logradouro']
print response.resposta['bairro']
print response.resposta['cidade']
print response.resposta['uf']
print response.resposta['complemento']
print response.resposta['complemento_2']

# Requisição para serviço ConsultaDisponibilidadeServico
req = RequestDisponibilidadeServico(COD_ADMIN, NUMERO_SERVICO,
                                    CEP_ORIGEM, CEP_DESTINO,
                                    LOGIN, SENHA)

# Executando a requisição
response = server.request(req)
print response.resposta['disponibilidade']

# Requisição para servico ConsultaStatusCartaoPostagem
req = RequestStatusCartaoPostagem(CARTAO_POSTAGEM, LOGIN, SENHA)

response = server.request(req)
print response.resposta['status']

# Cliente para webservice de calculo de preço e prazo
server = WebserviceFrete()

# Requisição para o Servico CalcPrecoPrazo
req = RequestCalcPrecoPrazo('40436,40215', CEP_ORIGEM, '37503130', '2',
                            RequestCalcPrecoPrazo.FORMATO_CAIXA_PACOTE,
                            100.0, 100.0, 100.0, 0.0, False, 0.00, False)

# Executando a requisição
response = server.request(req)
print response.resposta['40436']['Valor']
print response.resposta['40436']['PrazoEntrega']
print response.resposta['40436']['ValorMaoPropria']
print response.resposta['40436']['ValorAvisoRecebimento']
print response.resposta['40436']['ValorValorDeclarado']
print response.resposta['40436']['EntregaDomiciliar']
print response.resposta['40436']['EntregaSabado']
print response.resposta['40436']['Erro']
print response.resposta['40436']['MsgErro']
print response.resposta['40436']['ValorSemAdicionais']
print response.resposta['40436']['obsFim']


server = WebserviceRastreamento()

req = RequestRastreamento('ECT', 'SRO',
                          RequestRastreamento.TIPO_LISTA_DE_OBJETOS,
                          RequestRastreamento.ULTIMO_RESULTADO,
                          ['PJ472895891BR', 'PJ382325976BR'])

response = server.request(req)

print response.resposta['versao']
print response.resposta['qtd']
print response.resposta['tipo_pesquisa']
print response.resposta['tipo_resultado']

# Cada objeto postal representa uma etiqueta. Cada etiqueta possui um ou mais eventos
# Aqui salvamos em obj os dados do evento mais recente.
obj = response.resposta['objetos']['PJ382325976BR'][0]

print obj['tipo']
print obj['status']
print obj['data']
print obj['hora']
print obj['descricao']
print obj['recebedor']
print obj['documento']
print obj['comentario']
print obj['local']
print obj['codigo']
print obj['cidade']
print obj['uf']

Executando os testes

Caso você deseje executar os testes, basta usar o comando abaixo (necessário estar conectado à internet):

python setup.py test

To do

Lista de funcionalidade a serem implementadas aqui.

Contribuindo

Encontrou algum erro? Quer adicionar alguma feature nova ao projeto? Faça um fork deste repositório e me envie um Pull Request. Contribuições sempre são bem vindas.

SigepWeb Docs

python-sigep's People

Contributors

mstuttgart avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.