PHP Classes

Correios: Calculate postal freight and Brazil CEP zip code

Recommend this page to a friend!
     
  Info   Example   View files Files   Install with Composer Install with Composer   Download Download   Reputation   Support forum   Blog    
Ratings Unique User Downloads Download Rankings
Not enough user ratingsTotal: 196 All time: 8,519 This week: 455Up
Version License PHP version Categories
correios 1.5BSD License5.0.0PHP 5, E-Commerce, Web services, Geog...
Description 

Author

This package is specific mainly for applications used in Brazil Brazil .

This class can calculate postal freight and Brazil CEP zip code.

It can send an HTTP request to Correios API Web server to calculate the cost of shipping a package with given weight and size, between two locations via Correios postal service.

The class can also send HTTP requests to the Correios sites to find the CEP zip code of a given address or the address of a given CEP zip code.

It can also get a link to the page with package tracking information as well its QR code URL and the package delivery status.

In Portuguese:

Obtenha informações dos serviços dos Correios diretamente do seu site.

Por enquanto, os serviços disponibilizados pela classe são:

- Cálculo de valor e prazo de frete
- Consulta de endereço a partir do CEP
- Consulta de CEP a partir do endereço
- Obter o link de rastreamento para o código de um objeto
- Obter o link do QR code do código de rastreamento de um objeto
- Obter o histórico de um objeto em formatos HTML e array

Picture of Julio Cezar Kronbauer
  Performance   Level  
Name: Julio Cezar Kronbauer <contact>
Classes: 11 packages by
Country: Brazil Brazil
Age: 42
All time rank: 2172145 in Brazil Brazil
Week rank: 215 Up19 in Brazil Brazil Up
Innovation award
Innovation award
Nominee: 1x

Example

<?php

include_once dirname(__FILE__) . '/Correios.Class.php';

$Correios = new Correios;

echo
'=========== Consulta Frete ===========<br/>';
$result = $Correios->CalculaFrete(CORREIOS_FRETE_SERVICO_PAC, '96810-010', '90050-001', 2.5, 23, 14, 12, 849.90);
echo
'Valor: R$ ' . number_format($result['valor'], 2, ',', '.') . ' Prazo: ' . $result['prazo'] . ' dias<br/>';

$result = $Correios->CalculaFrete(CORREIOS_FRETE_SERVICO_SEDEX, '96810-010', '90050-001', 2.5, 23, 14, 12, 849.90);
echo
'Valor: R$ ' . number_format($result['valor'], 2, ',', '.') . ' Prazo: ' . $result['prazo'] . ' dias<br/>';

$result = $Correios->CalculaFrete(CORREIOS_FRETE_SERVICO_CARTA_REGISTRADA, '96810-010', '90050-001', 0.045, NULL, NULL, NULL, NULL, false, false);
echo
'Valor: R$ ' . number_format($result['valor'], 2, ',', '.') . ' Prazo: ' . $result['prazo'] . ' dias<br/>';

$result = $Correios->CalculaFrete(CORREIOS_FRETE_SERVICO_IMPRESSO_NORMAL, '96810-010', '90050-001', 0.245, NULL, NULL, NULL, NULL, false, false, CORREIOS_FRETE_REGISTRO_TIPO_MODICO);
echo
'Valor: R$ ' . number_format($result['valor'], 2, ',', '.') . ' Prazo: ' . $result['prazo'] . ' dias<br/>';

$result = $Correios->CalculaFrete(CORREIOS_FRETE_SERVICO_IMPRESSO_NORMAL, '96810-010', '90050-001', 0.245, NULL, NULL, NULL, NULL, true, false, CORREIOS_FRETE_REGISTRO_TIPO_MODICO);
echo
'Valor: R$ ' . number_format($result['valor'], 2, ',', '.') . ' Prazo: ' . $result['prazo'] . ' dias<br/>';

