<% On Error Resume Next Dim strLog, strAlternateShippingInfo, strCustNumber, strOrderNumber, date_now, strSubject, strBody, strBody2 Dim strFName, strMName, strLName date_now = FormatDateTime(Date,2) Const adOpenKeyset = 1 Const adLockOptimistic = 3 'Start Transaction Log File strLog = "Receiving POST Data from PayPal..." 'Entire form post string gets returned to paypal with appended info. Dim strForm strForm = Request.Form 'Basic Information Dim business business = Request.Form("business") Dim receiver_email receiver_email = Request.Form("receiver_email") Dim receiver_id receiver_id = Request.Form("receiver_id") Dim item_name item_name = Request.Form("item_name") Dim item_number item_number = Request.Form("item_number") Dim quantity quantity = Request.Form("quantity") 'Advanced and Custom Information Dim invoice invoice = Request.Form("invoice") Dim custom custom = Request.Form("custom") Dim tax tax = Request.Form("tax") If isNumeric(tax) Then Else tax = 0 End If If tax = "" Then tax = 0 End If 'Transaction Information Dim payment_status payment_status = Request.Form("payment_status") Dim pending_reason pending_reason = Request.Form("pending_reason") Dim reason_code reason_code = Request.Form("reason_code") Dim payment_date payment_date = Request.Form("payment_date") Dim txn_id txn_id = Request.Form("txn_id") Dim parent_txn_id parent_txn_id = Request.Form("parent_txn_id") Dim txn_type txn_type = Request.Form("txn_type") Dim payment_type payment_type = Request.Form("payment_type") 'Currency Shipping and Exchange Information Dim shipping shipping = Request.Form("shipping") If isNumeric(shipping) Then Else shipping = 0 End If If shipping = "" Then shipping = 0 End If Dim mc_gross mc_gross = Request.Form("mc_gross") If mc_gross = "" Then mc_gross = 0 End If Dim mc_fee mc_fee = Request.Form("mc_fee") If mc_fee = "" Then mc_fee = 0 End If Dim payment_gross payment_gross = Request.Form("payment_gross") If payment_gross = "" Then payment_gross = 0 End If Dim mc_currency mc_currency = Request.Form("mc_currency") Dim settle_amount settle_amount = Request.Form("settle_amount") Dim settle_currency settle_currency = Request.Form("settle_currency") Dim exchange_rate exchange_rate = Request.Form("exchange_rate") 'Auction Information Dim for_auction for_auction = Request.Form("for_auction") Dim auction_buyer_id auction_buyer_id = Request.Form("auction_buyer_id") Dim auction_closing_date auction_closing_date = Request.Form("auction_closing_date") Dim auction_multi_item auction_multi_item = Request.Form("auction_multi_item") 'Buyer Information Dim first_name first_name = Request.Form("first_name") Dim last_name last_name = Request.Form("last_name") Dim payer_business_name payer_business_name = Request.Form("payer_business_name") Dim address_name address_name = Request.Form("address_name") Dim address_street address_street = Request.Form("address_street") Dim address_city address_city = Request.Form("address_city") Dim address_state address_state = Request.Form("address_state") Dim address_zip address_zip = Request.Form("address_zip") Dim address_country address_country = Request.Form("address_country") Dim address_country_code address_country_code = Request.Form("address_country_code") Dim address_status address_status = Request.Form("address_status") Dim payer_email payer_email = Request.Form("payer_email") Dim payer_id payer_id = Request.Form("payer_id") Dim payer_status payer_status = Request.Form("payer_status") 'IPN Information Dim notify_version notify_version = Request.Form("notify_version") 'Security Information Dim verify_sign verify_sign = Request.Form("verify_sign") Dim strCustomVals, strYes, strCartId, strCartTotal, strTaxTotal, strShipping, strDisclaimer, strIp, _ strShipAlternate, strShipFName, strShipLName, strShipCoName, strShipAddress, strShipAddress2, _ strShipCity, strShipState, strShipZipCode, strShipCountryCode, strShipCountry, strShippingType, strShippingMethod If inStr(custom,"Yes") Or inStr(custom,"No") Then strCustomVals = split(custom, ":", -1) strYes = strCustomVals(0) strCartId = strCustomVals(1) strCustNumber = strCustomVals(2) strCartTotal = strCustomVals(3) strTaxTotal = strCustomVals(4) strShipping = strCustomVals(5) strDisclaimer = strCustomVals(6) strIp = strCustomVals(7) strShipAlternate = strCustomVals(8) strShipFName = strCustomVals(9) strShipLName = strCustomVals(10) strShipCoName = strCustomVals(11) strShipAddress = strCustomVals(12) strShipAddress2 = strCustomVals(13) strShipCity = strCustomVals(14) strShipState = strCustomVals(15) strShipZipCode = strCustomVals(16) strShipCountry = strCustomVals(17) strShipCountryCode = strCustomVals(18) strShippingType = strCustomVals(19) strShippingMethod = strCustomVals(20) End If If (strShipAlternate = "Yes") Then strAlternateShippingInfo = "========Alternate Shipping Information========" & vbCrLf & vbCrLf &_ "Ship to Alternate Address: " & strShipAlternate & vbCrLf &_ "Name: " & strShipFName & " " & strShipLName & vbCrLf &_ "Company Name: " & strShipCoName & vbCrLf &_ "Address: " & strShipAddress & vbCrLf &_ "Address2: " & strShipAddress2 & vbCrLf &_ "City: " & strShipCity & vbCrLf &_ "State: " & strShipState & vbCrLf &_ "Postal Code: " & strShipZipCode & vbCrLf &_ "Country: " & strShipCountry & vbCrLf Else strAlternateShippingInfo = "" End If If IsNumeric(strCartTotal) Then Else strCartTotal = 0 End If If IsNumeric(strTaxTotal) Then Else strTaxTotal = 0 End If If IsNumeric(strShipping) Then Else strShipping = 0 End If strLog = strLog & vbCrLf & "All variables have been dimensionalized..." strLog = strLog & vbCrLf & "Sending POST data back to PayPal for verification..." DIM xmlhttp, xmlResponseText, xmlStatus strForm = strForm & "&cmd=_notify-validate" set xmlhttp = CreateObject("MSXML2.ServerXMLHTTP") xmlhttp.open "POST", "https://www.paypal.com/cgi-bin/webscr", false On Error Resume Next xmlhttp.send (strForm) xmlResponseText = xmlhttp.responseText xmlStatus = xmlhttp.Status 'xmlResponseText = "VERIFIED" 'xmlStatus = "200" If xmlStatus = 200 Then strLog = strLog & vbCrLf & "XML Response Text and Status Code: " & xmlResponseText & " " & xmlStatus Else strLog = strLog & vbCrLf & "XML Response Test did not equal 200. Status: " & xmlResponseText & " " & xmlStatus End If If xmlResponseText <> "VERIFIED" Then strLog = strLog & vbCrLf & "This transaction was NOT verified by PayPal. This transaction may not have originated from PayPal. Investigate transaction from PayPal web site. Response: " & xmlResponseText Else strLog = strLog & vbCrLf & "The Post Back Data was VERIFIED by PayPal. This is a valid PayPal order..." End If 'Check to see if this order has been previousely added to the database. 'PayPal will repost the transaction if it does not receive a VERIFIED 200 response from your web server. On Error Resume Next DIM mySQL3, objRS3 Set objRS3 = Server.CreateObject("ADODB.Recordset") mySQL3 = "SELECT * FROM Orders Where TransId = '" & txn_id & "'" objRS3.Open mySQL3, objConn If objRS3.EOF Then If payment_status = "Completed" Then strLog = strLog & vbCrLf & "Order Completed by PayPal..." strLog = strLog & vbCrLf & "Creating Order Number..." 'Get order number DIM objRS6 Set objRS6 = Server.CreateObject("ADODB.Recordset") objRS6.Open "Orders", objConn, 1, 3 If Not objRS6.EOF Then objRS6.MoveLast strOrderNumber = objRS6("OrderNumber") + 1 Else strOrderNumber = 1000000001 End If strLog = strLog & vbCrLf & "Order Number Created..." strLog = strLog & vbCrLf & "Retrieving customer account info from database..." DIM mySQL7, objRS7 mySQL7 = "SELECT * FROM Customers Where CustNumber = "& strCustNumber &"" Set objRS7 = Server.CreateObject("ADODB.Recordset") objRS7.Open mySQL7, objConn ' Cust Account info strFName = objRS7("FName") strMName = objRS7("MName") strLName = objRS7("LName") DIM strCoName strCoName = objRS7("CoName") DIM strEmail strEmail = objRS7("Email") Dim strAddress strAddress = objRS7("Address") Dim strAddress2 strAddress2 = objRS7("Address2") Dim strCity strCity = objRS7("City") Dim strState strState = objRS7("State") Dim strZipCode strZipCode = objRS7("ZipCode") Dim strCountry strCountry = objRS7("Country") Dim strCountryCode strCountryCode = objRS7("CountryCode") Dim strAreaCode strAreaCode = objRS7("AreaCode") Dim strPhoneEx strPhoneEx = objRS7("PhoneEx") Dim strPhoneNum strPhoneNum = objRS7("PhoneNum") Dim strAreaCode2 strAreaCode2 = objRS7("AreaCode2") Dim strPhoneEx2 strPhoneEx2 = objRS7("PhoneEx2") Dim strPhoneNum2 strPhoneNum2 = objRS7("PhoneNum2") Dim strInternationalPhone strInternationalPhone = objRS7("InternationalPhone") strLog = strLog & vbCrLf & "Customer Account Info Retrieved..." strLog = strLog & vbCrLf & "Preparing to add order items to the database..." DIM mySQL8, objRS8 Set objRS8 = Server.CreateObject("ADODB.Recordset") mySQL8 = "SELECT * FROM Cart Where CartId ='"& strCartId & "'" objRS8.Open mySQL8, objConn DIM objRS9 Set objRS9 = Server.CreateObject("ADODB.Recordset") objRS9.Open "OrderItems", objConn, 1, 3 DIM strItemNum DIM strDescription Dim strDownload Dim strFileName DIM strOpt1 DIM strOpt2 DIM strOpt3 DIM strQuantity DIM strPrice DIM strItemTotal Dim strNotes Do strItemNum = objRS8("ItemNum") strDescription = objRS8("Description") strDownload = objRS8("Download") strFileName = objRS8("FileName") If objRS8("Opt1") = "0" Then strOpt1 = "" Else strOpt1 = objRS8("Opt1") End If If objRS8("Opt2") = "0" Then strOpt2 = "" Else strOpt2 = objRS8("Opt2") End If If objRS8("Opt3") = "0" Then strOpt3 = "" Else strOpt3 = objRS8("Opt3") End If strQuantity = objRS8("Quantity") strPrice = objRS8("Price") strItemTotal = objRS8("ItemTotal") strNotes = objRS8("Notes") objRS9.AddNew objRS9("OrderNumber") = strOrderNumber objRS9("CustNumber") = strCustNumber objRS9("ItemNum") = strItemNum objRS9("Description") = strDescription objRS9("Download") = strDownload objRS9("FileName") = strFileName objRS9("Opt1") = strOpt1 objRS9("Opt2") = strOpt2 objRS9("Opt3") = strOpt3 objRS9("Quantity") = strQuantity objRS9("Price") = strPrice objRS9("ItemTotal") = strItemTotal objRS9("Notes") = strNotes objRS9.Update objRS8.MoveNext Loop Until objRS8.EOF strLog = strLog & vbCrLf & "Items added to the database..." strLog = strLog & vbCrLf & "Preparing to add order details to the database..." DIM objRS10 Set objRS10 = Server.CreateObject("ADODB.Recordset") objRS10.Open "Orders", objConn, 1, 3 objRS10.AddNew objRS10("OrderNumber") = strOrderNumber objRS10("CustNumber") = strCustNumber objRS10("CartId") = strCartId objRS10("FName") = strFName objRS10("MName") = strMName objRS10("LName") = strLName objRS10("CoName") = strCoName objRS10("Address") = strAddress objRS10("Address2") = strAddress2 objRS10("City") = strCity objRS10("State") = strState objRS10("ZipCode") = strZipCode objRS10("Country") = strCountry objRS10("CountryCode") = strCountryCode objRS10("Email") = strEmail objRS10("AreaCode") = strAreaCode objRS10("PhoneEx") = strPhoneEx objRS10("PhoneNum") = strPhoneNum objRS10("AreaCode2") = strAreaCode2 objRS10("PhoneEx2") = strPhoneEx2 objRS10("PhoneNum2") = strPhoneNum2 objRS10("InternationalPhone") = strInternationalPhone objRS10("ShipAlternate") = strShipAlternate objRS10("ShippingMethod") = strShippingMethod objRS10("ShippingType") = strShippingType objRS10("ShipFName") = strShipFName objRS10("ShipLName") = strShipLName objRS10("ShipCoName") = strShipCoName objRS10("ShipAddress") = strShipAddress objRS10("ShipAddress2") = strShipAddress2 objRS10("ShipCity") = strShipCity objRS10("ShipState") = strShipState objRS10("ShipZipCode") = strShipZipCode objRS10("ShipCountry") = strShipCountry objRS10("ShipCountryCode") = strShipCountryCode objRS10("HostIp") = strIp objRS10("Disclaimer") = strDisclaimer objRS10("CCApproval") = payment_status objRS10("TransId") = txn_id objRS10("CartTotal") = strCartTotal objRS10("TaxTotal") = strTaxTotal objRS10("ShippingCost") = strShipping objRS10("OrderTotal") = mc_gross objRS10("Shipped") = "No" objRS10.Update strLog = strLog & vbCrLf & "Order has been added to the database..." strLog = strLog & vbCrLf & "Preparing to send customer order email..." DIM mySQL11, objRS11 Set objRS11 = Server.CreateObject("ADODB.Recordset") mySQL11 = "SELECT * FROM Cart Where CartId ='"& strCartId & "'" objRS11.Open mySQL11, objConn Dim strItems Do While Not objRS11.EOF strItemNum = objRS11("ItemNum") strDescription = objRS11("Description") strOpt1 = objRS11("Opt1") strOpt2 = objRS11("Opt2") strOpt3 = objRS11("Opt3") strQuantity = objRS11("Quantity") strNotes = objRS11("Notes") strPrice = FormatCurrency(objRS11("Price")) strItemTotal = FormatCurrency(objRS11("ItemTotal")) strItems = (strItems & strQuantity & " - " & strItemNum & " - " & strDescription & " - " & strOpt1 & " " & strOpt2 & " " & strOpt3 & " - " & strPrice & " - " & strItemTotal & vbCrLf & strNotes & vbCrLf) objRS11.MoveNext Loop ' Format as currency for the email. Dim strMailCartTotal strMailCartTotal = strCurrencySymbol & FormatNumber(strCartTotal,2) Dim strMailTaxTotal strMailTaxTotal = strCurrencySymbol & FormatNumber(strTaxTotal,2) Dim strMailShipping strMailShipping = strCurrencySymbol & FormatNumber(strShipping,2) Dim strMailOrderTotal strMailOrderTotal = strCurrencySymbol & FormatNumber(mc_gross,2) strBody = vbCrLf & "==== Customer Information ====" & vbCrLf & vbCrLf & _ strFName & " " & strMName & " " & strLName & vbCrLf & _ strCoName & vbCrLf & _ strAddress & vbCrLf & _ strAddress2 & vbCrLf & _ strCity & ", " & strState & " " & strZipCode & " " & strCountry & vbCrLf & vbCrLf & _ "Phone: " & strAreaCode &"-"& strPhoneEx &"-"& strPhoneNum & vbCrLf & _ "Phone2: " & strAreaCode2 &"-"& strPhoneEx2 &"-"& strPhoneNum2 & vbCrLf & _ "International Phone: " & strInternationalPhone & vbCrLf & vbCrLf & _ "Email: " & strEmail & vbCrLf & vbCrLf & _ strAlternateShippingInfo & _ "========== Order Information ========== " & vbCrLf & vbCrLf &_ "Order Number: " & strOrderNumber & vbCrLf & vbCrLf & _ "Payment Type: PayPal" & vbCrLf & vbCrLf & _ "Approval Status: " & payment_status & vbCrLf & vbCrLf & _ "Transaction ID: " & txn_id & vbCrLf & vbCrLf & _ "Quantity - Item Number - Description - Options - Price - Item Total" & vbCrLf & vbCrLf &_ strItems & vbCrLf & vbCrLf &_ "Sub Total: " & strMailCartTotal & vbCrLf &_ "Tax: " & strMailTaxTotal & vbCrLf &_ "Shipping: " & strMailShipping & " " & strShippingMethod & " " & strShippingType & vbCrLf &_ "Order Total: " & strMailOrderTotal DIM Mail 'Persits Mail control Dim objCDOMail 'CDONTS Mail control Dim cdoMail 'CDOSYS Mail Control If strEmailComponent = "Persits" Then Set Mail = Server.CreateObject("Persits.MailSender") Mail.Host = strMailServer Mail.Username = strCoEmail Mail.Password = strEmailPWD Mail.From = strCoEmail Mail.AddAddress strEmail 'Mail.AddCC strCoEmail Mail.Subject = "Order " & strOrderNumber & " " & strMyCoName Mail.Body = strBody On Error Resume Next Mail.Send Set Mail = Nothing IF Err <> 0 THEN Response.Write "There has been an error and your message could not be sent through email." & Err.Description END IF ElseIf strEmailComponent = "CDOSYS" Then Set cdoMail = Server.CreateObject("CDO.Message") cdoMail.From = strCoEmail cdoMail.To = strEmail cdoMail.Subject = "Order " & strOrderNumber & " " & strMyCoName cdoMail.TextBody = strBody On Error Resume Next cdoMail.Send() IF Err <> 0 THEN Response.Write "There has been an error and your message could not be sent through the CDOSYS Email." & Err.Description END IF Set cdoMail = Nothing ElseIf strEmailComponent = "CDONTS" Then Set objCDOMail = Server.CreateObject("CDONTS.NewMail") objCDOMail.From = strCoEmail objCDOMail.To = strEmail 'objCDOMail.Cc = strCoEmail objCDOMail.Subject = "Order " & strOrderNumber & " " & strMyCoName 'objCDOMail.BodyFormat = 0 'objCDOMail.MailFormat = 0 objCDOMail.Body = strBody objCDOMail.Importance = 1 On Error Resume Next objCDOMail.Send Set objCDOMail = Nothing IF Err <> 0 THEN Response.Write "There has been an error and your message could not be sent through email." & Err.Description END IF Else End If strLog = strLog & vbCrLf & "Order eMail has been sent to the customer..." strLog = strLog & vbCrLf & "Clearing Customer Shopping Cart..." ' Empty Cart objConn.Execute "Delete From Cart where CartId='" & strCartId & "'" strSubject = "Order " & strOrderNumber & " " & strMyCoName Else strLog = strLog & vbCrLf & "Transaction was not Completed. Payment Staus: " & payment_status & " Reason Code: " & reason_code strSubject = "Transaction NOT Completed. " & payment_status 'End if payment status equals completed End If 'End Check to see if txn id exists. Else strLog = strLog & vbCrLf & "PayPal sent a re-post of the same order" strSubject = "Transaction ID Found in DB. PayPal Re-post. " & txn_id End If strLog = strLog & vbCrLf & "Sending Transaction Email... End of Log" strBody2 = vbCrLf &_ "======== Business and Transaction Information======== " & vbCrLf & vbCrLf &_ "Business Email: " & business & vbCrLf &_ "Receiver ID: " & receiver_id & vbCrLf &_ "Item Name: " & item_name & vbCrLf &_ "Quantity: " & quantity & vbCrLf &_ "Invoice: " & invoice & vbCrLf &_ "Tax: " & tax & vbCrLf &_ "Payment Status: " & payment_status & vbCrLf &_ "Pending Reason: " & pending_reason & vbCrLf &_ "Reason Code: " & reason_code & vbCrLf &_ "Payment Date: " & payment_date & vbCrLf &_ "Transaction Id: " & txn_id & vbCrLf &_ "Transaction Type: " & txn_type & vbCrLf &_ "Payment Type: " & payment_type & vbCrLf &_ "MC Gross: " & mc_gross & vbCrLf &_ "MC Fee: " & mc_fee & vbCrLf &_ "Payment Gross: " & payment_gross & vbCrLf &_ "MC Currency: " & mc_currency & vbCrLf &_ "Settle Amount: " & settle_amount & vbCrLf &_ "Settle Currency: " & settle_currency & vbCrLf &_ "Exchange Rate: " & exchange_rate & vbCrLf & vbCrLf &_ "======== Customer Information ========" & vbCrLf & vbCrLf &_ "Customer Number: " & strCustNumber & vbCrLf & vbCrLf &_ "Order Number: " & strOrderNumber & vbCrLf & vbCrLf &_ "Name: " & strFName & " " & strLName & vbCrLf &_ "Customer Business Name: " & strCoName & vbCrLf &_ "Street Address: " & strAddress & vbCrLf &_ "Address 2: " & strAddress2 & vbCrLf &_ "City: " & strCity & vbCrLf &_ "State: " & strState & vbCrLf &_ "Postal Code: " & strZipCode & vbCrLf &_ "Country: " & strCountry & vbCrLf &_ "Customer Email: " & strEmail & vbCrLf &_ "PayPal Customer Id: " & payer_id & vbCrLf &_ "PayPal Customer Status: " & payer_status & vbCrLf & vbCrLf &_ strAlternateShippingInfo &_ "======== Items Purchased ========" & vbCrLf & vbCrLf &_ "Quantity ---- Item Number ---- Description ---- Options ---- Price ---- Item Total" & vbCrLf & vbCrLf &_ strItems & vbCrLf & vbCrLf &_ "Sub Total: " & strMailCartTotal & vbCrLf &_ "Tax: " & strMailTaxTotal & vbCrLf &_ "Shipping: " & strMailShipping & " " & strShippingMethod & " " & strShippingType & vbCrLf &_ "Order Total: " & strMailOrderTotal & vbCrLf & vbCrLf &_ "======== Transaction Log Information ========" & vbCrLf & vbCrLf &_ "Transaction Log: " & strLog & vbCrLf & vbCrLf 'Body for SMS Dim strBody3 strBody3 = strFName & " " & strLName & vbCrLf & _ "Total: " & strMailOrderTotal If strEmailComponent = "Persits" Then Set Mail = Server.CreateObject("Persits.MailSender") Mail.Host = strMailServer 'Mail.Username = strCoEmail 'Mail.Password = strEmailPWD Mail.From = strCoEmail Mail.AddAddress strCoEmail 'Mail.AddCC strCoEmail Mail.Subject = strSubject Mail.Body = strBody2 On Error Resume Next Mail.Send Set Mail = Nothing If strSendSMS = "Yes" Then If strSMS <> "" Then 'Send SMS Set Mail = Server.CreateObject("Persits.MailSender") Mail.Host = strMailServer Mail.Username = strCoEmail Mail.Password = strEmailPWD Mail.From = strCoEmail Mail.AddAddress strSMS Mail.Subject = strOrderNumber Mail.Body = strBody3 On Error Resume Next Mail.Send End If End If ElseIf strEmailComponent = "CDOSYS" Then Set cdoMail = Server.CreateObject("CDO.Message") cdoMail.From = strCoEmail cdoMail.To = strCoEmail cdoMail.Subject = strSubject cdoMail.TextBody = strBody2 On Error Resume Next cdoMail.Send() Set cdoMail = Nothing If strSendSMS = "Yes" Then If strSMS <> "" Then 'Send SMS Set cdoMail = Server.CreateObject("CDO.Message") cdoMail.From = strCoEmail cdoMail.To = strSMS cdoMail.Subject = strOrderNumber cdoMail.TextBody = strBody3 On Error Resume Next cdoMail.Send() End If End If ElseIf strEmailComponent = "CDONTS" Then Set objCDOMail = Server.CreateObject("CDONTS.NewMail") objCDOMail.From = strCoEmail objCDOMail.To = strCoEmail 'objCDOMail.Cc = strCoEmail objCDOMail.Subject = strSubject objCDOMail.Body = strBody2 objCDOMail.Importance = 1 On Error Resume Next objCDOMail.Send Set objCDOMail = Nothing If strSendSMS = "Yes" Then If strSMS <> "" Then 'Send SMS Set objCDOMail = Server.CreateObject("CDONTS.NewMail") objCDOMail.From = strCoEmail objCDOMail.To = strSMS objCDOMail.Subject = strOrderNumber objCDOMail.Body = strBody3 On Error Resume Next objCDOMail.Send End If End If Else End If %>