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.
<?php$config=array("trace"=>1,"exception"=>0,"cache_wsdl"=>WSDL_CACHE_MEMORY);$address='https://apps.correios.com.br/SigepMasterJPA/AtendeClienteService/AtendeCliente?wsdl';$client=newSoapClient($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 doserviço
$address:endereço doWSDL
$client:instância da classe SoapClient com asconfigurações e endereço
$cliente->consultaCEP:é a função que recupera asinformações doCEP informado
Observações:
1) No consultaCEPpara 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 SitePackagistThe PHP Package Repository
1 –zizaco/cep-consultAtravés do próprio site dos correios
2 –canducci/cepatravés do site viacep.com.br
3 –cagartner/correios-consultaUm 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