Ir para conteúdo

POWERED BY:

Arquivado

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

feasso

Implementar e-sedex no site

Recommended Posts

utilize o webservice dos correios

 

olha este exemplo

 

<%
'=======================================================
'CLASSE SEDEX
'=======================================================
Class Sedex
'-----------------------------------------------------
'Funcao: doCalculoSedex(ByVal ServicoCodigo, ByVal CepOrigem, ByVal CepDestino, ByVal Peso, ByVal MaoPropria, ByVal ValorDeclarado, ByVal AvisoRecebimento)
'Retorna Lista de Indicadores Financeiros
'Parâmetros:
'	ServicoCodigo: Código do tipo de entrega que será calculada
'				   O valores possíveis são:
'					- 40010 (SEDEX)
'					- 40290 (SEDEX Hoje)
'					- 40215 (SEDEX 10)
'					- 40045 (SEDEX a Cobrar)
'					Valor padrão é: 40010 
'	CepOrigem: Cep de Origem no formato XXXXX-XXX
'	CepDestino: Cep de Destino no formato XXXXX-XXX
'	Peso: Peso da remessa limite de 30
'	MaoPropria: Serviço de Mão Própria(S/N)
'				Valor padrão é: N
'	ValorDeclarado: Serviço de seguro com valor declarado
'	AvisoRecebimento: Serviço de Aviso de Recebimento(S/N)
'				Valor padrão é: N
'Retorno: Objeto SedexInfo
'-----------------------------------------------------
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.XMLHTTP")
    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
	'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

'-----------------------------------------------------
'EXEMPLO DE CHAMADA
'-----------------------------------------------------
Dim objSedex
Dim objInfo
Set objSedex = New Sedex
Set objInfo = New SedexInfo
Set objInfo = objSedex.doCalculoSedex("", "02401-200", "90110-170", 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
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Copiei e colei o código para testes, porém está dando Erro de tempo de execução do Microsoft VBScript erro '800a01a8'

Objeto necessário: 'objXmlDoc.selectSingleNode(...)'. O que pode estar ocorrendo?

 

Agradeço pela ajuda.

 

Gilson

Compartilhar este post


Link para o post
Compartilhar em outros sites

pode ser o nó raiz do XML,e verifique se tentou fechar ou definir a nada um objeto que não foi definido.

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.