<%@ 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" %>