• Stars
    star
    363
  • Rank 117,374 (Top 3 %)
  • Language
    PHP
  • License
    MIT License
  • Created over 11 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

PHP client library for the Brazilian Post Office Web Service. Integração com Web Service do Correios. Consulta preços e prazos, imprime etiquetas e PLP, etc.

Ajude o projeto a crescer. Envie pull request de suas alterações no código fonte ou na documentação do projeto.

PHP SIGEP - Correios

Implementação do Web Service dos correios SIGEP Web.

Veja a demo online, exemplos e documentação em nossa página.

Integração com Web Service do Correios. Consulta preços e prazos, imprime etiquetas e PLP, etc. Esta API pode:

  • Calcular preços e prazos de entrega da encomenda.
  • Obter os dados de rastreamento das encomendas.
  • Verificar se um tipo de serviço (Sedex, PAC, ...) é permitido entre dois endereços.
  • Gerar e enviar o XML da pre-lista de postagem (PLP) para o Correios.
  • Gerar novos números de etiquetas de postagem.
  • Criar e/ou verificar validade do dígito verificador das etiquetas (através do web service ou não).
  • Gerar o relatório da PLP no formato PDF.
  • Gerar as etiquetas de postagem no formato PDF.
  • Gerar em PDF as chancelas para cada tipo de serviço (logo de cada tipo de servico).
  • Obter dados de PLP após postagem [processamento pelo Sara]
  • [Novo] Suspender a entrega de postagem (Também chamado de Entrega Interativa)
  • [Novo] Listagem de Agências (Necessário para o Clique e Retire)
  • [Novo] Gerar as etiquetas de postagem no formato PDF para o Clique e Retire.

Requisitos

  • PHP >= 5.4.0
  • Se você precisar imprimir as etiquetas e relatórios, baixe também o FPDF 1.7 www.fpdf.org.
    Não esqueça de configurar o FPDF para ser auto carregado antes de tentar imprimir os relatórios.

Instalação com Composer (recomendado)

  • Nós não controlamos versão através das tags, porem, a branch master só é atualizada quando o código está estável. Portanto, a versão estável mais atual sempre será a branch master.

Adicione as seguintes linha ao seu arquivo composer.json: "stavarengo/php-sigep": "dev-master"
"stavarengo/php-sigep-fpdf": "dev-master"

E então execute composer update via linha de comando.

Instalação manual

  • Nós não controlamos versão através das tags, porem, a branch master só é atualizada quando o código está estável. Portanto, a versão estável mais atual sempre será a branch master.

  • Faça o download da última versão.

  • Para usar as classe do php-sigep, você só precisa carregar o arquivo "php-sigep/src/PhpSigep/Bootstrap.php". Isso fara com que o loader seja registrado.

Problemas Comuns

Autorização de acesso negada para o sistema

Antes de utilizar este projeto em modo produção, é necessário solicitar ao representante comercial dos correios habilitação e senha para o webservice dos correios.

Estou tendo problema ao utilizar o ambiente de homologação

Se você está recebendo a mensagem abaixo ao tentar utilizar o ambiente de homologação, significa que o webservice do correio está temporariamente indisponível. Não adianta criar issue, o melhor a fazer é aguardar ou tentar entrar em contato com o suporte técnico do correio.

Mensagem de erro: Parsing WSDL: Couldn't load from 'https://apphom.correios.com.br/SigepMasterJPA/AtendeClienteService/AtendeCliente?wsdl' : failed to load external entity "https://apphom.correios.com.br/SigepMasterJPA/AtendeClienteService/AtendeCliente?wsd

Problemas com o PHP 5.3

Este problema foi reportado aqui: #35 Alguns usuarios tiveram problemas de conexão e autentificação com WebService do Correios em ambiente de produção devido a versão do PHP. Para resolver o problema, você pode ou utilizar uma versão masi rescente do PHP (>=5.4) ou fazer o download do WSDL do Correios e utilizar ele no seu servidor para fazer conexão. Caso escolha fazer o download o WSDL, siga os passos abaixo:

  1. Salve este arquivo em seu ambiente local https://apps.correios.com.br/SigepMasterJPA/AtendeClienteService/AtendeCliente?wsdl
  2. Altere as configurações do seu ambiente de produção para apotar para o arquivo que você baixou. Vejo exemplo abaixo.
