RESUMO
Esse documento visa ensinar como implantar o rastreamento de mercadorias dos correios em um Website utilizando para isso a linguagem de programação PHP. Caso você queira apenas rastrear um Objeto dos Correios, pode fazer isso através do site Sooho clicando aqui ou através do site dos Correios.Nota importante: Mediante as alterações de 2017 nos serviços dos correios, eu recomendo fortemente que use o tutorial do seguinte link: http://sooho.com.br/2017/03/24/rastreamento-de-pedidos-correios-php-soap/
Ele lhe dará uma solução de rastreamento definitiva e valida a longo prazo.
Devido a variedade dos serviços de API que os correios oferecem a desenvolvedores, e a documentação por vezes difícil de ser encontrada, podemos dizer a grosso modo, que não há um padrão que todos os profissionais utilizem para programar o rastreamento de pedidos nos correios. Isso deve variar conforme os projetos, do mais simples aos mais complexos. Logo, vou citar aqui quatro dos meios mais usuais.
1 - Modo simples : Link
O meio mais simples de fazer o rastreamento é utilizando um link com o código de rastreamento no final, como no exemplo abaixo. Sendo assim nossa única variável é o Código de rastreamento e nada mais.http://websro.correios.com.br/sro_bin/txect01$.Inexistente?P_LINGUA=001&P_TIPO=002&P_COD_LIS=SS123456789BR
2 - Webservice dos Correios
A uma segunda forma de fazer o rastreamento de Pedidos, também por link, que é através do serviço oferecido pelo Correios em sua página. Porém nesse caso quem insere o código de rastreamento é o Cliente. O link para o serviço é :http://www.correios.com.br/servicos/rastreamento/rastreamento.cfm
3 - Obtendo parte da pagina Renderizada pelos correios
Simples e criativo! Esse é um processo que podemos denominar hack, gambiarra, jeitinho brasileiro, POG, ou seja lá como queira chamar.Funciona da seguinte maneira:
Quando você efetua o rastreamento de um objeto através do Webservice no site dos correios, ele lhe retorna uma página HTML com as informações do objeto e seus eventos. Com a ajuda do PHP é possível ler essa página retornada e retirar dela apenas as informações que interessam, que no caso seria a tabela com os eventos de rastreamento. E é isso que a função abaixo do autor Anderson Makiyama propõe.
/**
*Fonte:http://fazer-site.net/fazer-script-php-de-rastreamento-correios-com-file_get_contents/
* autor: Anderson Makiyama
* (Levemente auterada da original) Retorna todos os eventos do objeto dado o código de rastreamento
* @param string $codigo - Código de rastreamento dos correios
* @return [html table] - retorna tabela formatada com os dados
**/
function rastrear( $codigo = null )
{
$url='http://websro.correios.com.br/sro_bin/txect01$.Inexistente?P_LINGUA=001&P_TIPO=002&P_COD_LIS=' . $codigo;
$retorno = file_get_contents( $url );
preg_match( '/
.*<\/TABLE>/s', $retorno, $tabela );
return ( count( $tabela ) == 1 ) ? $tabela[0] : "objeto não encontrado" ;
}
Para utilizar a função acima basta fazer uma chamada tal como:
rastrear( 'SS123456789BR' );
4 - Utilizando API e retorno via XML
Nota importante: nos últimos tempos a API dos correios com XML tem apresentado severos problemas de instabilidade, impedindo o rastreamento ou demorando muito tempo para responder. Eu recomendo fortemente que você leia o artigo: Como rastrear Produtos via API + SOAP no site Sooho.A última forma de rastrear um produto é utilizando a API que os correios oferecem e que retorna todos os eventos do objeto em um arquivo XML. A API é normalmente usada para Empresas que tem remessas em grande escala, e se registram junto a área comercial dos correios, recebendo assim credenciais (login e senha) que permitem a utilização da API.
A documentação se encontra no seguinte link:
Fonte: http://blog.correios.com.br/comercioeletronico/wp-content/uploads/2011/10/Guia-Tecnico-Rastreamento-XML-Cliente-Vers%C3%A3o-e-commerce-v-1-5.pdf
- Infelizmente esse é um documento já obsoleto e que oferece muito pouco aos desenvolvedores.
- A grande vantagem é termos mais flexibilidade e detalhes sobre as informações adquiridas e a forma como desejamos formata-las via CSS DIV, etc.
- Podemos também trabalhar com um intervalo de Códigos de objetos a ser rastreado ou mesmo com uma lista deles;
- Utilizando a API estamos livres de um problema tal como os correios mudarem a forma como a pagina é renderizada.
Bom, eu colocaria todo o processo aqui, porém o código ficou um pouco extenso e decidi colocar em meu site, (pois permite melhor apresentação de código do que o blogger), juntamente a um DEMO.
O link é o que se segue: http://sooho.com.br/utilidades/rastreamento-de-pedidos-correios/
Lá é possível obter o código Fonte básico com algumas explicações e também ver o sistema funcionando na prática.
Veja também: Como calcular as dimensões para envio de um Pacote via SEDEX.
http://osians.blogspot.co.id/2016/02/php-dimensoes-pacote-frete-sedexpac.html
O modo simples através do link os correios 'desativaram' =/
ResponderExcluirÓtimas dicas. Vlw
ResponderExcluirAgradeço imensamente sua apreciação Marcos. Infelizmente alguns dos métodos não funcionam mais e acabei criando um método mais novo e estável para rastrear objetos via SOAP para suprir esse problema. E caso você tenha interesse ele se encontra no GITHUB: https://github.com/osians/rastreamento-de-pedidos/ . Novamente meu muito obrigado pela apreciação do trabalho do blog.
Excluirabs.
Obrigado por compartilhar. Será de grande apreço, pois a string anterior parou de funcionar este mês. Já compartilhei no G+.
ExcluirVlw. Abraços