$result = $Correios->CalculaFrete(CORREIOS_FRETE_SERVICO_IMPRESSO_NORMAL, '96810-010', '90050-001', 0.245, NULL, NULL, NULL, NULL, true, true, CORREIOS_FRETE_REGISTRO_TIPO_MODICO);
echo
'Valor: R$ ' . number_format($result['valor'], 2, ',', '.') . ' Prazo: ' . $result['prazo'] . ' dias<br/>';

$result = $Correios->CalculaFrete(CORREIOS_FRETE_SERVICO_IMPRESSO_NORMAL, '96810-010', '90050-001', 0.245, NULL, NULL, NULL, NULL, false, false, CORREIOS_FRETE_REGISTRO_TIPO_NACIONAL);
echo
'Valor: R$ ' . number_format($result['valor'], 2, ',', '.') . ' Prazo: ' . $result['prazo'] . ' dias<br/>';

$result = $Correios->CalculaFrete(CORREIOS_FRETE_SERVICO_IMPRESSO_NORMAL, '96810-010', '90050-001', 0.245, NULL, NULL, NULL, NULL, true, false, CORREIOS_FRETE_REGISTRO_TIPO_NACIONAL);
echo
'Valor: R$ ' . number_format($result['valor'], 2, ',', '.') . ' Prazo: ' . $result['prazo'] . ' dias<br/>';

$result = $Correios->CalculaFrete(CORREIOS_FRETE_SERVICO_IMPRESSO_NORMAL, '96810-010', '90050-001', 0.245, NULL, NULL, NULL, NULL, true, true, CORREIOS_FRETE_REGISTRO_TIPO_NACIONAL);
echo
'Valor: R$ ' . number_format($result['valor'], 2, ',', '.') . ' Prazo: ' . $result['prazo'] . ' dias<br/>';

$result = $Correios->CalculaFrete(CORREIOS_FRETE_SERVICO_IMPRESSO_NORMAL, '96810-010', '90050-001', 0.780, NULL, NULL, NULL, NULL, false, false, CORREIOS_FRETE_REGISTRO_TIPO_NACIONAL);
echo
'Valor: R$ ' . number_format($result['valor'], 2, ',', '.') . ' Prazo: ' . $result['prazo'] . ' dias<br/>';

$result = $Correios->CalculaFrete(CORREIOS_FRETE_SERVICO_IMPRESSO_NORMAL, '96810-010', '90050-001', 0.780, NULL, NULL, NULL, NULL, true, false, CORREIOS_FRETE_REGISTRO_TIPO_NACIONAL);
echo
'Valor: R$ ' . number_format($result['valor'], 2, ',', '.') . ' Prazo: ' . $result['prazo'] . ' dias<br/>';

$result = $Correios->CalculaFrete(CORREIOS_FRETE_SERVICO_IMPRESSO_NORMAL, '96810-010', '90050-001', 0.780, NULL, NULL, NULL, NULL, true, true, CORREIOS_FRETE_REGISTRO_TIPO_NACIONAL);
echo
'Valor: R$ ' . number_format($result['valor'], 2, ',', '.') . ' Prazo: ' . $result['prazo'] . ' dias<br/>';

$result = $Correios->CalculaFrete(CORREIOS_FRETE_SERVICO_IMPRESSO_NORMAL, '96810-010', '90050-001', 1.650, NULL, NULL, NULL, NULL, false, false, CORREIOS_FRETE_REGISTRO_TIPO_NACIONAL);
echo
'Valor: R$ ' . number_format($result['valor'], 2, ',', '.') . ' Prazo: ' . $result['prazo'] . ' dias<br/>';

$result = $Correios->CalculaFrete(CORREIOS_FRETE_SERVICO_IMPRESSO_NORMAL, '96810-010', '90050-001', 1.650, NULL, NULL, NULL, NULL, true, false, CORREIOS_FRETE_REGISTRO_TIPO_NACIONAL);
echo
'Valor: R$ ' . number_format($result['valor'], 2, ',', '.') . ' Prazo: ' . $result['prazo'] . ' dias<br/>';

