mestre fyoda Postado Setembro 5, 2007 Denunciar Share Postado Setembro 5, 2007 <%'================================================= ====== '4KRASNOCEGO - CLASSE SEDEX'================================================= ====== Class Sedex Function doCalculoSedex(ByVal ServicoCodigo, ByVal CepOrigem, ByVal CepDestino, ByVal Peso, ByVal MaoPropria, ByVal ValorDeclarado, ByVal AvisoRecebimento) 'Declaração das variáveis/objetos Dim Retorno Dim URL Dim objXmlHttp Dim objXmlDoc 'Inicialização dos objetos/variáveis Set objXmlHttp = Server.CreateObject("MSXML2.ServerXMLHTTP") Set objXmlDoc = Server.CreateObject("MSXML2.DOMDocument") Set doCalculoSedex = New SedexInfo 'Validando as variáveis If ServicoCodigo = "" Then ServicoCodigo = 40010 End If Peso = Replace(Peso, ",", ".") If MaoPropria = "" Then MaoPropria = "N" End If ValorDeclarado = Replace(ValorDeclarado, ",", ".") If AvisoRecebimento = "" Then AvisoRecebimento = "N" End If 'Montando a URL para busca no site URL = "http://www.correios.com.br/encomendas/precos/calculo.cfm?resposta=Xml" URL = URL & "&servico=" & ServicoCodigo URL = URL & "&cepOrigem=" & CepOrigem URL = URL & "&cepDestino=" & CepDestino URL = URL & "&peso=" & Peso URL = URL & "&MaoPropria=" & MaoPropria URL = URL & "&valorDeclarado=" & ValorDeclarado URL = URL & "&avisoRecebimento=" & AvisoRecebimento objXMLHttp.Open "GET", URL, False objXMLHttp.Send VALresponse.write URL & VAL & "<BR>"'Verificando se a busca foi bem sucedida If objXmlHttp.statusText = "OK" Then objXmlDoc.loadXML(objXmlHttp.responseText) 'Verificando se o retorno foi bem sucediido If TypeName(objXmlDoc) = "DOMDocument" Then doCalculoSedex.Versao = objXmlDoc.selectSingleNode("//calculo_precos//versao_arquivo").text doCalculoSedex.ServicoCodigo = objXmlDoc.selectSingleNode("//calculo_precos//dados_postais//servico").text doCalculoSedex.ServicoNome = objXmlDoc.selectSingleNode("//calculo_precos//dados_postais//servico_nome").text doCalculoSedex.UFOrigem = objXmlDoc.selectSingleNode("//calculo_precos//dados_postais//uf_origem").text doCalculoSedex.LocalOrigem = objXmlDoc.selectSingleNode("//calculo_precos//dados_postais//local_origem").text doCalculoSedex.CEPOrigem = objXmlDoc.selectSingleNode("//calculo_precos//dados_postais//cep_origem").text doCalculoSedex.UFDestino = objXmlDoc.selectSingleNode("//calculo_precos//dados_postais//uf_destino").text doCalculoSedex.LocalDestino = objXmlDoc.selectSingleNode("//calculo_precos//dados_postais//local_destino").text doCalculoSedex.CEPDestino = objXmlDoc.selectSingleNode("//calculo_precos//dados_postais//cep_destino").text doCalculoSedex.Peso = objXmlDoc.selectSingleNode("//calculo_precos//dados_postais//peso").text doCalculoSedex.MaoPropria = objXmlDoc.selectSingleNode("//calculo_precos//dados_postais//mao_propria").text doCalculoSedex.AvisoRecebimento = objXmlDoc.selectSingleNode("//calculo_precos//dados_postais//aviso_recebimento").text doCalculoSedex.ValorDeclarado = objXmlDoc.selectSingleNode("//calculo_precos//dados_postais//valor_declarado").text doCalculoSedex.TarifaValorDeclarado = objXmlDoc.selectSingleNode("//calculo_precos//dados_postais//tarifa_valor_declarado").text doCalculoSedex.PrecoPostal = objXmlDoc.selectSingleNode("//calculo_precos//dados_postais//preco_postal").text doCalculoSedex.ErroCodigo = objXmlDoc.selectSingleNode("//calculo_precos//erro//codigo").text doCalculoSedex.ErroDescricao = objXmlDoc.selectSingleNode("//calculo_precos//erro//descricao").text Else doCalculoSedex.ErroCodigo = "1001" doCalculoSedex.ErroDescricao = "Não foi possível consultar à base dos correios neste momento." End If Else doCalculoSedex.ErroCodigo = objXmlHttp.status doCalculoSedex.ErroDescricao = objXmlHttp.statusText End If 'Destruindo os objetos Set objXmlDoc = Nothing Set objXmlHttp = Nothing End Function End Class '----------------------------------------------------- 'Classe com os Atributos do Sedex '----------------------------------------------------- Class SedexInfo Public Versao Public ServicoCodigo Public ServicoNome Public UFOrigem Public LocalOrigem Public CEPOrigem Public UFDestino Public LocalDestino Public CEPDestino Public Peso Public MaoPropria Public AvisoRecebimento Public ValorDeclarado Public TarifaValorDeclarado Public PrecoPostal Public ErroCodigo Public ErroDescricao End Class '----------------------------------------------------- 'CHAMADA '----------------------------------------------------- Dim objSedex Dim objInfo Set objSedex = New Sedex Set objInfo = New SedexInfo Set objInfo = objSedex.doCalculoSedex("", "88140-000", "23013-550", 30, "N", "", "N") If objInfo.ErroCodigo = "0" Then Response.Write "Serviço: <b>" & objInfo.ServicoNome & "</b><br />" Response.Write "UF Origem: <b>" & objInfo.UFOrigem & "</b><br />" Response.Write "Local Origem: <b>" & objInfo.LocalOrigem & "</b><br />" Response.Write "CEP Origem: <b>" & objInfo.CEPOrigem & "</b><hr />" Response.Write "UF Destino: <b>" & objInfo.UFDestino & "</b><br />" Response.Write "Local Destino: <b>" & objInfo.LocalDestino & "</b><br />" Response.Write "CEP Destino: <b>" & objInfo.CEPDestino & "</b><hr />" Response.Write "Peso: <b>" & objInfo.Peso & "</b><br />" Response.Write "Mao Propria: <b>" & objInfo.MaoPropria & "</b><br />" Response.Write "Valor Declarado: <b>" & objInfo.ValorDeclarado & "</b><br />" Response.Write "Tarifa Valor Declarado: <b>" & objInfo.TarifaValorDeclarado & "</b><br />" Response.Write "Preço Postal: <b>" & objInfo.PrecoPostal & "</b><br />" Else Response.Write objInfo.ErroDescricao End If Set objInfo = Nothing Set objSedex = Nothing %>Tipo de erro: Erro de tempo de execução do Microsoft VBScript (0x800A01A8) Objeto necessário: 'objXmlDoc.selectSingleNode(...)' Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Marcos-rj Postado Setembro 5, 2007 Denunciar Share Postado Setembro 5, 2007 Nooossa, que código gigante. eu uso um código para calculo online de sedex q não tem nem a metade deste ai! Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
mestre fyoda
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.