$config = new \PhpSigep\Config();
$config->setEnv(\PhpSigep\Config::ENV_PRODUCTION);
$config->setWsdlAtendeCliente('CAMINHO-DO-SEU-ARQUIVO-LOCAL');
\PhpSigep\Bootstrap::start($config);

OBS: Não irá funcionar em um servidor local, como Wamp, Xammp entre outros.

Funções

Cache

O componente de cache do PhpSigep foi inspirado no componente de cache do Zend Framework.

Por padrão o cache do PhpSigep está desabilitado.
Este cache armazena algumas respostadas do WebService dos correios que podem ser reutilizadas posteriomente. Alem de aumentar a velocidade de respostas das requisições, também evitamos que os usuários fiquem impedidos de continuar mesmo quando o servidor do Correios esteja instavel (acredite: ele fica instável com muita frequencia).

Para habilitar o cache, use a chave "cacheOptions" ao criar a configuração do PhpSigep. Ex: php new \PhpSigep\Config( array( 'cacheOptions' => array( 'storageOptions' => array( 'enabled' => true, 'ttl' => 60*60*24*7,// Uma semana ), ), ... ), ); Dentro do array storageOptions você pode usar o nome de qualquer atributo da classe PhpSigep\Cache\Storage\Adapter\AdapterOptions.

Contribua

Para executar a testsuite, execute ./vendor/bin/phpunit via linha de comando.

  1. Faça um fork
  2. Crie sua branch para a funcionalidade (git checkout -b nova-funcionalidade)
  3. Faça o commit suas modificações (git commit -am 'Adiciona nova funcionalidade')
  4. Faça o push para a branch (git push origin nova-funcionalidade)
  5. Crie um novo Pull Request

More Repositories

1

delphi-tdi

Delphi class to create applications that work with tabs similar to what we see in browsers.
Pascal
37
star
2

portuguese-brazilian-synonyms

List of portuguese words and their respective synonyms. Lista de palavras portuguesas e seus respectivos sinônimos.
32
star
3

php-sigep-fpdf

Unofficial FPDF library - Cópia do FPDF 1.7 usado para referenciar no composer.json do php-sigep
PHP
8
star
4

landing-page-with-react

Example of a fully functional landing page made with React + Router + Material UI. This website support Server Side Rendering (SSR) + Internationalized Routes + Stylized Material UI components (it does not look like Google App).
JavaScript
8
star
5

php-tic-tac-toe

Single player Tic Tac Toe game with a bot as the opponent. The bot uses Minimax algorithm to decides its moves.
PHP
3
star
6

php-signal-handler

Library that helps you handle signals from your operational system. It will help you, for example, to detect when some other process ask your script to stop.
PHP
3
star
7

php-full-page-cache

PHP full page cache that follows the 'Cache-Control' HTTP header.
PHP
3
star
8

async-microservice-communication

This project shows an example of asynchronous communications between microservices.
PHP
2
star
9

twitter-php-api-client

Twitter PHP API Client
PHP
1
star
10

deep-social-php-api-client

PHP Client Library for http://deep.social API
PHP
1
star
11

sta-commons

PHP
1
star
12

travel-sorter

This project proposes a solution for the "Travel Tickets Order" problem and show real examples of object oriented principles and design patterns on PHP.
PHP
1
star
13

php-enum

Native PHP implementation to add enumerable support to PHP. It's an abstract class that can be extended to emulate enumerables.
PHP
1
star
14

mob-tool

Mob-Tool (mobt) is a command-line tool for remote teams to manage mob programming sessions. It simplifies Git commands, controls the timer, and switches driver roles. The tool logs all Git commands and rolls them back if errors occur.
Python
1
star