PHP Classes

Correios: Calculate postal freight and Brazil CEP zip code

Recommend this page to a friend!
  Info   View files Example   View files View files (2)   DownloadInstall with Composer Download .zip   Reputation   Support forum (1)   Blog    
Ratings Unique User Downloads Download Rankings
Not enough user ratingsTotal: 195 All time: 8,513 This week: 115Up
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: 2171144 in Brazil Brazil
Week rank: 312 Up26 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  
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

 Version Control Unique User Downloads Download Rankings  
 0%
Total:195
This week:0
All time:8,513
This week:115Up