• 0
Sign in to follow this  
dark0

Calculo De Frete

Question

Olá pessoal, tudo bem?

Bem, acho que alguns de vocês se perguntaram "Como calcular o frete em asp?"

Eu vou postar aqui um código 100% ASP, que funciona muito bem!

O requisito minimo para rodar, é ter o componente XMLHTTP instalado.

Esse componente é quase que padrão no IIS. Não sei quanto ao PWS.. mas é bem capaz de ter ele tb.

Eu peguei ele pronto na web, então os direitos autorais, ficam para o criador do codigo. Achei ele no Superasp, quando eu achar o link original, eu coloco aqui.

pagina default.asp

Share this post


Link to post
Share on other sites

21 answers to this question

Recommended Posts

  • 0

hehe

eu fiz um teste antes e pareceu funcionar

mas pode ser erro mesmo

mais tarde eu dou uma olhada nisso, e ajusto pra vocês

se acharem erros/tiverem sugestoes, sintam-se à vontade para postar

abraço

Share this post


Link to post
Share on other sites
  • 0

hiahiahiaai .... o seu teste ta retornando no localhost dark..... da alterado no seu codigo pra gente ver

Share this post


Link to post
Share on other sites
  • 0

desculpem-me pessoal

Agora, eu arrumei, podem testar

Foi uma idiotice minha.. eu havia esquecido de alterar a url de resposta.. hehehe

é que testei localmente aqui e funcionou né..

Podem testar

abraço

Share this post


Link to post
Share on other sites
  • 0

Então..

Eu acabei de mecher no script.. pra ele rodar direto em qualquer servidor.. e em qualquer pasta.. sem precisar mecher em nada!

Vejam como ficou:

default.asp

Share this post


Link to post
Share on other sites
  • 0

como de praxe.. depois de uns dias pendurado.. to despendurando esse tópico..

Share this post


Link to post
Share on other sites
  • 0

Duas dúvidas:

A 1º é: ele só calcula tipo sedex

A 2º é referente ao peso pois se eu tiro o nº 1 ele da peso excedido e se coloco 0,3 tb da erro.

Share this post


Link to post
Share on other sites
  • 0

Ótimo, valeu pela dica, mas quanto a outras formas de envio que não sejam sedex tem como ele fazer o calculo?

Share this post


Link to post
Share on other sites
  • 0
Guest Allard

ainda não vi nada em xmlhttp, mas aqui esta:

<%@ language=javascript %>
<%
	var xmlhttp =Server.CreateObject("Msxml2.serverXMLHTTP");

	var strCepOrg="41000000";
	var strCepDest="41857628";
	var fltPeso=2;

    var strUrl="http://www.correios.com.br/encomendas/precos/calculo.cfm?cepOrigem=" + strCepOrg +
    "&cepDestino=" + strCepDest + 
    "&peso=" + fltPeso + 
    "&resposta=" + Server.URLEncode("[url resposta]");
    
	xmlhttp.open("GET", strUrl, false);
	xmlhttp.send();

	Response.write("<b>tarifa: " + xmlhttp.responseXML.selectSingleNode("//rate").text + "</b>");

%>
e o arquivo para o URL resposta:
<%@ language=javascript %>
<%
Response.contentType="text/xml";
Response.clear();
%><?xml version="1.0" ?>
<rate>
	<%= Request.Querystring("tarifa") %>
</rate>

Para mais informações, entre em contato: [email protected]

Share this post


Link to post
Share on other sites
  • 0
Guest Visitante

Pessoal,

Vocês estão de parabéns.

Esta discução foi muito boa pra mim.

Obrigado,

Alexandre Leone

Share this post


Link to post
Share on other sites
  • 0

O resultado é:

Servico : SEDEX

valorDeclarado : 0

cepOrigem : 88101350

UFOrigem : SC

AvisoRecebimento : 0

cepDestino : 45202560

LocalOrigem : Capital

LocalDestino : Interior

UFdestino : BA

Tarifa : 32

Peso : 1

MaoPropria : 0

erro :

O valor está vindo sempre 0

Share this post


Link to post
Share on other sites
  • 0

Aqui no meu, hora funciona e hora não. Tem horas que parece que a página do correio engasga e só funciona se eu aperar F5 (fica travado com a tela em branco). Mas é só as vezes (50% das vezes funciona numa boa, 50% dá esse erro)..

alguém tem uma idéia do que possa ser ?? :blink:

Abraço!