$result = $Correios->CalculaFrete(CORREIOS_FRETE_SERVICO_IMPRESSO_NORMAL, '96810-010', '90050-001', 1.650, NULL, NULL, NULL, NULL, true, true, CORREIOS_FRETE_REGISTRO_TIPO_NACIONAL);
echo
'Valor: R$ ' . number_format($result['valor'], 2, ',', '.') . ' Prazo: ' . $result['prazo'] . ' dias<br/>';

$result = $Correios->CalculaFrete(CORREIOS_FRETE_SERVICO_IMPRESSO_NORMAL, '96810-010', '90050-001', 2.380, NULL, NULL, NULL, NULL, false, false, CORREIOS_FRETE_REGISTRO_TIPO_NACIONAL);
echo
'Valor: R$ ' . number_format($result['valor'], 2, ',', '.') . ' Prazo: ' . $result['prazo'] . ' dias<br/>';

$result = $Correios->CalculaFrete(CORREIOS_FRETE_SERVICO_IMPRESSO_NORMAL, '96810-010', '90050-001', 2.380, NULL, NULL, NULL, NULL, true, false, CORREIOS_FRETE_REGISTRO_TIPO_NACIONAL);
echo
'Valor: R$ ' . number_format($result['valor'], 2, ',', '.') . ' Prazo: ' . $result['prazo'] . ' dias<br/>';

$result = $Correios->CalculaFrete(CORREIOS_FRETE_SERVICO_IMPRESSO_NORMAL, '96810-010', '90050-001', 2.380, NULL, NULL, NULL, NULL, true, true, CORREIOS_FRETE_REGISTRO_TIPO_NACIONAL);
echo
'Valor: R$ ' . number_format($result['valor'], 2, ',', '.') . ' Prazo: ' . $result['prazo'] . ' dias<br/>';

$result = $Correios->CalculaFrete(CORREIOS_FRETE_SERVICO_IMPRESSO_URGENTE, '96810-010', '90050-001', 0.245, NULL, NULL, NULL, NULL, false, false, CORREIOS_FRETE_REGISTRO_TIPO_MODICO);
echo
'Valor: R$ ' . number_format($result['valor'], 2, ',', '.') . ' Prazo: ' . $result['prazo'] . ' dias<br/>';

$result = $Correios->CalculaFrete(CORREIOS_FRETE_SERVICO_IMPRESSO_URGENTE, '96810-010', '90050-001', 0.245, NULL, NULL, NULL, NULL, true, false, CORREIOS_FRETE_REGISTRO_TIPO_MODICO);
echo
'Valor: R$ ' . number_format($result['valor'], 2, ',', '.') . ' Prazo: ' . $result['prazo'] . ' dias<br/>';

$result = $Correios->CalculaFrete(CORREIOS_FRETE_SERVICO_IMPRESSO_URGENTE, '96810-010', '90050-001', 0.245, NULL, NULL, NULL, NULL, true, true, CORREIOS_FRETE_REGISTRO_TIPO_MODICO);
echo
'Valor: R$ ' . number_format($result['valor'], 2, ',', '.') . ' Prazo: ' . $result['prazo'] . ' dias<br/>';

$result = $Correios->CalculaFrete(CORREIOS_FRETE_SERVICO_IMPRESSO_URGENTE, '96810-010', '90050-001', 0.245, NULL, NULL, NULL, NULL, false, false, CORREIOS_FRETE_REGISTRO_TIPO_NACIONAL);
echo
'Valor: R$ ' . number_format($result['valor'], 2, ',', '.') . ' Prazo: ' . $result['prazo'] . ' dias<br/>';

$result = $Correios->CalculaFrete(CORREIOS_FRETE_SERVICO_IMPRESSO_URGENTE, '96810-010', '90050-001', 0.245, NULL, NULL, NULL, NULL, true, false, CORREIOS_FRETE_REGISTRO_TIPO_NACIONAL);
echo
'Valor: R$ ' . number_format($result['valor'], 2, ',', '.') . ' Prazo: ' . $result['prazo'] . ' dias<br/>';

