Ir para conteúdo

POWERED BY:

Arquivado

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

André Gil

Script para calculo de E-sedex

Recommended Posts

Falae Galera, estou fazendo um e-commerce e estou precisando calcular o e-sedex, mas não estou conseguindo pois o script que eu tenho só funciona pro sedex.

O script é o seguinte:

 

// CALCULA SEDEX		$conexao = fsockopen("www.correios.com.br", 80, $errno, $errstr, 30);				$saida = "GET /encomendas/precos/calculo.cfm?servico=40010&CepOrigem=$cep_origem&CepDestino=$cep_destino&Peso=$peso HTTP/1.1\r\n";		$saida .= "Host: www.correios.com.br\r\n";		$saida .= "Connection: Close\r\n\r\n";				fwrite($conexao, $saida);				$resposta = "";		while (!feof($conexao)) {			$resposta .= fgets($conexao, 128);		}		fclose($conexao);		ereg ("&Tarifa=([0-9]+\.[0-9]+)", $resposta, $reg);			// essa aqui é a gabiarra dessa versão		if (!$reg[1]) {			ereg ("&Tarifa=([0-9]+)", $resposta, $reg);		}				$valor_sedex = $reg[1];

Alguém já fez ou tem noção de como fazer esse cálculo para e-sedex?

 

 

Desde já agradeço pela força.

 

Abraços,

 

André Gil

Compartilhar este post


Link para o post
Compartilhar em outros sites

muito obrigado pela dica, ajudou pelo fato de eu ter pego o código da encomenda normal, mas o e-sedex não tem lá também.Se alguém suber se é possível eu fico grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

po bixo, entra no site dos correios e ve na querystring deles se tu descobre algum codigo do e-sedex, ou entao se tem algum hidden lá com o codigo no form, ou entao algum js...burla meu amigo, burla heheh

Compartilhar este post


Link para o post
Compartilhar em outros sites

hehehe, eu já vasculhei aquele site dos correios, não encontrei uma forma de calculo online do e-sedex, somente das outras formas de entrega, quando você faz o contrato deles te mandam uma tabela enorme e ridícula em excel, tem uma ferramenta da locaweb para se fazer o calculo online mas não consegui fazer a implementação no meu código, de uma olhada:

 

http://site.locaweb.com.br/suporte/faq/faq.asp?faq=1278

 

Fiz uma função baseada nessa que postei e não me retorna nenhum valor, alterei e nada. Veja a tentativa de adaptação e veja se fiz algo errado:

 

// CALCULA E-SEDEX	$conexao_e = fsockopen("comercio.locaweb.com.br", 80, $errno, $errstr, 30);		$saida_e = "GET /correios/calcula_sedex.asp?cod_sedex=81019&cepOrig=05413000&cepDest=13304562&pesoDeclarado=1&submit=Calcular HTTP/1.1\r\n";	$saida_e .= "Host: comercio.locaweb.com.br\r\n";	$saida_e .= "Connection: Close\r\n\r\n";		fwrite($conexao_e, $saida_e);		while (!feof($conexao_e)) {		$resposta_e .= fgets($conexao_e, 128);	}	fclose($conexao_e);	ereg ("&Endereco_Frete=([0-9]+\,[0-9]+)", $resposta_e, $reg_e);		// essa aqui é a gabiarra dessa versão	if (!$reg_e[1]) {		ereg ("&Endereco_Frete=([0-9]+)", $resposta_e, $reg_e);	}		print "<br><br>".$reg_e[1];

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

os códigos são esse40010 -> SEDEX40290 -> SEDEX Hoje40215 -> SEDEX 1040045 -> SEDEX a Cobrar41017 -> Encomenda Normalo e-sedex é uma tabela mesmo e é por contrato no caso da locaweb, o que você precisa é dar um POST nessa página e ela tem uma página de retorno, ali você coloca o seu site e o endereço que ele vai retornar os valores é isso

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso eu já sabia, eu não quero que dê o post e me retorne o valor, teria que ser igual esse do sedex que eu postei anteriorente. Pois quando a pessoa colocar o cep tem que retornar o valor de todas as formas de envio para ela escolher.Se alguém souber aí agradeço!Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aí está: para que usa comércio da locaweb consegui pegar o valor do e-sedex sem dar refresh ou post na página.

 

// CALCULA E-SEDEX		$host = "comercio.locaweb.com.br";		$port = 80;		$path = "/correios/calcula_sedex.asp";			$fullhost = "http://comercio.locaweb.com.br:80";				$request = "cod_sedex=81019&cepOrig=".$cep_origem."&cepDest=".$cep_destino."&pesoDeclarado=".str_replace(".", ",", $peso);				$request_length = strlen($request);			$header  = "POST $path HTTP/1.0\r\n";		$header .= "Host: $host\r\n";		$header .= "User-Agent: DoCoMo/1.0/P503i\r\n";		$header .= "Content-type: application/x-www-form-urlencoded\r\n";		$header .= "Content-length: $request_length\r\n";		$header .= "\r\n";			$fp = fsockopen($host,$port,&$err_num,&$err_msg,30);			fputs($fp, $header . $request);				while(!feof($fp)){			$resposta .= fgets($fp,128);		}				ereg ("([0-9]+\,[0-9]+)", $resposta, $reg);			if (!$reg_en[1]) {			ereg ("([0-9]+)", $resposta, $reg);		}				$esedex =  $reg[1];

É isso aí... vlw pela força!

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.