Share this post


Link to post
Share on other sites
  • 0

Olá galera... Gostei a beça do tópico, aqui está funcionando muito bem...

Mas existe alguma forma de eu formatar a resposta? Mudar fonte, cor, dar ênfase ao preço e colocar em R$--,00 ? exatamente como está lá no site dos correios?

Abraços

Flavia

Share this post


Link to post
Share on other sites
  • 0

vlw pela dica....eu calculei deu certo.... muito obrigado... : :P

acho que é o codigo var=50%in()var=0 que está dando errado... tente ai

acho que é o codigo var=50%in()var=0 que está dando errado... tente ai vê ai.....

Share this post


Link to post
Share on other sites
  • 0
Guest --Fábio --

Eu sei calcular vários tipos de Serviços, como Sedec, Sedex 10, PAC, Encomenda Normal, mas não sei como trazer todos os valores e uma só vez como eu vejo por ai.

Alguém sabe como trazer todos os valores de uma só vez na tela.

Exemplo:

Sedex = R$ 10,80

Sedex 10 = R$ 15,40

Encomenda Normal = R$ 8,00

PAC = R$ 9,00

Abraços - Fábio!

Share this post


Link to post
Share on other sites
  • 0
ainda não vi nada em xmlhttp, mas aqui esta:

<%@ language=javascript %>
<%
    var xmlhttp =Server.CreateObject("Msxml2.serverXMLHTTP");

    var strCepOrg="41000000";
    var strCepDest="41857628";
    var fltPeso=2;
    
    var strUrl="http://www.correios.com.br/encomendas/precos/calculo.cfm?cepOrigem=" + strCepOrg +
    "&cepDestino=" + strCepDest + 
    "&peso=" + fltPeso + 
    "&resposta=" + Server.URLEncode("[url resposta]");
    
    xmlhttp.open("GET", strUrl, false);
    xmlhttp.send();
    
    Response.write("<b>tarifa: " + xmlhttp.responseXML.selectSingleNode("//rate").text + "</b>");
    
%>
e o arquivo para o URL resposta:
<%@ language=javascript %>
<%
Response.contentType="text/xml";
Response.clear();
%><?xml version="1.0" ?>
<rate>
    <%= Request.Querystring("tarifa") %>
</rate>

Para mais informações, entre em contato: [email protected]

Ola..

este código eu coloco em qual página?

montei as duas, uma como Sedex.asp e a outra como RespostaCorreios.asp

mas não sei onde colocar estes q você postou.

aguardo respostas..

grato

Share this post


Link to post
Share on other sites
  • 0

Dae Galera, esse é meu primeiro post aqui no ScriptBrasil.

Eu vi o codigo e achei legal, mas eu precisava de uma coisa que funciona-se completamente no lado do servidor, sem essa interação usando o browser do usuário... Isso torna o sistema inseguro... nada impede que o meliante de uma marretada e coloque um valor qualquer no campo de frete do formulário... então eu adaptei o codigo, e segue abaixo.

<%
Session.LCID = 1036

Dim URLCorreio, CEPOrigem, CEPDestino, Peso, xmlhttp, strRetorno, urlInteressante, arrLinha, arrRetornos
Dim TipoServico, Tarifa

CEPOrigem    = "06056180"
CEPDestino    = "06236020"
Peso        = "1"

URLCorreio = "http://www.correios.com.br/encomendas/precos/calculo.cfm?cepOrigem=" & CEPOrigem & "&cepDestino=" & CEPDestino & "&peso=" & Peso

Set xmlhttp = Server.CreateObject("Msxml2.serverXMLHTTP")

Call xmlhttp.open("GET", URLCorreio, false)
Call xmlhttp.send()
strRetorno = xmlhttp.responseText

urlInteressante = Mid(strRetorno, instr(1, strRetorno, "window.open") )
urlInteressante = left(urlInteressante, instr(1, urlInteressante, "popUpTarifa") )

arrRetornos = Split(urlInteressante, "&")

for i=0 to Ubound(arrRetornos)
    arrLinha = Split(arrRetornos(i), "=")
    if instr(1, arrLinha(0), "Servico") Then  TipoServico = arrLinha(1)
    if arrLinha(0) = "Tarifa" Then Tarifa = Cdbl(Replace(arrLinha(1),".",","))
Next

Response.Write "O Frete é do tipo " & TipoServico & " e vai custar R$ " & FormatNumber(Tarifa,2)


%>

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this