$result = $Correios->CalculaFrete(CORREIOS_FRETE_SERVICO_IMPRESSO_URGENTE, '96810-010', '90050-001', 0.245, NULL, NULL, NULL, NULL, true, true, CORREIOS_FRETE_REGISTRO_TIPO_NACIONAL);
echo
'Valor: R$ ' . number_format($result['valor'], 2, ',', '.') . ' Prazo: ' . $result['prazo'] . ' dias<br/>';

echo
'<br/>=========== Consulta Endere&ccedil;o ===========<br/>';
$result = $Correios->ConsultaEndereco('96810-000');
foreach (
$result as $v) {
    echo
'CEP: ' . $v['cep'] . '<br/>' .
        
'CEP (formatado): ' . $v['cep_formatted'] . '<br/>' .
        
'Logradouro: ' . htmlentities($v['logradouro']) . '<br/>' .
        
'Endere&ccedil;o: ' . htmlentities($v['endereco']) . '<br/>' .
        
'Bairro: ' . htmlentities($v['bairro']) . '<br/>' .
        
'Cidade: ' . htmlentities($v['cidade']) . '<br/>' .
        
'Localidade: ' . htmlentities($v['localidade']) . '<br/>' .
        
'Estado: ' . htmlentities($v['estado']) . '<br/>' .
        
'UF: ' . htmlentities($v['uf']) . '<br/><br/>';
}

echo
'=========== Consulta CEP ===========<br/>';
$result = $Correios->ConsultaCEP('RJ', 'Rio de Janeiro', 'Avenida Atlantica', 461, CORREIOS_LOGRADOURO_TIPO_AVENIDA);
if (
is_array($result)) {
    foreach (
$result as $v) {
        echo
'CEP: ' . $v['cep'] . '<br/>' .
            
'CEP (formatado): ' . $v['cep_formatted'] . '<br/>' .
            
'Logradouro: ' . htmlentities($v['logradouro']) . '<br/>' .
            
'Endere&ccedil;o: ' . htmlentities($v['endereco']) . '<br/>' .
            
'Bairro: ' . htmlentities($v['bairro']) . '<br/>' .
            
'Cidade: ' . htmlentities($v['cidade']) . '<br/>' .
            
'Localidade: ' . htmlentities($v['localidade']) . '<br/>' .
            
'Estado: ' . htmlentities($v['estado']) . '<br/>' .
            
'UF: ' . htmlentities($v['uf']) . '<br/><br/>';
    }
}

echo
Correios::getLinkRastreamento('DU524588253BR');
$historico = $Correios->getHistoricoObjeto('DU524588253BR');
echo
$historico['HTML'] . '<pre>' . print_r($historico['Array'], true) . '</pre>';

echo
Correios::getLinkRastreamento('DU524588253BR');
$historico = $Correios->getHistoricoObjeto('DU524588253BR', true);
echo
$historico['HTML'] . '<pre>' . print_r($historico['Array'], true) . '</pre>';

echo
'<div style="text-align: center"><img src="' . Correios::getLinkQRCodeObjeto('DU524588253BR') . '" /></div>';

echo
Correios::formatCodigoRastreamentoObjeto('DU524588253BR', CORREIOS_CODIGO_RASTREAMENTO_OBJETO_FORMATO_IMPRESSO) . '<br/>' .
    
Correios::formatCodigoRastreamentoObjeto('DU524588253BR', CORREIOS_CODIGO_RASTREAMENTO_OBJETO_FORMATO_WEB);

?>


  Files folder image Files (2)  
File Role Description
Plain text file Correios.Class.php Class The main file
Accessible without login Plain text file Exemplos.php Example Exemplos de uso

The PHP Classes site has supported package installation using the Composer tool since 2013, as you may verify by reading this instructions page.
Install with Composer Install with Composer
 Version Control Unique User Downloads Download Rankings  
 0%
Total:196
This week:0
All time:8,519
This week:455Up