Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Consulta de preços e prazos de múltiplos serviços não está funcionando #23

Closed
rafaelrgb opened this issue Sep 25, 2019 · 2 comments · Fixed by #25
Closed

Consulta de preços e prazos de múltiplos serviços não está funcionando #23

rafaelrgb opened this issue Sep 25, 2019 · 2 comments · Fixed by #25
Assignees
Labels

Comments

@rafaelrgb
Copy link

Descrição detalhada

A consulta de preços e prazos com múltiplos serviços já na mesma consulta, conforme indicado no README, parou de funcionar. Acredito que não seja um bug na biblioteca, mas sim uma mudança na resposta do serviços dos correios. Antes, eu realizava a consulta da seguinte forma:

$correios = new Client;

$correios->freight()
    ->origin('01001-000')
    ->destination('87047-230')
    ->services(Service::SEDEX, Service::PAC)
    ->item(16, 16, 16, .3, 1) // largura, altura, comprimento, peso e quantidade
    ->item(16, 16, 16, .3, 3) // largura, altura, comprimento, peso e quantidade
    ->item(16, 16, 16, .3, 2) // largura, altura, comprimento, peso e quantidade
    ->calculate();

Porém hoje de manhã essa consulta começou a retornar a seguinte resposta:

array(1) {
  [0]=>
  array(12) {
    ["Codigo"]=>
    string(1) "0"
    ["Valor"]=>
    string(1) "0"
    ["PrazoEntrega"]=>
    string(1) "0"
    ["ValorMaoPropria"]=>
    string(1) "0"
    ["ValorAvisoRecebimento"]=>
    string(1) "0"
    ["ValorValorDeclarado"]=>
    string(1) "0"
    ["EntregaDomiciliar"]=>
    object(stdClass)#458 (0) {
    }
    ["EntregaSabado"]=>
    object(stdClass)#449 (0) {
    }
    ["Erro"]=>
    string(2) "99"
    ["MsgErro"]=>
    string(76) "Erro inesperado. Descrição: Máximo de 1 código de serviço por consulta."
    ["ValorSemAdicionais"]=>
    string(1) "0"
    ["obsFim"]=>
    object(stdClass)#451 (0) {
    }
  }
}

Note a mensagem de erro retornada pelos correios: "Erro inesperado. Descrição: Máximo de 1 código de serviço por consulta.". Essa mensagem aparece mesmo acessando o serviço dos correios diretamente pela url http://ws.correios.com.br/calculador/CalcPrecoPrazo.asmx/CalcPrecoPrazo no meu browser.

Após identificar o problema, mudei meu código para consultar um serviço de cada vez e depois fazer o merge das respostas:

$freight->services(CorreiosService::SEDEX);
$sedexFreight = $freight->calculate();
$freight->services(CorreiosService::PAC);
$pacFreight = $freight->calculate();
return array_merge($sedexFreight, $pacFreight);

Contexto

Utilizo a biblioteca correios-php na minha aplicação para calcular o preço e prazo de entregas via Pac e Sedex. Essa consulta é feita diariamente pelos usuários do site. Fui supreendido essa manhã quando esse erro começou a ocorrer em todas as requisições. Decidi criar essa issue como forma de informar os mantenedores e usuários da biblioteca sobre esse problema, para que possam ser tomadas ações a fim de evitá-lo.

@flyingluscas
Copy link
Owner

@rafaelrgb Muito obrigado pela issue! Vou olhar isso assim que possível e fazer uma nova versão com a correção! ;)

@flyingluscas
Copy link
Owner

Corrigido na versão v2.3.4! ;)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants