Ir para conteúdo

POWERED BY:

Arquivado

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

luisym

Retorno de WebService

Recommended Posts

Estou fazendo a integração com o sistema AprovaFacil do CobreBem mas estou tendo algumas dúvidas relacionados ao serviço WebService AprovaFacil

 

Estou enviando a solicitação de aprovação do cartão ok, está enviando e capturando o retorno da aprovação, como faço para isolar os dados do retorno e tratá-lo?

 

                                define a url para onde sera enviado o POST -->
                                url = "https://teste.aprovafacil.com/cgi-bin/APFW/"&usuario&"/APC" 
				
				' cria o objeto MSXML2 -->
				set xmlhttp = CreateObject("MSXML2.ServerXMLHTTP")
					
				' define o metodo de envio -->
				xmlhttp.open "POST", url, false 
				
				' define o content type -->
				xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
					
				' monta a string com os parametros -->
				parametros = "NumeroDocumento=" & numerocompra & "&ValorDocumento=" & valottt & "&QuantidadeParcelas=" & parcelas  & "&NumeroCartao=" & numero & "&MesValidade=" & left(vencimento, 2)  & "&AnoValidade=" & right(vencimento, 2) & "&CodigoSeguranca=" & codigo_seguranca  & "&CPFPortadorCartao=" & CPF
					
				' efetua o POST -->
				xmlhttp.send (parametros)
					
				' exibe a resposta do POST -->
				Response.write (xmlhttp.responseText)
					
				' libera o objeto MSXML2 -->
				set xmlhttp = nothing 

 

Como faço para isolar os dados do xml retornado para que eu possa tratá-los.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Um webservices basicamente nada mais é do que uma "página" que recebe uma requisição POST e responde um XML.

uma página .asp simples que faz esse trabalho de pegar dois parametros passados pelo metodo POST processar e responder um XML

 

exemplo de código

 

<?xml version="1.0" encoding="UTF-8"?>

<%
intPrimeiroNumero = Request.Form("numero1")
intSegundoNumero = Request.Form("numero2")
Resultado = CInt(intPrimeiroNumero) + cInt(intSegundoNumero)
%>

<calculo>
        <resultado><%=CStr(Resultado)%></resultado>
</calculo>

 

 

Ela pega dois números, soma eles e devolve um xml com o resultado.

 

Agora bem a parte principal, a primeira página chama essa do XML que eu coloquei o nome de retorno.asp

 

<%
'Cria o objeto XMLHTTP
Set objXmlHttp = Server.CreateObject("Msxml2.XMLHTTP")
'Faz uma chamada post para a página retorno.asp que é a que me retornará o XML
objXmlHttp.Open "POST", "http://localhost/retorno.asp", false
'Altera o cabeçalho do Request
objXmlHttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded; charset=UTF-8"
'Passa os parametros para a página
objXmlHttp.send "numero1=3&numero2=5"
'Recebe o XML que a página retorna.
Response.Write(objXmlHttp.responseText)
%>

 

 

Após isso, você pode usar o Objeto XMLDOM para tratar o XML retornado para a página, mas a principio é isso.

Isso é um dos principios básicos do AJAX.

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim essa parte já esta funcionando eu não estou conseguindo no caso é tratar os dados que estão retornando, isolando cada informação para poder trata-la.

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha aqui, talvez ajude a clarear

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não muito porém fazendo alguns testes consegui retornar os dados porem com um erro que não entendi muito bem pq

 

Segue o codigo:

 

			' define a url para onde sera enviado o POST -->
			url = "https://teste.aprovafacil.com/cgi-bin/APFW/"&usuario&"/APC" 
				
			' cria o objeto MSXML2 -->
			set xmlhttp = CreateObject("MSXML2.ServerXMLHTTP")
					
			' define o metodo de envio -->
			xmlhttp.open "POST", url, false 
				
			' define o content type -->
			
			xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded; charset=UTF-8"

			' monta a string com os parametros -->
			parametros = "NumeroDocumento=" & numerocompra & "&ValorDocumento=" & valottt & "&QuantidadeParcelas=" & parcelas  & "&NumeroCartao=" & numero & "&MesValidade=" & left(vencimento, 2)  & "&AnoValidade=" & right(vencimento, 2) & "&CodigoSeguranca=" & codigo_seguranca  & "&CPFPortadorCartao=" & CPF
				
			' efetua o POST -->
			xmlhttp.send (parametros)

			' exibe a resposta do POST para confrencia dos dados-->
			Response.write (xmlhttp.responseText)				
				
'Amazenamos o resultado na variável strXML
strXML = xmlhttp.responseText
 
'Instancia o objeto XMLDOM
Set objXML = Server.CreateObject("MSXML2.DOMDocument.4.0")
 
'Indicamos que o download em segundo plano não é permitido
objXML.async = false
 
'O método loadXML carrega parte do código, sem ter o documento XML
objXML.loadXML(strXML)
 
'Verifica possíveis erros com o método parseError
if objXML.ParseError.errorCode <> 0 then
 
response.write "Código do erro: " & objXML.parseError.errorCode & "<br>"
response.write "Posição no arquivo: " & objXML.parseError.filepos & "<br>"
response.write "Linha: " & objXML.parseError.line & "<br>"
response.write "Posição na linha: " & objXML.parseError.linepos & "<br>"
response.write "Descrição: " & objXML.parseError.reason & "<br>"
response.write "Texto que causa o erro: " & objXML.parseError.srcText & "<br>"
response.write "Url do arquivo com problemas: " & objXML.parseError.url
 
else
 
'Instancia o objeto documentElement para extrair os elementos
Set raiz = objXML.documentElement
 
'Looping para percorrer todos os elementos filhos
For i = 0 to raiz.childNodes.length -1
 
'A propriedade NodeName contém o nome do elemento
'A propriedade childNodes contém a lista de elementos filhos

response.Write  "<br>-" & raiz.childNodes.item(i).childNodes.item(0).text
 
next
 
end if				
						
			' libera o objeto MSXML2 -->
			set xmlhttp = nothing 

Resposta

True Autorização - 503728 503728 73403841271747 999999******9999 21745

 

-True

-Autorização - 503728

-503728

-73403841271747

-999999******9999

-21745

Microsoft VBScript runtime error '800a01a8'

 

Object required: 'raiz.childNodes.item(...).childNodes.item(...)'

 

 

Pelo que entendi ele da o erro quando a tag que tenta pegar esta em branco.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ele não esta conseguindo encontrar alguns itens do childNodes

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.