Ir para conteúdo

POWERED BY:

Arquivado

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

GBN

Webservice Redecard

Recommended Posts

Ola pessoal esse e meu primeiro topico solicitando uma ajuda aqui dos imasters

 

e o seguinte li o manual da Redecard tanto para webservice como para solucao integrada, porem estou tentando integralizar pelo webservice da redecard, parece ser mais facil pois tem os metodos de teste, porem estou tendo dificuldades no seguinte

 

Fiz uma pagina de teste com o nome de consulta2.asp com um form que envia os dados via POST ou GET para a pagina consulta.asp

esta pagina consulta.asp tem o INCLUDE cls_webservice.asp no inicio entao ela verifica os dados automaticamente com o webservice da redecard:

 

 <!--#include file="cls_webservice.asp"-->
<%
    dim ws
    

    set ws = new webservice
    ws.url = "https://ecommerce.redecard.com.br/pos_virtual/wskomerci/cap.asmx"

    ws.method = "GetAuthorizedTst" 

    ws.parameters.Add "TOTAL",Request("TOTAL")
    ws.parameters.Add "TRANSACAO",Request("TRANSACAO")
    ws.parameters.Add "PARCELAS",Request("PARCELAS")
    ws.parameters.Add "FILIACAO",Request("FILIACAO")
    ws.parameters.Add "NUMPEDIDO",Request("NUMPEDIDO")
    ws.parameters.Add "NRCARTAO",Request("NRCARTAO")
    ws.parameters.Add "CVC2",Request("CVC2")
    ws.parameters.Add "MES",Request("MES")
    ws.parameters.Add "ANO",Request("ANO")
    ws.parameters.Add "PORTADOR", Request("PORTADOR")
    ws.parameters.Add "IATA",Request("IATA")
    ws.parameters.Add "DISTRIBUIDOR",Request("DISTRIBUIDOR")
    ws.parameters.Add "CONCENTRADOR",Request("CONCENTRADOR")
    ws.parameters.Add "TAXAEMBARQUE",Request("TAXAEMBARQUE")
    ws.parameters.Add "ENTRADA",Request("ENTRADAR")
    ws.parameters.Add "PAX1",Request("PAX1R")
    ws.parameters.Add "PAX2",Request("PAX2")
    ws.parameters.Add "PAX3",Request("PAX3")
    ws.parameters.Add "PAX4",Request("PAX4")
    ws.parameters.Add "NUMDOC1",Request("NUMDOC1")
    ws.parameters.Add "NUMDOC2",Request("NUMDOC2")
    ws.parameters.Add "NUMDOC3",Request("NUMDOC3")
    ws.parameters.Add "NUMDOC4",Request("NUMDOC4")
    ws.parameters.Add "CONFTXN",Request("CONFTXN")
 
 ws.Invoke
     
    response.Write ws.response
set ws = nothing


%>

Com isso ela me retorna os dados na pagina consulta em asp so que mostra assim:

 

0 Autorizado+com+sucesso 2 20091031 004081 000700385 000504658 000486067 BRA

 

no codigo fonte mostra o que seria o XML

 

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

<AUTHORIZATION>

<CODRET>0</CODRET>

<MSGRET>Autorizado+com+sucesso</MSGRET>

<NUMPEDIDO>2</NUMPEDIDO>

<DATA>20091031</DATA>

<NUMAUTOR>002005</NUMAUTOR>

<NUMCV>000968755</NUMCV>

<NUMAUTENT>000949978</NUMAUTENT>

<NUMSQN>000836326</NUMSQN>

<ORIGEM_BIN>BRA</ORIGEM_BIN>

</AUTHORIZATION>

 

bom o que eu quero e apartir dai eu preciso mandar um outro form caso O CODRET seja 0 e o MSGRET seja Autorizado+com+sucesso ou em outros casos

 

esse novo form tem que ir para https://ecommerce.redecard.com.br/pos_virtual/wskomerci/cap.asmx method ConfiTxnTst? isso caso eu nao envie o S no campo ConfTxn, caso eu envie terei que gerar o cupom

 

Caso nao tenham entendido alguma parte me avise

 

Abracos

 

GB

Compartilhar este post


Link para o post
Compartilhar em outros sites

naun entendi muito bem o k ker fazer...

Compartilhar este post


Link para o post
Compartilhar em outros sites

naun entendi muito bem o k ker fazer...

 

 

Obrigado pela resposta,

entao a primeira etapa e essa e esta ok

 

Vou tentar te explicar o fluxo:

 

1 - Loja envia FORMULARIO COM DADOS ("TOTAL")("TRANSACAO")("PARCELAS")("FILIACAO")("NUMPEDIDO")("NRCARTAO")("CVC2")("MES")("ANO")("PORTADOR")("IATA")("DISTRIBUIDOR")("CONCENTRADOR")("TAXAEMBARQUE")("ENTRADAR")("PAX1R")("PAX2")("PAX3")("PAX4")("NUMDOC1")("NUMDOC2")("NUMDOC3")("NUMDOC4")("CONFTXN") >>>>> WEBSERVICE REDECARD OK

 

