Muitos sistemas PHP, a maioria, precisam buscar o endereço via CEP dos correios e até mesmo buscar o rastreamento do itens enviados.
Esta dica mostra exemplo de como realizar este procedimento utilizando o PHP e no final alguns repositórios sobre o mesmo procedimento para o PHP.
Primeiro é preciso utilizar no PHP o SoapClient para carregar o WSDL (Web Service) e utilizar suas funcionalidades.
VAI GOSTAR:
No código logo abaixo mostra como recuperar as informações mediante o número do CEP.
Aposte na Mega da Virada 2024!
Prepare-se para uma chance única de mudar sua vida. O prêmio histórico de R$ 600 milhões da Mega da Virada 2024 está esperando por você!
Além disso, conheça os bolões da Sorte Online, que são os mais premiados e oferecem as melhores chances de ganhar! Ao participar dos bolões, você se junta a centenas de apostadores e aumenta suas chances de faturar uma bolada.
Faça sua Aposta Agora<?php
$config = array(
"trace" => 1,
"exception" => 0,
"cache_wsdl" => WSDL_CACHE_MEMORY
);
$address = 'https://apps.correios.com.br/SigepMasterJPA/AtendeClienteService/AtendeCliente?wsdl';
$client = new SoapClient($address, $config);
$cep = $client->consultaCEP(['cep' =>'01415000']);
Resultado
object(stdClass)#2 (1) { ["return"]=> object(stdClass)#3 (8)
{ ["bairro"]=> string(12) "Consolação" ["cep"]=> string(8) "01415000"
["cidade"]=> string(10) "São Paulo" ["complemento"]=> string(0) ""
["complemento2"]=> string(21) "- até 586 - lado par"
["end"]=> string(15) "Rua Bela Cintra" ["id"]=> int(0)
["uf"]=> string(2) "SP" }
}
Sequencia:
$config: configurações do serviço
$address: endereço do WSDL
$client: instância da classe SoapClient com as configurações e endereço
$cliente->consultaCEP: é a função que recupera as informações do CEP informado
Observações:
1) No consultaCEP para funciona é um Array no formato [cep => 'numero do cep']
2) Esse WebService é muito lento!
CEP inválido e ErrosUse assim:
try
{
$cep = $client->consultaCEP(['cep' =>'11111111']);
var_dump($cep);
}
catch(Exception $e)
{
var_dump($e);
}
object(SoapFault)#3 (10) { [“message”:protected]=> string(18) “CEP NAO ENCONTRADO” [“string”:”Exception”:private]=> string(0) “” [“code”:protected]=> int(0) [“file”:protected]=> string(26) “C:\inetpub\wwwroot\cep.php” [“line”:protected]=> int(16) [“trace”:”Exception”:private]=> array(1) { [0]=> array(6) { [“file”]=> string(26) “C:\inetpub\wwwroot\cep.php” [“line”]=> int(16) [“function”]=> string(6) “__call” [“class”]=> string(10) “SoapClient” [“type”]=> string(2) “->” [“args”]=> array(2) { [0]=> string(11) “consultaCEP” 1=> array(1) { [0]=> array(1) { [“cep”]=> string(8) “11111111” } } } } } [“previous”:”Exception”:private]=> NULL [“faultstring”]=> string(18) “CEP NAO ENCONTRADO” [“faultcode”]=> string(11) “soap:Server” [“detail”]=> object(stdClass)#2 (1) { [“SigepClienteException”]=> string(18) “CEP NAO ENCONTRADO” } }
Você pode então verificar se não retornou nada!
Alternativas prontas de pacotes em PHP no Site PackagistThe PHP Package Repository
1 – zizaco/cep-consult Através do próprio site dos correios
2 – canducci/cep através do site viacep.com.br
3 – cagartner/correios-consulta Um Git mais completo com, inclusive, 0 cálculo de frete
LEIA TAMBÉM:
- Coleção de E-Books sobre programação PHP
- Repositórios interessantes para CEP e Correios
- Design de Games: O que é preciso para trabalhar na área?
- Ferramentas para trabalho remoto e desenvolvimento Front-End
- Ferramentas para rastrear baleias cripto e quando comprar o mergulho
- Como Aprender e Ensinar programação Python
- Extensões do VSCode pra escrever testes unitários com Cypress