Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Caros,
Estou implementando em meu e-Comm o cálculo de frete on-line da Jad Log (Variglog) e não estou conseguindo acessar os dados do XML retornado pelo sistema deles.
Como não manjo quase nada de XML, estou me baseando no modelo de classes dos Correios e alterando os campos.
Gostaria de uma ajuda para fazer isto funcionar.
Não há nenhuma mensagem de erro de sintaxe ou coisa parecida, apenas os valores são retornados em branco (vazios ou nulos, não sei)
Nos meus testesm tudo vai bem até a linha da classe jadlog que contém
If TypeName(objXmlDoc) = "DOMDocument" Then
A partir daí parece que a classe atribui valores nulos e retorna à função principal, sem dar qualquer erro.
No final, o valor retornado pela função principal é vazio / nulo.
Vejam os códigos abaixo:
Esta é a função principal:
'Função Frete JadLog (VarigLog) com contrato
function ValorFreteJadLog(CEPOrigem, CEPDestino, pesoTotal, altura, largura, profundidade, vlNotaFiscal)
' Modalidade do frete JadLog.
' Código Descrição
' 0 STANDARD
' 3 .PACKAGE
' 4 RODOVIARIO
' 5 ECONOMICO
' 6 DOC
' 7 CORPORATE
' 9 .COM
' 10 INTERNACIONAL
' 12 CARGO
' 14 EMERGENCIAL
'Parâmetros fixos
vModalidade = "5" ' Modalidade do frete. Deve conter apenas números (tabela anexa)
Password = "xxxxxx" ' Senha de acesso à área de Serviços on-line do site da JadLog
vSeguro = "N" ' Tipo do Seguro “N” normal “A” apólice própria
vVlColeta = "5" ' Valor da coleta negociado com a unidade JadLog. Ex. 10,00
vFrap = "N" ' Frete a pagar no destino, “S” = sim “N” = não
vEntrega = "D" ' Tipo de entrega “R” retira unidade JadLog, “D” domicilio
vCNPJ = "00000000000" ' CNPJ do contratante
'Parâmetros variáveis
vVlDec = vlNotaFiscal
vCepOrig = CEPOrigem
vCepDest = CEPDestino
vPeso = PesoTotal
vAltura = altura
vLargura = largura
vProfundidade = profundidade
Dim objJadLog ,objInfo
Set objJadLog = New JadLog
Set objInfo = New JadLogInfo
on error resume next
Set objInfo = objJadLog.doCalculoJadLog(vModalidade, Password, vSeguro, vVlDec, vVlColeta, vCepOrig, vCepDest, vPeso, vAltura, vLargura, vProfundidade, vFrap, vEntrega, vCnpj)
If objInfo.Retorno = "" Then
valorFreteJadLog = objInfo.Retorno
Else
'CASO O CEP SEJA INVÁLIDO
valorFreteJadLog = -1
End If
Set objJadLog = nothing
Set objInfo = nothing
debug = false
end function
Abaixo as classes
<%
On Error Resume Next
Class JadLog
Function doCalculoJadLog(ByVal vModalidade, ByVal Password, ByVal vSeguro, ByVal vVlDec, ByVal vVlColeta, ByVal vCepOrig, ByVal vCepDest,ByVal vPeso, ByVal vAltura, ByVal vLargura, ByVal vProfundidade, ByVal vFrap, ByVal vEntrega, ByVal vCnpj)
'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 doCalculoJadLog = New JadLogInfo
'Montando a URL para busca no site
URL = "http://jadlog.com.br:8080/JadlogWebService/services/ValorFreteBean?method=valorar"
URL = URL & "&vModalidade=" & vModalidade
URL = URL & "&Password=" & Password
URL = URL & "&vSeguro=" & vSeguro
URL = URL & "&vVlDec=" & vVlDec
URL = URL & "&vVlColeta=" & vVlColeta
URL = URL & "&vCepOrig=" & vCepOrig
URL = URL & "&vCepDest=" & vCepDest
URL = URL & "&vPeso=" & vPeso
URL = URL & "&vAltura=" & vAltura
URL = URL & "&vLargura=" & vLargura
URL = URL & "&vProfundidade=" & vProfundidade
URL = URL & "&vFrap=" & vFrap
URL = URL & "&vEntrega=" & vEntrega
URL = URL & "&vCnpj=" & vCnpj
objXMLHttp.Open "GET", URL, False
objXMLHttp.Send VAL
response.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
doCalculoJadLog.Versao = objXmlDoc.selectSingleNode("//JadLog_Valor_Frete//versao").text
doCalculoJadLog.Retorno = objXmlDoc.selectSingleNode("//JadLog_Valor_Frete//Retorno").text
doCalculoJadLog.Mensagem = objXmlDoc.selectSingleNode("//JadLog_Valor_Frete//Mensagem").text
End If
Else
doCalculoJadLog.ErroCodigo = objXmlHttp.status
doCalculoJadLog.ErroDescricao = objXmlHttp.statusText
End If
'Destruindo os objetos
Set objXmlDoc = Nothing
Set objXmlHttp = Nothing
End Function
End Class
'-----------------------------------------------------
'Classe com os Atributos
'-----------------------------------------------------
Class JadLogInfo
Public Versao
Public Retorno
Public Mensagem
Public ErroCodigo
Public ErroDescricao
End Class
%>
O XML da Jad Log vem assim
<?xml version="1.0" encoding="utf-8" ?>
<string xmlns="[http://Jadlog.com.br:8080/JadlogWebService/services">](http://Jadlog.com.br:8080/JadlogWebService/services)
<Jadlog_Valor_Frete>
<versao>1.0</versao>
<Retorno></Retorno>
<Mensagem></Mensagem>
</Jadlog_Valor_Frete>
</string>Carregando comentários...