%@ Language=VBScript %>
<%
'*************************************************************************
' DO NOT MODIFY THIS SCRIPT IF YOU WANT UPDATES TO WORK!
' Function : PayPal IPN handler. Updates order as required.
' Product : CandyPress Store Frontend
' Version : 2.5
' Modified : February 2004
' Copyright: Copyright (C) 2004 CandyPress.Com
' See "license.txt" for this product for details regarding
' licensing, usage, disclaimers, distribution and general
' copyright requirements. If you don't have a copy of this
' file, you may request one at webmaster@candypress.com
'*************************************************************************
Option explicit
Response.Buffer = true
%>
<%
'Work Fields
dim strReply
dim objHttp
dim httpStatus
dim httpResponseText
dim formattedDateTime
'Values sent by pag digital
dim cliente_nome
dim id_transacao
dim data_transacao
dim data_credito
dim valor_original
dim valor_loja
dim valor_total
dim tipo_pagamento
dim parcelas
dim status
dim id_pedido
dim item_number
dim token
dim post
dim enderecopost
dim customerEmail
'Database
dim mySQL
dim conntemp
dim rstemp
dim rstemp2
'Session
dim idOrder
dim idCust
'************************************************************************
'Open Database Connection
call openDb()
'Store Configuration
if loadConfig() = false then
call errorDB(langErrConfig,"")
end if
'Get a Date and Time formatted to the user's specifications
formattedDateTime = formatTheDate(currDateTime("DT",timeOffSet)) & " " & currDateTime("T",timeOffSet)
id_transacao = Request.Form("id_transacao")
id_pedido = Request.Form("id_pedido")
data_transacao = Request.Form("data_transacao")
data_credito = Request.Form("data_credito")
valor_original = Request.Form("valor_original")
valor_loja = Request.Form("valor_loja")
valor_total = Request.Form("valor_total")
parcelas = Request.Form("parcelas")
tipo_pagamento = URLDecode(Server.URLEncode(Request.Form("tipo_pagamento")))
status = URLDecode(Server.URLEncode(Request.Form("status")))
cliente_nome = URLDecode(Server.URLEncode(Request.Form("cliente_nome")))
if status = "TransaçãoemAndamento" Then
status = "Transação em Andamento"
end if
if status = "TransaçãoConcluída" Then
status = "Transação Concluída"
end if
if status = "TransaçãoCancelada" Then
status = "Transação Cancelada"
end if
if tipo_pagamento = "BoletoBancário" Then
tipo_pagamento = "Boleto Bancário"
end if
if tipo_pagamento = "AmericanExpress" Then
tipo_pagamento = "American Express"
end if
token = "25531212B1D1A567A4D2"
post = "?transacao=" & id_transacao
post = post & "&status=" & status
post = post & "&valor_original=" &valor_original
post = post & "&valor_loja=" & valor_loja
post = post & "&token=" & token
enderecoPost = "https://www.pagamentodigital.com.br/checkout/verify/" & post
Dim objXMLHTTP, xml
Set xml = Server.CreateObject("Microsoft.XMLHTTP")
xml.Open "POST", enderecoPost, False
xml.Send
'Aqui é a resposta do POST
If xml.responseText = "VERIFICADO" Then
Response.Write "Dados OK
"
item_number = Trim(Replace(id_pedido,Left(id_pedido,len(pOrderPrefix) + 1),""))
'Check the item_number and Order Status
if len(item_number) = 0 or not isNumeric(item_number) then
Response.Clear
Response.Write "PAGAMENTO DIGITAL : Id do pedido inválido."
Response.End
else
'Check that the order status is "Pending"
mySQL = "SELECT orderStatus " _
& "FROM cartHead " _
& "WHERE idOrder = " & validSQL(item_number,"I")
set rsTemp = openRSexecute(mySQL)
if rsTemp.eof then
Response.Clear
Response.Write "PAGAMENTO DIGITAL : O pedido não foi encontrado na loja."
Response.End
else
if rsTemp("orderStatus") <> "0" then
Response.Clear
Response.Write "PAGAMENTO DIGITAL : O status do pedido precisa estar PENDENTE."
Response.End
end if
end if
call closeRS(rsTemp)
end if
if parcelas = 0 OR parcelas = 1 OR parcelas = "" Then
parcelas = "À vista."
else
parcelas = parcelas & " vezes."
end if
if status = "Transação em Andamento" Then
call updOrderPrivate(item_number,"DATA : " & formattedDateTime & vbCrLf & "PAG DIGITAL : Status = " & status & vbCrLf & "Transação : " & id_transacao & vbCrLf & "Nº Parcelas : " & parcelas & vbCrLf & "FORMA PGTO : " & tipo_pagamento & vbCrLf & vbCrLf)
customerEmail = "Caro(a) vendedor(a),
Uma compra com PAGAMENTO DIGITAL acabou de acontecer e o status está como AGUARDANDO CONFIRMAÇÃO DE PAGAMENTO.
Para detalhes do pedido acesse a administração da loja.
Quando o status for alterado para PAGO poderá enviar o produto ao cliente.
Dados do pedido:
-----------------------------------------------------
Número do Pedido: " & id_pedido & " Transação " & id_transacao & "
Data do Pedido: " & formattedDateTime & "
Total Pago: " & pCurrencySign & moneyS(valor_original) & "
-----------------------------------------------------
Att,
" & pCompany
end if
if status = "Transação Concluída" Then
call updOrderStatus(item_number,"1","Y","Y","DATA : " & formattedDateTime & vbCrLf & "PAG DIGITAL : Status = " & status & vbCrLf & "Transação : " & id_transacao & vbCrLf & "Nº Parcelas : " & parcelas & vbCrLf & "FORMA PGTO : " & tipo_pagamento & vbCrLf & "Valor Total c/ juros : " & pCurrencySign & moneyS(valor_total) & vbCrLf & "Valor da Loja : " & pCurrencySign & moneyS(valor_loja) & vbCrLf & "Data do Crédito : " & data_credito & vbCrLf & vbCrLf)
customerEmail = "Caro(a) vendedor(a),
Uma compra com PAGAMENTO DIGITAL teve seu pagamento confirmado. Agora já pode entregar o produto com segurança.
Para detalhes do pedido acesse a administração da loja.
Dados do pedido:
-----------------------------------------------------
Número do Pedido: " & id_pedido & " Transação " & id_transacao & "
Data do Pedido: " & data_transacao & "
Total Pago: " & pCurrencySign & moneyS(valor_original) & "
Valor que a loja receberá: " & pCurrencySign & moneyS(valor_loja) & "
Data do crédito: " & data_credito & "
-----------------------------------------------------
Att,
" & pCompany
end if
if status = "Transação Cancelada" Then
call updOrderStatus(item_number,"9","Y","Y","DATA : " & formattedDateTime & vbCrLf & "PAG DIGITAL : Status = " & status & vbCrLf & vbCrLf)
customerEmail = "Caro(a) vendedor(a),
Uma compra com PAGAMENTO DIGITAL foi cancelada por algum erro nos dados do comprador, ou falta de crédito, fraude, etc.
Para detalhes do pedido acesse a administração da loja.
Dados do pedido:
-----------------------------------------------------
Número do Pedido: " & id_pedido & " Transação " & id_transacao & "
Data do Pedido: " & data_transacao & "
Total Pago: " & pCurrencySign & moneyS(valor_original) & "
-----------------------------------------------------
Att,
" & pCompany
end if
'Envia e-mail
call sendmail (pCompany, pEmailAdmin, pEmailSales, "PAG DIGITAL: Pedido nº: " & id_pedido, customerEmail, 1)
Else
Response.Write URLDecode(Server.URLEncode(xml.responseText))
End If
Set xml = Nothing
Function URLDecode(sConvert)
Dim aSplit
Dim sOutput
Dim I
If IsNull(sConvert) Then
URLDecode = ""
Exit Function
End If
' convert all pluses to spaces
sOutput = REPLACE(sConvert, "+", " ")
' next convert %hexdigits to the character
aSplit = Split(sOutput, "%")
If IsArray(aSplit) Then
sOutput = aSplit(0)
For I = 0 to UBound(aSplit) - 1
sOutput = sOutput & _
Chr("&H" & Left(aSplit(i + 1), 2)) &_
Right(aSplit(i + 1), Len(aSplit(i + 1)) - 2)
Next
End If
URLDecode = sOutput
End Function
'Close Database connection
call closeDB()
Response.Redirect "60_PayReturn.asp"
%>