% '-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# ' Loja Exemplo Locaweb ' Versão: 6.5 ' Data: 08/10/08 ' Arquivo: dados_compra_paggo.asp ' Versão do arquivo: 0.0 ' Data da ultima atualização: 13/10/08 ' '----------------------------------------------------------------------------- ' Licença Código Livre: http://comercio.Locaweb.com.br/gpl/gpl.txt '-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#- ' Aumento do TimeOut da página devido a necessidade de conexão com a Paggo Server.scripttimeout = 200 %> <% 'Verifica a existência de caracteres inválidos inclui neste caso palavras como UPDATE/DELETE/SELECT/ETC... Call Valida_Request() 'Carrega a configuração dos caminhos a serem usuados na Loja Call identifica_caminhos() If request("lang") <> "" Then Session("requestIdioma") = request("lang") varLang = Session("requestIdioma") End If 'Caso exista um cookie de algum pedido anterior o id_transacao será recriado a partir dele. If session("id_transacao") = "" And Request.Cookies(Application("NomeLoja"))("id_transacao") <> "" Then session("id_transacao") = Request.Cookies(Application("NomeLoja"))("id_transacao") session("user_id") = Request.Cookies(Application("NomeLoja"))("user_id") End if 'Se existir a id_transacao o idioma de exibição será capturado do arquivo do pedido If session("id_transacao") <> "" Then If VerificaExistenciaArquivo(Application("DiretorioPedidos")&session("id_transacao")&".xml") Then varLangUser = pegaValorAtrib(Application("DiretorioPedidos")&session("id_transacao")&".xml","dados_pedido","idioma") session("varLangUser") = varLangUser Else session("id_transacao") = "" session("varLangUser") = "" End If End If If varLangUser <> "" Then varLang = varLangUser Else varLang = Application("varLang") End if varSkin = "default" 'Assume a string dos idiomas configurados checkIdioma = Application("idiomasconfigurados") veIdiomas = Split(checkIdioma, ",") %> <% 'Verifica a existência de caracteres inválidos inclui neste caso palavras como UPDATE/DELETE/SELECT/ETC... Call Valida_Request() Response.Buffer = TRUE codigo_pedido = request("pedido") 'Abre conexão com o Banco de dados Call abre_conexao(Conexao) 'Abre conexao ao XML dos meios de pagto. forma_pagamento = "Paggo" Function Paggo() mensagemAdicional = "
" & Application("InitTxtInstrAlterarPedido") & " " & Application("InitTxtCliqueAqui") & "
" Call abre_ArquivoXML(Application("XMLMeiosPagamentos"),VarobjXML,VarobjRoot) Call abre_xmlpedido(session("id_transacao"), objXML, objRoot) Set raiz_dados_pedido = objRoot.selectSingleNode("dados_pedido[@id_transacao="&session("id_transacao")&"]") Set configuracao = VarobjRoot.selectSingleNode("configuracao/pagto[@nome_pagto='"&forma_pagamento&"']") Set objSrvHTTP = Server.CreateObject("MSXML2.ServerXMLHTTP") Set RS_dadosPaggo = CreateObject("ADODB.Recordset") Set RS_dadosPaggo.ActiveConnection = Conexao RS_dadosPaggo.CursorLocation = 3 RS_dadosPaggo.CursorType = 0 RS_dadosPaggo.LockType = 3 RS_dadosPaggo.Open "SELECT Transacao_Paggo.numeroCelular FROM Transacao_Paggo WHERE Transacao_Paggo.codigo_pedido = "&codigo_pedido&"", Conexao If Not RS_dadosPaggo.EOF Then If raiz_dados_pedido.getAttribute("num_parcelas") = "01" Or raiz_dados_pedido.getAttribute("num_parcelas") = "" Then parcelas = "01" codProcessoPaggo = "003000" Else parcelas = raiz_dados_pedido.getAttribute("num_parcelas") codProcessoPaggo = "003900" End If total = Replace(Replace(raiz_dados_pedido.getAttribute("valor_total"),",",""),".","") Set objHTTP = Server.Createobject("Dynu.HTTP") ' Especifica a URL para envio dos dados objHTTP.SetURL Application("URLPaggo") 'Monta os dados postados à operadora objHTTP.SetFormData "identificacao", EncodeUTF8(configuracao.getAttribute("IdentificacaoLocaweb")) objHTTP.SetFormData "modulo", EncodeUTF8(configuracao.getAttribute("modulo")) objHTTP.SetFormData "operacao", EncodeUTF8("Pagamento") objHTTP.SetFormData "ambiente", EncodeUTF8(configuracao.getAttribute("ambiente")) objHTTP.SetFormData "MobileNumber", EncodeUTF8(RS_dadosPaggo("numeroCelular")) objHTTP.SetFormData "TransactionValue", EncodeUTF8(total) objHTTP.SetFormData "ProcessingCode", EncodeUTF8(codProcessoPaggo) objHTTP.SetFormData "NumberOfInstallments", EncodeUTF8(parcelas) ' Altera o timeout de espera da resposta, caso necessário objHTTP.SetTimeout(200) Set objXmlDoc = Server.CreateObject("MSXML2.DOMDocument") objXmlDoc.loadXML(objHTTP.PostURL()) ' Verificando se o retorno foi bem sucedido If TypeName(objXmlDoc) = "DOMDocument" Then ' Recupera os parâmetros e dá valores a variáveis para serm usadas na página erro = objXmlDoc.selectSingleNode("//LocaWebCE//erro").text erro = DecodeUTF8(erro) origemErro = objXmlDoc.selectSingleNode("//LocaWebCE//origemErro").text ' Se não ocorreu erro recupera parâmetros If erro = "" Then ' Resgata os dados de retorno da transação idReqLocaWeb = objXmlDoc.selectSingleNode("//LocaWebCE//idReqLocaWeb").text operacao = objXmlDoc.selectSingleNode("//LocaWebCE//operacao").text mensagem = objXmlDoc.selectSingleNode("//LocaWebCE//mensagem").text mensagem = DecodeUTF8(mensagem) codResposta = objXmlDoc.selectSingleNode("//LocaWebCE//codResposta").text merchantIdentification = objXmlDoc.selectSingleNode("//LocaWebCE//merchantIdentification").text nsuPaggo = objXmlDoc.selectSingleNode("//LocaWebCE//nsuPaggo").text 'Grava os dados finais da transação no banco de dados Call GravaTransacaoFinalPaggo(codigo_pedido, merchantIdentification, idReqLocaWeb, codResposta, mensagem, nsuPaggo) %> <% Else Response.write "Erro: " & erro & "Erro: " & erro & "
Origem do erro: " & origemErro & "
" & Application("DadosPaggoTxtPedNaoLoc") & "
" & mensagemAdicional %> <% End If Set objXmlDoc = Nothing Set objHTTP = Nothing Set raiz_dados_pedido = Nothing Set configuracao = Nothing Call fecha_xmlpedido(session("id_transacao")) Call fecha_ArquivoXML(Application("XMLMeiosPagamentos"),VarobjXML,VarobjRoot) End Function %>
|
||||||