deivisonarthur / OSC-Magento-Brasil-6-Pro

One Step Checkout Brasil 6 Pro
75 stars 102 forks source link

Consulta Automática de CEP retornando endereço errado #57

Open luisgennari opened 9 years ago

luisgennari commented 9 years ago

Pessoal,

Quando consulto o CEP 16020-367 no site dos correios, retorna o seguinte endereço: Logradouro: Rua Compadre João Bertani

Quando informo o mesmo CEP no checkout do OSC, retorna o seguinte endereço: Logradouro: Rua Compadre João Carlos Carne

O nome da rua correto é o que é mostrado na consulta dos correios. Tem como corrigir isso?

luisgennari commented 9 years ago

Será que a base de dados onde o OSC consulta está desatualizada?

rafaelstz commented 9 years ago

A base que ele consulta é diferente, busca da "República Virtual" isso provavelmente por causa da estabilidade. Para alterar o destino de consulta basta abrir o sequinte arquivo e ir para a linha 730. https://github.com/deivisonarthur/OSC-Magento-Brasil-6-Pro/blob/master/app/code/community/Inovarti/Onestepcheckout/controllers/AjaxController.php

729 - } 730 - $webservice = 'http://cep.republicavirtual.com.br/web_cep.php'; 731 - $resultado = file_get_contents($webservice . '?cep=' . urlencode($cep) . '&formato=javascript');

luisgennari commented 9 years ago

Olá Rafael, Obrigado pelo suporte!

Eu acessei o arquivo informado. Tentei substituir pelos seguintes urls que encontrei em alguns fóruns sobre webservice dos correios:

1) m.correios.com.br/movel/buscaCepConfirma.do 2) www.buscacep.correios.com.br/servicos/dnec/consultaLogradouroAction.do?Metodo=listaLogradouro&CEP= 3) ws.correios.com.br/calculador/CalcPrecoPrazo.asmx 4) ws.correios.com.br/calculador/CalcPrecoPrazo.aspx

Somente esse ultimo urls funcionou, mas retornou o mesmo logradouro de antes. Tem mais alguma dica para me ajudar com isso?

rafaelstz commented 9 years ago

Não tenho idea de como poderia resolver.

isaaclopes commented 9 years ago

ola @luisgennari você pode personalizar esse para sua loja https://github.com/deivisonarthur/OSC-Magento-Brasil-4-Pro/blob/master/skin/frontend/base/default/deivison/buscacep.php

luisgennari commented 9 years ago

Olá Lopes,

Pensei que era só substituir a URL. Mas para a personalização requer um conhecimento mais avançado em programação, coisa que não tenho.

De qualquer forma agradeço pela dica.

Cellin commented 9 years ago

Mesmo problema.. Achei que a base da Kinghost era diferente, mas é a mesma.. Também não possuo estes conhecimentos(apesar de continuar tentando), mas caso alguém consiga e disponibilize, seria muito útil!

luisgennari commented 9 years ago

seguindo na busca.! :)

isaaclopes commented 9 years ago

Ola *não é o melhor caminho mas segue: baixe o arquivo: https://github.com/deivisonarthur/OSC-Magento-Brasil-4-Pro/blob/master/skin/frontend/base/default/deivison/phpQuery-onefile.php em app ▸ code ▸ community ▸ Inovarti ▸ Onestepcheckout ▸ controllers

Cellin commented 9 years ago

Isaac,

Deu certo, testei a rua citada pelo Luis só para confirmar, e funcionou, muito obrigado.

Até aproveitando, teria uma outra dúvida, este código do onefile.php, o tamanho do arquivo, vai influenciar no momento de um novo usuário realizar um cadastro, em relação ao código anterior que da a impressão de estar mais limpo/direto? (Apesar de já ter um OSC 4 em funcionamento, pensei se poderia alterar algo para o usuário final..)

E em relação aos estados, com o OSC 4, eu geralmente tinha problemas quando um novo usuário salva o estado, vi algumas soluções até mesmo no GitHub, porém não atualizei.. com esta adição do código no OSC 6, pode voltar a acontecer estes problemas?

Obrigado de novo,

isaaclopes commented 9 years ago

ola @Cellin não entendi muito bem sua pergunta.

PS. o cod de exemplo é apenas um auxiliar puxando dos correios, você pode personalizar como queira.

bemColar commented 9 years ago

Hoje já é possível utilizar a API dos correios para tal consulta:

$clientSoap = new soapClient("https://apps.correios.com.br/SigepMasterJPA/AtendeClienteService/AtendeCliente?wsdl" ); $cep = preg_replace('/[^\d]/', '', $this->getRequest()->getQuery('cep', false));

    $soapArgs = array(
        'cep' => $cep,
    );

    $result = $clientSoap->consultaCep($soapArgs);          
    $json  = json_encode($result->return);  
    echo($json);

bemcolar Adesivos de Parede

luisgennari commented 9 years ago

Lacerda, Esse código deve ser colocado aonde?

Luis F. S. Gennari

e-mail: luis.gennari@gmail.com Cel: (18) 8800-0321 OI Skype: luis.gennari

Em 14/05/2015, à(s) 13:27, lacerdabh notifications@github.com escreveu:

Hoje já é possível utilizar a API dos correios para tal consulta:

$clientSoap = new SoapClient("https://apps.correios.com.br/SigepMasterJPA/AtendeClienteService/AtendeCliente?wsdl https://apps.correios.com.br/SigepMasterJPA/AtendeClienteService/AtendeCliente?wsdl" ); $cep = preg_replace('/[^\d]/', '', $this->getRequest()->getQuery('cep', false));

$soapArgs = array(
    'cep' => $cep,
);

$result = $clientSoap->consultaCep($soapArgs);          
$json  = json_encode($result->return);  
echo($json);

bemcolar Adesivos de Parede - http://www.bemcolar.com http://www.bemcolar.com/ — Reply to this email directly or view it on GitHub https://github.com/deivisonarthur/OSC-Magento-Brasil-6-Pro/issues/57#issuecomment-102093695.

ehb1975 commented 8 years ago

A utilização do web service do correios através do: ("https://apps.correios.com.br/SigepMasterJPA/AtendeClienteService/AtendeCliente?wsdl") é gratuita?

Pelo manual http://www.corporativo.correios.com.br/encomendas/sigepweb/doc/Manual_de_Implementacao_do_Web_Service_SIGEPWEB_Logistica_Reversa.pdf, deve existir um contrato.