2 - REDECARD ENVIA RESPOSTA EM XML >>>>>>>>>>>>>>>>>> PARA LOJA COM OS DADOS:

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

<AUTHORIZATION>

<CODRET>0</CODRET>

<MSGRET>Autorizado+com+sucesso</MSGRET>

<NUMPEDIDO>2</NUMPEDIDO>

<DATA>20091031</DATA>

<NUMAUTOR>002005</NUMAUTOR>

<NUMCV>000968755</NUMCV>

<NUMAUTENT>000949978</NUMAUTENT>

<NUMSQN>000836326</NUMSQN>

<ORIGEM_BIN>BRA</ORIGEM_BIN>

</AUTHORIZATION>

=====================================OK

 

Esses dados estam aparecendo em uma pagina ASP dessa forma: 0 Autorizado+com+sucesso 2 20091031 004081 000700385 000504658 000486067 BRA

 

3 - LOJA TRATA OS DADOS RECEBIDOS NO XML E ENVIA UM OUTRO FORMULARIO DE CONFIRMACAO PARA O WEBSERVICE ( SO SERA ENVIADO CASO O PARAMETRO CODRET SEJA "0" (PROBLEMA)

 

ENVIO DE UM OUTRO FORM COM OS DADOS

<NUMPEDIDO>2</NUMPEDIDO>

<DATA>20091031</DATA>

<NUMAUTOR>002005</NUMAUTOR>

<NUMCV>000968755</NUMCV>

<NUMSQN>000836326</NUMSQN>

 

4 - REDECARD ENVIARA MAIS UM XML IGUAL O DA PRIMEIRA ETAPA COM O OK

 

5 - ETAPA FINAL - LOJA ENVIA UM FORM PARA GERAR O CUPOM

 

 

VEJA SE CONSEGUIU ENTENDER?

 

Abracos

GB

Compartilhar este post


Link para o post
Compartilhar em outros sites

enetendi, e você quer ler o XML, ou precisa altera-lo e mandar um outro form para o CODRET = 0

 

agora como esse novo form tem que ir para https://ecommerce.re...omerci/cap.asmx method ConfiTxnTst?

você precisa ver se ele aceita você enviar direto ou precisa de alguma autenticacaun...

Compartilhar este post


Link para o post
Compartilhar em outros sites

enetendi, e você quer ler o XML, ou precisa altera-lo e mandar um outro form para o CODRET = 0

 

agora como esse novo form tem que ir para https://ecommerce.re...omerci/cap.asmx method ConfiTxnTst?

você precisa ver se ele aceita você enviar direto ou precisa de alguma autenticacaun...

 

Exatamente da so uma olhada https://ecommerce.redecard.com.br/pos_virtual/wskomerci/cap.asmx

 

o primeiro form e pro https://ecommerce.redecard.com.br/pos_virtual/wskomerci/cap.asmx?op=GetAuthorizedTst

e o segundo e pro https://ecommerce.redecard.com.br/pos_virtual/wskomerci/cap.asmx?op=ConfirmTxnTst

e o cupom https://ecommerce.redecard.com.br/pos_virtual/cupom.asp

 

caso eu envie no primeiro form "s" no campo CONFTXN eu nao vou precisar mandar o segundo form posso ir direto para o cupom, mas acho legal fazer todo o procedimento nao e?

 

Sim aceita enviar direto, nao preciso fazer nenhuma autenticacao

Compartilhar este post


Link para o post
Compartilhar em outros sites

seria mais aceitavel,fazer todo o procedimento , pois assim fica padraun

Compartilhar este post


Link para o post
Compartilhar em outros sites

seria mais aceitavel,fazer todo o procedimento , pois assim fica padraun

 

 

pois e sera que algum imaster consegue me dar uma forca to meio perdido pra iniciar etapa dois

Compartilhar este post


Link para o post
Compartilhar em outros sites

dá uma olhada aki pode te ajudar

Compartilhar este post


Link para o post
Compartilhar em outros sites

dá uma olhada aki pode te ajudar

 

 

esse e o manual que usei para desenvolver os forms e pegar os retornos, porem ele nao ajuda nada no tratamento do XML e action

 

meu problema e ler o xml e executar uma acao apos isso

 

tipo digamos que eu enviei o passo 1 (formulario 1 para o webservice ) peguei o xml

no xml tem alguns dados eu preciso pegar alguns desses dados e redirecionar para o segundo form, mas so posso fazer isso se na leitura do xml eu peguei a variavel CODRET = 0 pra isso por um IF nao deve ser dificil

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode ler o xml e apos executar , uma outra acaun, só implementar,exemplo

 

<?xml version="1.0" encoding="ISO-8859-1" ?>
	<Internet>
		<Opcoes>
			nivel 1
				<web>
					<Opcao>Opcao1</Opcao>
				</web>
				<Mail>
					<Opcao>Opcao2</Opcao>
				</Mail>
				<video>
					<Opcao>Opcao3</Opcao>
				</video>
		</Opcoes>
	</Internet>

No exemplo abaixo, iremos extrair e ler só os elementos filhos que nos interessam.

<%
'Instancia o objeto XMLDOM.
Set objXMLDoc = CreateObject("MSXML2.DOMDocument.4.0")
 
'Indicamos que o download em segundo plano não é permitido
objXMLDoc.async = False
 
'Carrega o domcumento XML
objXMLDoc.load("e:\home\LoginFTP\Web\internet.xml")
 
'Carrega o domcumento XML
'objXMLDoc.load("E:\vhosts\DOMINIO_COMPLETO\httpdocs\internet.xml")
 
'O método parseError contém informações sobre o último erro ocorrido
if objXMLDoc.parseError <> 0 then
 
response.write "Código do erro: " & objXMLDoc.parseError.errorCode & "<br>"
response.write "Posição no arquivo: " & objXMLDoc.parseError.filepos & "<br>"
response.write "Linha: " & objXMLDoc.parseError.line & "<br>"
response.write "Posição na linha: " & objXMLDoc.parseError.linepos & "<br>"
response.write "Descrição: " & objXMLDoc.parseError.reason & "<br>"
response.write "Texto que causa o erro: " & objXMLDoc.parseError.srcText & "<br>"
response.write "Url do arquivo com problemas: " & objXMLDoc.parseError.url
 
else
 
'A propriedade documentElement refere-se à raiz do documento
Set raiz = objXMLDoc.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 raiz.NodeName & "<br>" & raiz.childNodes.item(i).childNodes.item(0).text
& "<br>" & raiz.childNodes.item(i).childNodes.item(1).text
 
Next
 
end if
 
'Destruindo os objetos
Set objXMLDoc = Nothing
Set raiz = Nothing
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

esse code é um simples exemplo de como ler, funciona, normal, mas existem outros exemplos no lab. de script, dê uma pesquisada...

Compartilhar este post


Link para o post
Compartilhar em outros sites

esse code é um simples exemplo de como ler, funciona, normal, mas existem outros exemplos no lab. de script, dê uma pesquisada...

 

CONSEGUI ler fazendo assim:

 

Set xmlDoc = Server.CreateObject("Microsoft.XMLDOM")
xmlDoc.setProperty "ServerHTTPRequest", True 
xmlDoc.async = False
xmlDoc.loadXML (ws.response)
If (xmlDoc.parseError.errorCode <> 0) Then
   Dim myErr
   Set myErr = xmlDoc.parseError
   Response.Write("You have error " & myErr.reason)
Else

response.Write "<br>"&xmlDoc.getElementsByTagName("AUTHORIZATION").item(0).Text&"</br>"

 response.Write "<div>"
 Set objLst = xmlDoc.getElementsByTagName("AUTHORIZATION")
 cont = 0
 For i = 0 To objLst.Length - 1

        cont = cont+1
        if cont = 1 then
                response.Write "<ul>"
        end if
        if cont <= 3 then
                        CODRET = "<br>"&xmlDoc.getElementsByTagName("CODRET").item(i).Text&"</br>"
                        MSGRET = "<br>"&xmlDoc.getElementsByTagName("MSGRET").item(i).Text&"</br>"
                        NUMPEDIDO = "<br>"&xmlDoc.getElementsByTagName("NUMPEDIDO").item(i).Text&"</br>"
                        DATA = "<br>"&xmlDoc.getElementsByTagName("DATA").item(i).Text&"</br>"
                        NUMAUTOR = "<br>"&xmlDoc.getElementsByTagName("NUMAUTOR").item(i).Text&"</br>"
                        NUMCV = "<br>"&xmlDoc.getElementsByTagName("NUMCV").item(i).Text&"</br>"
                        NUMAUTENT = "<br>"&xmlDoc.getElementsByTagName("NUMAUTENT").item(i).Text&"</br>"
                        NUMSQN = "<br>"&xmlDoc.getElementsByTagName("NUMSQN").item(i).Text&"</br>"
                        ORIGEM_BIN = "<br>"&xmlDoc.getElementsByTagName("ORIGEM_BIN").item(i).Text&"</br>"
                        Response.Write "<li>"&CODRET&MSGRET&NUMPEDIDO&DATA&NUMAUTOR&NUMCV&NUMAUTENT&NUMSQN&ORIGEM_BIN&"</li>"
        else
                cont = 0
        end if
        if cont = 3 then
                cont = 0
                response.Write "</ul>"
                Response.Write "<div style=""clear:both""></div>"
        end if

 Next
 response.Write "</div>"
end if


%>

Agora preciso na mesma pagina Jogar os Ifs alguma ideia?

Compartilhar este post


Link para o post
Compartilhar em outros sites

faz as condições logo abaixo do

response.Write "</div>"

end if

dae você precisa implementar

a execucaun da sua acao

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.