<% on error resume next '---------- Testing ------------ 'test: http://www.eliteweaver.co.uk/testing/ipntest.php 'Set objMail = server.CreateObject("CDONTS.Newmail") 'objMail.importance = lngImportance 'objMail.Send "admin@hitsnapper.com", "admin@hitsnapper.com", "PayPal POST to IPN", Request.Form 'Set objMail = Nothing '---------- Testing ------------ lngImportance = 1 str = Request.Form str = str & "&cmd=_notify-validate" Txn_id = Request.Form("txn_id") Payment_status = Request.Form("payment_status") item_number = request("item_number") item_name = request("item_name") payer_email = request("payer_email") 'Get customers ID and Referrers ID strArray = split(request("custom"),"/",2,1) lngRegisterID = strArray(0) lngRefID = strArray(1) if lngRefID = "" then lngRefID = "0" if lngRegisterID = "" then lngRegisterID = GetField("ID","Register","email=" & payer_email) if lngRegisterID = "" then lngRegisterID = GetField("ID","Register","paypal_email=" & payer_email) if lngRegisterID = "" then lngRegisterID = 57962 end if end if end if lngRegisterID = clng(lngRegisterID) lngRefID = clng(lngRefID) dblAmount = cdbl(request("payment_gross"))-cdbl(request("payment_fee")) 'rem for testing. set objHttp = Server.CreateObject("Msxml2.ServerXMLHTTP") objHttp.open "POST", "https://www.paypal.com/cgi-bin/webscr", false objHttp.Send str ' Check notification validation if (objHttp.status <> 200 ) then ' HTTP error handling lngImportance = 2 strSubject = "HTTP Error Status 200" elseif (objHttp.responseText = "VERIFIED") then ' process payment ' add to database set rs=createobject("ADODB.Recordset") rs.Open "transactions", MyDSN, adUseClient, adOpenDynamic rs.AddNew for each fd in request.form if lcase(fd) <> "id" and lcase(fd) <> "registerid" then rs(fd) = request(fd) end if next rs("invoice") = rs("txn_id") rs("RegisterID") = lngRegisterID rs.Update set rs = nothing 'Get product info ---------------------------------------------------------------------------- set rsProducts = Server.CreateObject("ADODB.Recordset") SQL = "SELECT item_number, product_name, product_qty From Products WHERE Item_Number = " & request("item_Number") rsProducts.Open SQL, myDSN, adUseClient,adOpenDynamic product_url = "http://spambat.com/ipn/dl.asp?dl_id=" & rsProducts("Item_Number") product_name = rsProducts("Product_Name") product_qty = rsProducts("Product_Qty") set rsProducts = Nothing 'open connection for executions... set cn = createobject("ADODB.Connection") cn.open myDSN SQL = "UPDATE Register SET isRegistered=1,license_count=license_count+" & product_qty & _ ",paypal_email=" & SQLString(payer_email) & ",RefID=" & lngRefID & " " & _ "WHERE ID=" & lngRegisterID cn.Execute SQL set cn=nothing strSubject = "Successful spamBat IPN from PayPal (" & request("txn_type") & ")" elseif (objHttp.responseText = "INVALID") then ' possible fraud lngImportance = 2 strSubject = "Possible Fraud" else ' error lngImportance = 2 strSubject = "General Error: " & objHttp.responseText end if for each fd in request.form strMessage = strMessage & fd & "=" & request(fd) & vbcrlf Next Set objMail = server.CreateObject("CDONTS.Newmail") objMail.importance = lngImportance objMail.Send "admin@spambat.com", "admin@spambat.com", strSubject, strMessage Set objMail = Nothing '--------------------------------------------------------------- ' NOW SEND MESSAGE TO NEW SPAMBAT OWNER WITH SERIAL INFORMATION '--------------------------------------------------------------- SQL = "SELECT ID, name, license_count, email FROM Register WHERE ID=" & lngRegisterID set rsReg = CreateObject("ADODB.Recordset") rsReg.Open SQL, myDSN, adUseClient, adOpenDynamic strSerial = "280503-" & rsReg("ID") & "-" & rsReg("license_count") strEmailTo = rsReg("email") strName = rsReg("name") strRefUrl = "http://spambat.com/?r=" & rsReg("ID") set rsReg = Nothing if payment_status = "Completed" then strMessage = GetFileContents(server.mappath("newcustomer.txt")) strSubject = "[NAME], Thank you for your purchase." strSubject = replace(strSubject,"[NAME]",strName,1,-1,1) elseif payment_status = "Pending" then strMessage = GetFileContents(server.mappath("newpending.txt")) strSubject = "[NAME], Thank you for your purchase." strSubject = replace(strSubject,"[NAME]",strName,1,-1,1) elseif payment_status = "Refund" then strMessage = GetFileContents(server.mappath("refundmsg.txt")) strSubject = "[NAME], Thank you for trying spamBat" strSubject = replace(strSubject,"[NAME]",strName,1,-1,1) end if strMessage = replace(strMessage,"[NAME]",strName,1,-1,1) strMessage = replace(strMessage,"[SERIAL]",strSerial,1,-1,1) strMessage = replace(strMessage,"[EMAIL]",strEmailTo,1,-1,1) strMessage = replace(strMessage,"[REF_URL]",strRefUrl,1,-1,1) strMessage = replace(strMessage,"[DOWNLOAD_URL]",product_url,1,-1,1) strMessage = replace(strMessage,"[PRODUCT_NAME]",product_name,1,-1,1) strMessage = replace(strMessage,"[PRODUCT_QTY]",product_qty,1,-1,1) Set objMail = server.CreateObject("CDONTS.Newmail") objMail.importance = 1 objMail.Send "admin@spambat.com", strEmailTo, strSubject, strMessage Set objMail = Nothing %>