%
Dim rs,rs2,sSQL,orderText,errtext,ordGrandTotal,ordID,ordAuthNumber
success=false
errtext=""
ordGrandTotal = 0
Session("couponapply") = ""
Sub order_failed
%>
| <%=xxThkErr%>
<% if errtext<>"" then response.write " " & errtext & " " %>
<%=xxCntShp%>
|
|
<%
End sub
Set rs = Server.CreateObject("ADODB.RecordSet")
Set rs2 = Server.CreateObject("ADODB.RecordSet")
Set cnn=Server.CreateObject("ADODB.Connection")
cnn.open sDSN
alreadygotadmin = getadminsettings()
sSQL="SELECT adminCert FROM admin WHERE adminID=1"
rs.Open sSQL,cnn,0,1
thecert=rs("adminCert")&""
rs.Close
if Request.Form("custom")<>"" then ' PayPal
ordID = trim(replace(request.form("custom"), "'", ""))
txn_id = trim(replace(request.form("txn_id"), "'", ""))
sSQL = "SELECT ordAuthNumber FROM orders WHERE ordPayProvider=1 AND ordStatus>=3 AND ordAuthNumber='"&txn_id&"' AND ordID=" & ordID
success = (txn_id<>"")
rs.Open sSQL,cnn,0,1
if rs.EOF then success = FALSE
rs.Close
if success then
Call do_order_success(ordID,emailAddr,FALSE,TRUE,FALSE,FALSE,FALSE)
else
cnn.Execute("UPDATE cart SET cartCompleted=2 WHERE cartCompleted=0 AND cartOrderID="&ordID)
cnn.Execute("UPDATE orders SET ordAuthNumber='no ipn' WHERE ordAuthNumber='' AND ordPayProvider=1 AND ordID="&ordID)
errtext = xxNoCnf
Call order_failed
end if
elseif request.form("method")="paypalexpress" AND Request.Form("token")<>"" then ' PayPal Express
success = getpayprovdetails(18,username,password,demomode,ppmethod)
ordID = replace(trim(request.form("ordernumber")), "'", "")
token = trim(request.form("token"))
payerid = trim(request.form("payerid"))
ordAuthNumber = ""
if demomode then sandbox = ".sandbox" else sandbox = ""
sSQL = "SELECT ordShipping,ordStateTax,ordCountryTax,ordHandling,ordTotal,ordDiscount,ordAuthNumber,ordEmail FROM orders WHERE ordID=" & ordID
rs.Open sSQL,cnn,0,1
if NOT rs.EOF then
session.LCID = 1033
amount = formatnumber((rs("ordShipping")+rs("ordStateTax")+rs("ordCountryTax")+rs("ordTotal")+rs("ordHandling"))-rs("ordDiscount"),2,-1,0,0)
session.LCID = saveLCID
if rs("ordEmail")=trim(request.form("email")) then ordAuthNumber = trim(rs("ordAuthNumber")&"")
else
success = FALSE
end if
rs.Close
if success then
if ordAuthNumber="" then
sXML = ppsoapheader(username, password) & _
" " & _
" " & _
" " & _
" 1.00" & _
" " & _
" " & IIfVr(ppmethod=1, "Authorization", "Sale") & "" & _
" " & token & "" & _
" " & payerid & "" & _
" " & _
" " & amount & "" & _
" ecommercetemplates.asp.ecommplus" & _
" " & _
" " & _
" " & _
" " & _
" " & _
""
if callxmlfunction("https://api" & sandbox & ".paypal.com/2.0/", sXML, res, username, "WinHTTP.WinHTTPRequest.5.1", vsRESPMSG, FALSE) then
set xmlDoc = Server.CreateObject("MSXML2.DOMDocument")
xmlDoc.validateOnParse = False
xmlDoc.loadXML (res)
Set nodeList = xmlDoc.getElementsByTagName("SOAP-ENV:Body")
Set n = nodeList.Item(0)
for j = 0 to n.childNodes.length - 1
Set e = n.childNodes.Item(i)
if e.nodeName = "DoExpressCheckoutPaymentResponse" then
for k = 0 To e.childNodes.length - 1
Set t = e.childNodes.Item(k)
if t.nodeName = "Token" then
if t.firstChild.nodeValue = "Success" then success=TRUE
elseif t.nodeName = "DoExpressCheckoutPaymentResponseDetails" then
set ff = t.childNodes
for kk = 0 to ff.length - 1
set gg = ff.item(kk)
if gg.nodeName = "PaymentInfo" then
set hh = gg.childNodes
for ll = 0 to hh.length - 1
set ii = hh.item(ll)
if ii.nodeName = "PaymentStatus" then
status = ii.firstChild.nodeValue
elseif ii.nodeName = "PendingReason" then
pendingreason = ii.firstChild.nodeValue
elseif ii.nodeName = "TransactionID" then
txn_id = ii.firstChild.nodeValue
end if
next
end if
next
elseif t.nodeName = "Errors" then
set ff = t.childNodes
for kk = 0 to ff.length - 1
set gg = ff.item(kk)
if gg.nodeName = "ShortMessage" then
errormsg = gg.firstChild.nodeValue & "
" & errormsg
elseif gg.nodeName = "LongMessage" then
errormsg= errormsg & gg.firstChild.nodeValue
elseif gg.nodeName = "ErrorCode" then
errcode = gg.firstChild.nodeValue
end if
next
end if
next
end if
next
else
call order_failed()
end if
else
status = "Refresh"
end if
if status = "Completed" OR status = "Pending" then
if status = "Pending" AND pendingreason <> "" then txn_id = status & ": " & pendingreason & "
" & txn_id
do_stock_management(ordID)
cnn.Execute("UPDATE cart SET cartCompleted=1 WHERE cartOrderID=" & replace(ordID, "'", ""))
cnn.Execute("UPDATE orders SET ordStatus=3,ordAuthNumber='" & txn_id & "' WHERE ordPayProvider=19 AND ordID=" & replace(ordID, "'", ""))
call do_order_success(ordID,emailAddr,sendEmail,TRUE,TRUE,TRUE,TRUE)
elseif status = "Refresh" then
call do_order_success(ordID,emailAddr,sendEmail,FALSE,FALSE,FALSE,FALSE)
else
call order_failed()
end if
else
call order_failed()
end if
elseif Request.querystring("ncretval")<>"" AND Request.querystring("ncsessid")<>"" then ' NOCHEX
ordID = trim(replace(request.querystring("ncretval"), "'", ""))
ncsessid = trim(replace(request.querystring("ncsessid"), "'", ""))
sSQL = "SELECT ordAuthNumber FROM orders WHERE ordPayProvider=6 AND ordStatus>=3 AND ordSessionID="&ncsessid&" AND ordID=" & ordID
success = TRUE
rs.Open sSQL,cnn,0,1
if rs.EOF then success = FALSE
rs.Close
if success then
Call do_order_success(ordID,emailAddr,FALSE,TRUE,FALSE,FALSE,FALSE)
else
cnn.Execute("UPDATE cart SET cartCompleted=2 WHERE cartCompleted=0 AND cartOrderID="&ordID)
cnn.Execute("UPDATE orders SET ordAuthNumber='no apc' WHERE ordAuthNumber='' AND ordPayProvider=6 AND ordID="&ordID)
errtext = xxNoCnf
Call order_failed
end if
elseif Request.Form("xxpreauth")<>"" then
ordID = trim(replace(Request.Form("xxpreauth"), "'", ""))
sSQL = "SELECT ordAuthNumber FROM orders WHERE ordID=" & ordID
rs.Open sSQL,cnn,0,1
if rs.EOF then
success = FALSE
else
success = (trim(rs("ordAuthNumber")&"")<>"")
end if
rs.Close
if success then
Call order_success(ordID,emailAddr,sendEmail)
else
Call order_failed
end if
elseif Request.Form("cart_order_id") <> "" AND request.form("order_number")<>"" then ' 2Checkout Transaction
if Trim(request.form("credit_card_processed"))="Y" then
ordID = trim(replace(request.form("cart_order_id"),"'",""))
sSQL = "SELECT payProvData1,payProvData2 FROM payprovider WHERE payProvID=2"
rs.Open sSQL,cnn,0,1
acctno = trim(rs("payProvData1"))
md5key = trim(rs("payProvData2")&"")
rs.Close
keysmatch=TRUE
if md5key<>"" then
theirkey = Trim(Request.Form("key"))
ourkey = Trim(UCase(calcMD5(md5key&acctno&Request.Form("order_number")&Request.Form("total"))))
if ourkey=theirkey then keysmatch=true else keysmatch=false
end if
if keysmatch then
do_stock_management(ordID)
sSQL="UPDATE cart SET cartCompleted=1 WHERE cartOrderID="&ordID
cnn.Execute(sSQL)
sSQL="UPDATE orders SET ordStatus=3,ordAuthNumber='"&trim(replace(request.form("order_number"),"'","''"))&"' WHERE ordPayProvider=2 AND ordID="&ordID
cnn.Execute(sSQL)
Call order_success(ordID,emailAddr,sendEmail)
else
Call order_failed
end if
else
Call order_failed
end if
elseif Request.Form("CUSTID") <> "" AND Request.Form("AUTHCODE") <> "" then ' PayFlow Link
if Trim(request.form("RESULT"))="0" then
ordID = trim(replace(request.form("CUSTID"),"'",""))
do_stock_management(ordID)
sSQL="UPDATE cart SET cartCompleted=1 WHERE cartOrderID="&ordID
cnn.Execute(sSQL)
sSQL="UPDATE orders SET ordStatus=3,ordAuthNumber='"&replace(trim(request.form("CSCMATCH"))&trim(request.form("AVSDATA"))&"-"&trim(request.form("AUTHCODE")),"'","''")&"' WHERE ordPayProvider=8 AND ordID="&ordID
cnn.Execute(sSQL)
Call order_success(ordID,emailAddr,sendEmail)
else
Call order_failed
end if
elseif Request.Form("emailorder")<>"" OR Request.Form("secondemailorder")<>"" then
if emailorderstatus<>"" then ordStatus=emailorderstatus else ordStatus=3
if Request.Form("emailorder")<>"" then
ordID = trim(replace(request.form("emailorder"),"'",""))
ppid = 4
else
ordID = trim(replace(request.form("secondemailorder"),"'",""))
ppid = 17
end if
thesessionid = trim(request.form("thesessionid"))
if NOT IsNumeric(thesessionid) then thesessionid=-23
sSQL = "SELECT ordAuthNumber FROM orders WHERE ordSessionID="&thesessionid&" AND ordID=" & ordID
rs.Open sSQL,cnn,0,1
if rs.EOF then success = FALSE else success = TRUE
rs.Close
sSQL = "SELECT payProvShow FROM payprovider WHERE payProvID="&ppid
rs.Open sSQL,cnn,0,1
authnumber = rs("payProvShow")
rs.Close
if success then
if ordStatus >= 3 then do_stock_management(ordID)
sSQL="UPDATE cart SET cartCompleted=1 WHERE cartOrderID="&ordID
cnn.Execute(sSQL)
sSQL="UPDATE orders SET ordStatus="&ordStatus&",ordAuthNumber='"&left(replace(authnumber,"'","''"),48)&"' WHERE (ordPayProvider="&ppid&" OR (ordTotal-ordDiscount)<=0) AND ordID="&ordID
cnn.Execute(sSQL)
Call order_success(ordID,emailAddr,sendEmail)
else
Call order_failed
end if
elseif Request.QueryString("OrdNo")<>"" AND Request.QueryString("RefNo")<>"" then ' PSiGate
ordID = trim(replace(request.QueryString("OrdNo"),"'",""))
do_stock_management(ordID)
sSQL="UPDATE cart SET cartCompleted=1 WHERE cartOrderID="&ordID
cnn.Execute(sSQL)
sSQL="UPDATE orders SET ordStatus=3,ordAuthNumber='"&trim(replace(request.QueryString("RefNo"),"'","''"))&"' WHERE (ordPayProvider=11 OR ordPayProvider=12) AND ordID="&ordID
cnn.Execute(sSQL)
Call order_success(ordID,emailAddr,sendEmail)
elseif trim(Request.Form("ponumber"))<>"" AND (trim(Request.Form("approval_code"))<>"" OR trim(request.form("failReason"))<>"") then ' Linkpoint
ordID=trim(replace(request.form("ponumber"),"'",""))
ordIDa=split(ordID,",")
ordID=ordIDa(0)
theauthcode=trim(replace(request.form("approval_code"),"'",""))
thesuccess=lcase(trim(request.form("status")))
if (thesuccess="approved" OR thesuccess="submitted") AND theauthcode<>"" then
do_stock_management(ordID)
sSQL="UPDATE cart SET cartCompleted=1 WHERE cartOrderID="&ordID
cnn.Execute(sSQL)
sSQL="UPDATE orders SET ordStatus=3,ordAuthNumber='"&theauthcode&"' WHERE ordPayProvider=16 AND ordID="&ordID
cnn.Execute(sSQL)
Call order_success(ordID,emailAddr,sendEmail)
else
errtext = request.form("failReason")
errtextarr = split(errtext, ":")
if IsArray(errtextarr) then
if UBOUND(errtextarr)>0 then errtext = errtextarr(1)
end if
Call order_failed
end if
elseif Request.Form("docapture")="vsprods" then
success = true
if capturecardorderstatus<>"" then ordStatus=capturecardorderstatus else ordStatus=3
encryptmethod = LCase(encryptmethod&"")
if encryptmethod<>"none" then
thecert = Replace(thecert,"-----BEGIN CERTIFICATE-----","")
thecert = Trim(Replace(thecert,"-----END CERTIFICATE-----",""))
err.number = 0
on error resume next
Set CM = Server.CreateObject("Persits.CryptoManager")
if err.number <> 0 then
success=false
errmsg = "Error ! Cannot invoke Persits ASPEncrypt"
end if
if success then
Set Blob = CM.CreateBlob
err.number = 0
' Set Context = CM.OpenContextEx( "Microsoft Enhanced Cryptographic Provider v1.0", "mycontainer", True)
Set Context = CM.OpenContext("", True)
if err.number = 0 then
Blob.Base64 = thecert
Set Cert = CM.ImportCertFromBlob(Blob)
if err.number <> 0 then
success=false
errmsg = "Error ! Cannot import certificate." & "
" & err.description
end if
else
success=false
errmsg = "Error ! Trying to invoke Microsoft Enhanced Cryptographic Provider v1.0" & "
" & err.description
end if
end if
on error goto 0
end if
if success then
ordID=trim(replace(request.form("ordernumber"),"'",""))
if encryptmethod="none" then
enctext = Trim(Replace(Request.Form("ACCT"),"'","")) & "&" & Trim(Replace(Request.Form("EXMON"),"'",""))&"/"&Trim(Replace(Request.Form("EXYEAR"),"'","")) & "&" & Trim(Replace(Request.Form("CVV2"),"'","")) & "&" & Trim(Replace(Request.Form("IssNum"),"'","")) & "&" & Server.URLEncode(Trim(Request.Form("cardname")))
elseif encryptmethod="aspencrypt" OR encryptmethod="" then
' response.write "Cert Version: " & Cert.Version & ":" & Cert.SerialNumber & ":" & Cert.NotAfter & ":" & Cert.NotBefore & "
"
Set Msg = Context.CreateMessage(True)
Msg.AddRecipientCert Cert
enctext = Msg.EncryptText(Trim(Replace(Request.Form("ACCT"),"'","")) & "&" & Trim(Replace(Request.Form("EXMON"),"'",""))&"/"&Trim(Replace(Request.Form("EXYEAR"),"'","")) & "&" & Trim(Replace(Request.Form("CVV2"),"'","")) & "&" & Trim(Replace(Request.Form("IssNum"),"'","")) & "&" & Server.URLEncode(Trim(Request.Form("cardname"))))
end if
do_stock_management(ordID)
sSQL="UPDATE cart SET cartCompleted=1 WHERE cartOrderID="&ordID
cnn.Execute(sSQL)
sSQL="UPDATE orders SET ordStatus="&ordStatus&",ordAuthNumber='Card Capture',ordCNum='"&enctext&"' WHERE ordPayProvider=10 AND ordID="&ordID
cnn.Execute(sSQL)
Call order_success(ordID,emailAddr,sendEmail)
else
response.write "
"&errmsg&"
"
Call order_failed
end if
elseif Request.QueryString("OrdNo")<>"" AND Request.QueryString("ErrMsg") <> "" then ' PSiGate Error Reporting
errtext = Request.QueryString("ErrMsg")
Call order_failed
else
%>
<%
end if
cnn.Close
set rs = nothing
set rs2 = nothing
set cnn = nothing
%>