Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

João Batista Neto

Biblioteca para cálculo de preço e prazo de encomendas dos Correios

Recommended Posts

Pessoal,

 

Acaba de ser lançada a biblioteca de integração com o Correios para cálculo de preço e prazo de encomendas.

 

Anúncio :seta: http://imasters.com.br/noticia/21419/apis/imasters-lanca-novo-pacote-de-integracao-com-os-correios

Repositório :seta: https://github.com/iMastersDev/correios

 

Para utilizar:

 

<?php
require_once 'com/imasters/php/ect/ECT.php';

$ect = new ECT();
$prdt = $ect->prdt();
$prdt->setNVlAltura( 10 );
$prdt->setNVlComprimento( 20 );
$prdt->setNVlLargura( 20 );
$prdt->setNCdFormato( ECTFormatos::FORMATO_CAIXA_PACOTE );
$prdt->setNCdServico( ECTServicos::PAC ); //calculando apenas PAC
$prdt->setSCepOrigem( '09641030' );
$prdt->setSCepDestino( '27511300' );
$prdt->setNVlPeso( 10 );

foreach ( $prdt->call() as $servico ) {
printf( "O preço do frete do correios para o serviço %d é R$ %.02f\n" , $servico->Codigo , $servico->Valor );
}

 

Saída:

 

O preço do frete do correios para o serviço 41106 é R$ 22,30
O preço do frete do correios para o serviço 40010 é R$ 29,50

 

Todos são bem vindos a "forkar" e melhorar o código.

 

;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mais um código show

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá,

O seguinte erro é retorno:

======================================================================================================================

Fatal error: Cannot redeclare class HTTPRequest in C:\wamp\www\pasta\com\imasters\php\http\HTTPRequest.php on line 18

======================================================================================================================

Consta na linha 18: "interface HTTPRequest {"; Como resolver?

Compartilhar este post


Link para o post
Compartilhar em outros sites

A classe HTTPRequest está sendo declarada mais de uma vez.

 

Você modificou alguma coisa nos requires? Como esta boblioteca do João não usa autoload, use sempre require_once para garantir que o arquivo contendo a classe seja incluído apenas uma vez.

 

Se estiver tudo certo com os requires, verifique se você não possui outra classe com o mesmo nome em sua aplicação.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu tive esse mesmo problema quando usei o código da Cielo junto ao ECT , pois ambas bibliotecas usam o pacote de requisições HTTP dele .. daí acontecia esse erro, o que eu fiz pra resolver foi pegar a HTTP mais recente dele, e utilizar em ambas às classes !

 

Já comentei com o João para separar a HTTP das bibliotecas, e criar uma dependência nas próximas versões de biblioteca .. assim, quando formos usar qualquer classe que dependa de uma requisição HTTP, o pacote é separado, o que seria muito mais benéfico do que utilizar namespace ..

 

Além do mais, ia resolver esse tipo de problema, quando ele fizer atualizações no pacote HTTP igual fez na ECT, pegamos a versão mais atualizada, e adaptamos .. veja que a classe HTTP que ele usa na Cielo, é diferente da ECT ..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Pessoal

 

Copiei todos os códigos e estou tendo esse erro:

Fatal error: Call to undefined function sys_get_temp_dir() in /home/vendaseletro/com/imasters/php/http/HTTPCookieManager.php on line 37

 

...

 

Estranho ... aqui parece que falta um diretorio.

 

alguem pode me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.