<%If navegacaocompra = "fim" Then%>
|
<%Else%>
|
<%End if%>
<%
permissao="read"
page = "iniciatransacao"
readonly = "readonly"
If Request.form("acao") = "" Then
' Verifica se o pedido não está sendo refeito com outra forma de pagamento
If Session("novoPedido") = "yes" Then
' Resgata a forma de pagamento utilizada na última tentativa
forma_pagto = Pega_DadoBanco("Pedidos","forma_pagamento","sessionID","'"&Session("id_transacao")&"'")
' Zera as sessões
Session("novoPedido") = Empty
Session("resgistroPedido") = Empty
Session("resgistroPedidoItem") = Empty
Session("registrado") = Empty
Session("codigo_pedido") = Empty
End If
' Verifica se o número de parcelas está puro
If Instr(Request("dados_adicionais"),"|") = 0 And Len(Request("dados_adicionais")) <> 0 Then
' Atualiza o número de parcelas no XML do pedido
Call alteraValorAtrib(Application("DiretorioPedidos")&session("id_transacao")&".xml","dados_pedido","num_parcelas",Request("dados_adicionais"))
End If
'Resgata a forma de pagamento escolhida
sForma_pagamento = pegaValorAtrib(Application("DiretorioPedidos")&session("id_transacao")&".xml","dados_pedido","forma_pagamento")
' Verifica a forma de pagamento escolhida
If sForma_pagamento = "Amex" Or sForma_pagamento = "Mastercard" Or sForma_pagamento = "Diners" Or sForma_pagamento = "Visa" Then
' Pega a atual taxa do pedido, caso exista.
sTaxaPedido = Trim(pegaValorAtrib(Application("DiretorioPedidos")&session("id_transacao")&".xml","dados_pedido","tipo_taxa_adicional"))
' Verifica se o parcelado está disponível para essa forma de pagamento e se não há taxas já aplicadas ao pedido
If pegaValorAtrib(Application("XMLMeiosPagamentos"),"configuracao/pagto[@nome_pagto='"&sForma_pagamento&"']","permite_parcelamento") = "sim" And sTaxaPedido = "" Then
' Verifica o tipo de parcelado configurado para essa forma de pagamento
If pegaValorAtrib(Application("XMLMeiosPagamentos"),"configuracao/pagto[@nome_pagto='"&sForma_pagamento&"']","juros") = "lojista" Then ' Juros do Lojista
' Formata o número de parcelas(retira o zero à esquerda)
If Left(Request("dados_adicionais"),1) = "0" Then
nNumParcela = Right(Request("dados_adicionais"),1)
Else
nNumParcela = Request("dados_adicionais")
End If
' Resgata o tipo e valor da taxa da opção de parcelamento escolhida
sTipotaxa = pegaValorAtrib(Application("XMLMeiosPagamentos"),"configuracao/pagto[@nome_pagto='"&sForma_pagamento&"']","parc"&nNumParcela)
' Resgata o valor total do pedido
currTotalPedido = pegaValorAtrib(Application("DiretorioPedidos")&session("id_transacao")&".xml","dados_pedido","valor_total")
' Verifica o tipo de taxa utilizado no parcelamento escolhido
If sTipotaxa = "Desconto" Then ' Desconto
nValortaxa = pegaValorAtrib(Application("XMLMeiosPagamentos"),"configuracao/pagto[@nome_pagto='"&sForma_pagamento&"']","taxa_desconto")
currValorCalc = calculaValorTaxa(currTotalPedido,nValortaxa,"Desconto")
ElseIf sTipotaxa = "Com juros" Then ' Com Juros
nValortaxa = pegaValorAtrib(Application("XMLMeiosPagamentos"),"configuracao/pagto[@nome_pagto='"&sForma_pagamento&"']","taxa_juros")
currValorCalc = calculaValorTaxa(currTotalPedido,nValortaxa,"Acrescimo")
Else ' Sem Juros
nValortaxa = 0
End If
' Atualiza o valor total da transação no XML do pedido, caso necessário
If currValorCalc <> "" Then
Call alteraValorAtrib(Application("DiretorioPedidos")&session("id_transacao")&".xml","dados_pedido","valor_total",currValorCalc)
End If
' Atualiza no XML do pedido o tipo e taxa do parcelamento
Call alteraValorAtrib(Application("DiretorioPedidos")&session("id_transacao")&".xml","dados_pedido","tipo_taxa_adicional",sTipotaxa)
Call alteraValorAtrib(Application("DiretorioPedidos")&session("id_transacao")&".xml","dados_pedido","taxa_adicional",nValortaxa)
Else ' Juros do Emissor
' Atualiza no XML do pedido o tipo do parcelamento
Call alteraValorAtrib(Application("DiretorioPedidos")&session("id_transacao")&".xml","dados_pedido","tipo_taxa_adicional","Juros do Emissor")
End If
End If
End If
'Grava os dados do pedido no banco de dados
Call CarregaGrava_dados_pedido(session("id_transacao"), objXML, objRoot,VarAdicional)
End If
Set RS_pega_codigo = CreateObject("ADODB.Recordset")
Set RS_pega_codigo.ActiveConnection = Conexao
RS_pega_codigo.CursorLocation = 3
RS_pega_codigo.CursorType = 0
RS_pega_codigo.LockType = 1
RS_pega_codigo.Open "SELECT TOP 1 codigo_pedido FROM Pedidos WHERE sessionID = '" & session("id_transacao") & "' ORDER BY codigo_pedido DESC", Conexao
Session("codigo_pedido") = RS_pega_codigo("codigo_pedido")
RS_pega_codigo.Close
Set RS_pega_codigo = Nothing
%>
|
<%
'Abre conexao ao XML dos meios de pagto.
Call abre_ArquivoXML(Application("XMLMeiosPagamentos"),FctobjXML,FctobjRoot)
Set configuracao = FctobjRoot.selectSingleNode("configuracao/pagto[@nome_pagto='"&Session("forma_pagamento")&"']")
'Abre conexao ao XML do pedido.
Call abre_xmlpedido(session("id_transacao"), objXML, objRoot)
Set raiz_dados_pedido = objRoot.selectSingleNode("dados_pedido[@id_transacao="&session("id_transacao")&"]")
'Verifica a forma de pagamento escolhida
If Session("forma_pagamento") = "Visa" Then
'Verifica a solução definida para uso da transação (VBV ou MOSET).
If configuracao.getAttribute("VisanetTipo") = "MOSET" Then
varTXTtransacao = "Informe os dados de seu cartão Visa para prosseguir com a compra:"
Else
varTXTtransacao = Application("InitTxtAvisoAguardeVisa")
End If
Else
varTXTtransacao = Application("InitTxtAvisoAguardeVisa")
End If
%>
| <%= varTXTtransacao%> |
<%
' Opção de pagamento Boleto Bancário / Depósito / CobreBem / Unibanco
If Session("forma_pagamento") = "Boleto" Or Session("forma_pagamento") = "Deposito" Or Session("forma_pagamento") = "CobreBem" Or Session("forma_pagamento") = "Unibanco" Then
Response.redirect "recibo.asp?lang=" & varLang
' Opção de pagamento Visa
Elseif Session("forma_pagamento") = "Visa" Or Session("forma_pagamento") = "VisaElectron" Then
If Session("forma_pagamento") = "Visa" Then
If Request("dados_adicionais") = "01" Or Request("dados_adicionais") = "" Then
codigo_pagto = "10"
session("codigo_pagamento") = codigo_pagto & "01"
Else
' Verifica o tipo de juros configurado
If configuracao.getAttribute("juros") = "emissor" Then ' Juros do emissor
codigo_pagto = "30"
Else ' Juros do lojista
codigo_pagto = "20"
End If
session("codigo_pagamento") = codigo_pagto & Request("dados_adicionais")
End If
ElseIf Session("forma_pagamento") = "VisaElectron" Then
codigo_pagto = configuracao.getAttribute("VisanetCodPagamento")
session("codigo_pagamento") = codigo_pagto & "01"
End If
total = Replace(Replace(raiz_dados_pedido.getAttribute("valor_total"),",",""),".","")
'Verifica a solução definida para uso da transação (VBV ou MOSET).
If configuracao.getAttribute("VisanetTipo") = "VBV" Then
'Gerar TID -
'O primiero parâmetro se refere ao númeto de afiliação da loja junto à Visanet
'O segundo parâmetro se refere ao tipo de pagamento e o prazo
TID = GerarTid_VBV(configuracao.getAttribute("VisanetID"),session("codigo_pagamento"))
Set objSrvHTTP = Server.CreateObject("MSXML2.ServerXMLHTTP")
Set raiz_dados_pedido = objRoot.selectSingleNode("dados_pedido[@id_transacao="&session("id_transacao")&"]")
Set states = objXML.getElementsByTagName("dados_pedido[@id_transacao="&session("id_transacao")&"]/produto")
n_states = states.length
for i = 0 to (n_states - 1)
Set pagto = states.item(i)
vSplitCodPed = Split(pagto.getAttribute("codigo_produto"),"_")
varArrayCodPed = varArrayCodPed & vSplitCodPed(0) & ","
Set pagto = Nothing
next
raiz_dados_pedido.setAttribute "codigo_pedido",Session("codigo_pedido")
'Essa operação é necessária para salvar o c´dogio do pedido no arquivo XML desta transação.
objXML.save(Application("DiretorioPedidos")&session("id_transacao")&".xml")
Set states = Nothing
'Grava os dados iniciais da transação no banco de dados
Call GravaTransacaoInicialVisa(Session("codigo_pedido"),TID,total,TIPOCARTAO,Request("dados_adicionais"),codigo_pagto,"VBV")
If Trim(Session("razaosocial_cobranca")) <> "" Then
varOrder = Session("razaosocial_cobranca") & "|" & Session("cnpj_cobranca") & "|" & Session("inscricaoestadual_cobranca") & "|"
Else
varOrder = Session("nome_cobranca") & "|" & Session("rg_cobranca") & "|" & Session("cpf_cobranca") & "|"
End If
varOrder = varOrder & Session("logradouro_cobranca") & "," & Session("numero_cobranca") & "-" & Session("complemento_cobranca") & "|" & Session("cep_cobranca") & "|" & Session("cidade_cobranca") & "|" & Session("estado_cobranca") & "|" & Session("pais_cobranca") & "|CODPRO:" & mid(varArrayCodPed,1,LEN(varArrayCodPed)-1)
varOrder = mid(varOrder,1,1024)
'Monta os dados postados à operadora
valores = "PosicaoDadosVisanet=0"
valores = valores & "&identificacao=" & configuracao.getAttribute("IdentificacaoLocaweb")
valores = valores & "&modulo=" & configuracao.getAttribute("modulo")
valores = valores & "&ambiente=" & configuracao.getAttribute("ambiente")
valores = valores & "&visa_antipopup=" & configuracao.getAttribute("VisaNetAntiPopup")
valores = valores & "&tid=" & TID
valores = valores & "&price=" & total
valores = valores & "&language=" & Left(session("requestIdioma"),2)
valores = valores & "&order=" & varOrder
valores = valores & "&orderid=" & Session("codigo_pedido")
valores = valores & "&free=" & session("requestIdioma")
valores = valores & "&damount=R$" & raiz_dados_pedido.getAttribute("valor_total")
valores = valores & "&authenttype=" & configuracao.getAttribute("VisanetAuthentType")
objSrvHTTP.open "POST", Application("URLRecebeDadosVisaVBV"), False
objSrvHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
objSrvHTTP.send valores
If objSrvHTTP.Status = 200 Then
response.write objSrvHTTP.responseText
Else
Response.write "Error: (" & objSrvHTTP.Status & ") " & objSrvHTTP.statusText
End If
Set objSrvHTTP = Nothing
Else
'Verifica se houve a postagem dos dados do cartão pela loja
If Request.form("ccn") <> "" And Request.form("cvv2") <> "" Then
'Gerar TID -
'O primiero parâmetro se refere ao númeto de afiliação da loja junto à Visanet
'O segundo parâmetro se refere ao tipo de pagamento e o prazo
TID = GerarTid_MOSET(configuracao.getAttribute("VisanetID"),session("codigo_pagamento"))
Set objSrvHTTP = Server.CreateObject("MSXML2.ServerXMLHTTP")
Set raiz_dados_pedido = objRoot.selectSingleNode("dados_pedido[@id_transacao="&session("id_transacao")&"]")
Set states = objXML.getElementsByTagName("dados_pedido[@id_transacao="&session("id_transacao")&"]/produto")
n_states = states.length
for i = 0 to (n_states - 1)
Set pagto = states.item(i)
vSplitCodPed = Split(pagto.getAttribute("codigo_produto"),"_")
varArrayCodPed = varArrayCodPed & vSplitCodPed(0) & ","
Set pagto = Nothing
next
Set states = Nothing
If Request("dados_adicionais") = "" Then
NUMPARCELAS = "1"
Else
NUMPARCELAS = Request("dados_adicionais")
End If
'Grava os dados iniciais da transação no banco de dados
Call GravaTransacaoInicialVisa(Session("codigo_pedido"),TID,total,TIPOCARTAO,NUMPARCELAS,codigo_pagto,"MOSET")
If Trim(Session("razaosocial_cobranca")) <> "" Then
varOrder = Session("razaosocial_cobranca") & "|" & Session("cnpj_cobranca") & "|" & Session("inscricaoestadual_cobranca") & "|"
Else
varOrder = Session("nome_cobranca") & "|" & Session("rg_cobranca") & "|" & Session("cpf_cobranca") & "|"
End If
varOrder = varOrder & Session("logradouro_cobranca") & "," & Session("numero_cobranca") & "-" & Session("complemento_cobranca") & "|" & Session("cep_cobranca") & "|" & Session("cidade_cobranca") & "|" & Session("estado_cobranca") & "|" & Session("pais_cobranca") & "|CODPRO:" & mid(varArrayCodPed,1,LEN(varArrayCodPed)-1)
varOrder = mid(varOrder,1,1024)
varEXP = split(Request.form("exp"),"/")
varEXPfrmt = Trim(varEXP(1)) & Trim(varEXP(0))
'Monta os dados postados à operadora
valores = "PosicaoDadosVisanet=0"
valores = valores & "&ccn=" & Request.form("ccn")
valores = valores & "&exp=" & varEXPfrmt
valores = valores & "&cvv2=" & Request.form("cvv2")
valores = valores & "&tid=" & TID
valores = valores & "&price=" & total
valores = valores & "&order=" & varOrder
valores = valores & "&merchid=" & configuracao.getAttribute("UsuarioLocaweb")
valores = valores & "&free=" & session("requestIdioma")
objSrvHTTP.open "POST", Application("URLRecebeDadosVisaMOSET"), False
objSrvHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
objSrvHTTP.send valores
If objSrvHTTP.Status = 200 Then
response.write objSrvHTTP.responseText
Else
Response.write "Error: (" & objSrvHTTP.Status & ") " & objSrvHTTP.statusText
End If
Set objSrvHTTP = Nothing
Response.end
Else
%>
<%
End If
End if
' Opção de pagamento Redecard (Mastercard / Diners)
Elseif Session("forma_pagamento") = "Mastercard" Or Session("forma_pagamento") = "Diners" Then
If Request("dados_adicionais") = "01" Or Request("dados_adicionais") = "" Then
parcelas = "00"
juros = "0"
Else
parcelas = Request("dados_adicionais")
' Verifica a cobrança de juros
If configuracao.getAttribute("juros") = "emissor" Then ' Juros do Emissor
juros = "1"
Else ' Juros do lojista
juros = "0"
End If
End If
total = Replace(Replace(raiz_dados_pedido.getAttribute("valor_total"),",",""),".","")
'Grava os dados iniciais da transação no banco de dados
Call GravaTransacaoInicialRedecard(Session("codigo_pedido"),UCASE(Session("forma_pagamento")),parcelas,juros)
Set objSrvHTTP = Server.CreateObject("MSXML2.ServerXMLHTTP")
'Monta os dados postados à operadora
valores = "identificacao=" & configuracao.getAttribute("IdentificacaoLocaweb")
valores = valores & "&modulo=" & configuracao.getAttribute("modulo")
valores = valores & "&ambiente=" & configuracao.getAttribute("ambiente")
valores = valores & "&valor=" & total
valores = valores & "&pedido=" & Session("codigo_pedido")
valores = valores & "&pax1=" & session("requestIdioma")
If configuracao.getAttribute("RedeCardAVS") = "1" Then
valores = valores & "&AVS=S"
End if
valores = valores & "&parcelas=" & parcelas
valores = valores & "&juros=" & juros
valores = valores & "&BANDEIRA=" & UCASE(Session("forma_pagamento"))
valores = valores & "&RedecardIdioma=" & Left(session("requestIdioma"),2)
objSrvHTTP.open "POST", Application("URLRedecard"), False
objSrvHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
objSrvHTTP.send valores
If objSrvHTTP.Status = 200 Then
response.write objSrvHTTP.responseText
Else
Response.write "Error: (" & objSrvHTTP.Status & ") " & objSrvHTTP.statusText
End If
Set objSrvHTTP = Nothing
' Opção de pagamento BB Office Banking
Elseif Session("forma_pagamento") = "Brasil" Then
total = Replace(Replace(raiz_dados_pedido.getAttribute("valor_total"),",",""),".","")
data_inicio = CorrigeData(raiz_dados_pedido.getAttribute("inicio_transacao"))
vencimento = Formatdatetime(DateAdd("d", configuracao.getAttribute("BBDiasdeVencimento"), data_inicio), 2)
BBTipoPagamento = configuracao.getAttribute("BBTipoPagamento")
'Verifica se a variável é vazia e assume um valor padrão
If Trim(BBTipoPagamento) = "" Or IsNull(BBTipoPagamento) Then
BBTipoPagamento = "0"
End If
Set objSrvHTTP = Server.CreateObject("MSXML2.ServerXMLHTTP")
'Monta o endereço do sacado
varEnd = Session("logradouro_cobranca") & ", " & Session("numero_cobranca")
'Monta os dados postados à operadora
%>
<%
' Opção de pagamento Itau Shopline
Elseif Session("forma_pagamento") = "Itau" Then
total = Replace(Replace(raiz_dados_pedido.getAttribute("valor_total"),",",""),".","")
data_inicio = CorrigeData(raiz_dados_pedido.getAttribute("inicio_transacao"))
vencimento = Formatdatetime(DateAdd("d", configuracao.getAttribute("ItauDiasdeVencimento"), data_inicio), 2)
Set objSrvHTTP = Server.CreateObject("MSXML2.ServerXMLHTTP")
'Monta o endereço do sacado
varEnd = Session("logradouro_cobranca") & ", " & Session("numero_cobranca")
'Monta os dados postados à operadora
valores = "identificacao=" & configuracao.getAttribute("IdentificacaoLocaweb")
valores = valores & "&modulo=" & configuracao.getAttribute("modulo")
valores = valores & "&ambiente=" & configuracao.getAttribute("ambiente")
valores = valores & "&operacao=Pagamento"
valores = valores & "&pedido=" & Session("codigo_pedido")
valores = valores & "&valor=" & total
If Trim(Session("razaosocial_cobranca")) = "" Then
valores = valores & "&nome=" & Server.URLEncode(Session("nome_cobranca"))
valores = valores & "&cpfcgc=" & Session("cpf_cobranca")
Else
valores = valores & "&nome=" & Server.URLEncode(Session("razaosocial_cobranca"))
valores = valores & "&cpfcgc=" & Session("cnpj_cobranca")
End If
valores = valores & "&obs=" & Server.URLEncode(configuracao.getAttribute("OBSItau"))
valores = valores & "&endereco=" & Server.URLEncode(varEnd)
valores = valores & "&bairro=" & Server.URLEncode(Session("bairro_cobranca"))
valores = valores & "&cep=" & Session("cep_cobranca")
valores = valores & "&cidade=" & Server.URLEncode(Session("cidade_cobranca"))
valores = valores & "&estado=" & Session("estado_cobranca")
valores = valores & "&vencimento=" & vencimento
objSrvHTTP.open "POST", Application("URLItauShopline"), False
objSrvHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
objSrvHTTP.send valores
If objSrvHTTP.Status = 200 Then
response.write objSrvHTTP.responseText
Else
Response.write "Error: (" & objSrvHTTP.Status & ") " & objSrvHTTP.statusText
End If
Set objSrvHTTP = Nothing
' Opção de pagamento Amex
Elseif Session("forma_pagamento") = "Amex" Then
' Formata o numero de parcelas
If Request("dados_adicionais") = "01" Or Request("dados_adicionais") = "" Then
parcelas = "00"
Else
parcelas = Request("dados_adicionais")
End If
' Verifica a cobraça de juros
If configuracao.getAttribute("juros") = "emissor" Then ' Juros do Emissor
sTipoJuros = "PlanAmex"
Else ' Juros do lojista
sTipoJuros = "PlanN"
End If
total = Replace(Replace(raiz_dados_pedido.getAttribute("valor_total"),",",""),".","")
'Grava os dados iniciais da transação no banco de dados
Call GravaTransacaoInicialAmex(Session("codigo_pedido"),Request("dados_adicionais"),configuracao.getAttribute("AmexTipodeplano"))
%>
<%
' Opção de pagamento Bradesco
Elseif Session("forma_pagamento") = "Bradesco" Then
'Grava os dados iniciais da transação no banco de dados
Call GravaTransacaoInicialBradesco(Session("codigo_pedido"))
' Muda para a página de pagamento enviando dados da compra
' Os dados enviados são obrigatórios
VarMetodoPag = Request("metodo_pag")
' Redireciona a Scopus conforme a opção de pagamento selecionada
If VarMetodoPag = "TRANSFER" Then
If configuracao.getAttribute("ambiente") = "TESTE" Then
varURLBradescoTransfer = Application("URLTESTEBradescoTransfer")
Else
varURLBradescoTransfer = Application("URLPRODBradescoTransfer")
End If
' transferencia entre contas
Response.Redirect varURLBradescoTransfer & configuracao.getAttribute("BradescoLoja") & "/prepara_pagto.asp?merchantid=" & configuracao.getAttribute("BradescoLoja") & "&orderid=" & Session("codigo_pedido")
ElseIf VarMetodoPag = "CC" Then
If configuracao.getAttribute("ambiente") = "TESTE" Then
varURLBradescoPagFacil = Application("URLTESTEBradescoPagFacil")
Else
varURLBradescoPagFacil = Application("URLPRODBradescoPagFacil")
End If
' pagamento facil
Response.Redirect varURLBradescoPagFacil & configuracao.getAttribute("BradescoLoja") & "/prepara_pagto.asp?merchantid=" & configuracao.getAttribute("BradescoLoja") & "&orderid=" & Session("codigo_pedido")
ElseIf VarMetodoPag = "FINANCIAMENTO" Then
If configuracao.getAttribute("ambiente") = "TESTE" Then
varURLBradescoFinanciamento = Application("URLTESTEBradescoFinanciamento")
Else
varURLBradescoFinanciamento = Application("URLPRODBradescoFinanciamento")
End If
' financiamento
Response.Redirect varURLBradescoFinanciamento & configuracao.getAttribute("BradescoLoja") & "/prepara_pagto.asp?merchantid=" & configuracao.getAttribute("BradescoLoja") & "&orderid=" & Session("codigo_pedido")
End If
' Opção de pagamento ABNCDC
Elseif Session("forma_pagamento") = "ABNCDC" Then
'Resgata os valores adicionais e associa as respectivas variáveis
VARdados_adicionais = split(Request("dados_adicionais"),"|")
VARabn_formapgto = VARdados_adicionais(0)
VARabn_garantia = VARdados_adicionais(1)
VARabn_entrada = VARdados_adicionais(2)
VARabn_vencto = VARdados_adicionais(3)
%>
<%
End if
%>
|
<%
Set raiz_dados_pedido = Nothing
'Fecha conexao ao XML do pedido.
Call fecha_xmlpedido(session("id_transacao"))
'Fecha conexao ao XML dos meios de pagto.
Call fecha_ArquivoXML(Application("XMLMeiosPagamentos"),FctobjXML,FctobjRoot)
%>
|
<% IF Session("cep_entrega") <> "" THEN %>
| <%=Application("InitTxtTitDadosCobranca")%> |
<% ELSE %>
<%=Application("InitTxtTitDadosCobrancaEntrega")%> |
<% END IF %>
| <%Call Mostra_Endereco("cobranca")%> |
|
<% IF Session("cep_entrega") <> "" THEN %>
| <%=Application("InitTxtTitDadosEntrega")%> |
| <%Call Mostra_Endereco("entrega")%> |
|
<% END IF %>
|
|