Aeriale Credit Card Transaction Status
<%
'' Next 5 output variables have 3 states: True, False and Empty (means result is unknown)
Dim intResponseCode '' is True if https request succeeded
Dim card '' is True if card authorized, might be empty if https request failed
Dim avsAddress '' is True if address match, might be empty if request failed of AVS not supported
Dim avsZip '' is True if ZIP match, might be empty if request failed of AVS not supported
Dim cvv '' is True if CVV2/CVC2/CID match, might be empty if request failed of CV check not supported
strTransactionAmount = Request.Form("Amount")
' strTransactionAmount = "200"
'strTransactionAmount = Request.Form("GatewayID")
strTestPassFail = ""
if len(strTransactionAmount) = 0 or len(Request.Form("xxxCard_Number")) = 0 then
' Response.Redirect("payment.asp")
end if
if len(Request.Form("qa-test")) > 0 and Request.Form("qa-test") = "true" then
' this means we came by Checkout.aspx
strTransactionAmount = Request.Form("Amount")
strTestPassFail = Request.Form("TestPassFail")
End if
dim xxxSecureURL, xxxSecureRequestMsg, returnURL
strDLLUrl = "https://direct.internetsecure.com/process.cgi"
strApplicationID = "PAYMENT"
strCurrency = "US" ' US
strGatewayID = "13820" ' 13820 For US
if len(Request.Form("Country")) > 0 and Request.Form("Country") = "2" then
strCurrency = "CA"
strGatewayID = "13819"
End If
strProducts = strTransactionAmount & "::1::"
strProducts = strProducts & "PYMNT::Aeriale.com Online Order" & strTestPassFail
strXmlRequest = ""
AddString ""
AddString "
"
if Request("PaRes") <> "" then
AddElement "PaRes", Request("PaRes")
else
AddElement "GatewayID", strGatewayID
AddElement "Products", strProducts
AddElement "xxxName", Server.HTMLEncode(Request.Form("NameOnCard"))
AddElement "xxxCompany", Server.HTMLEncode(Request.Form("CPY"))
AddElement "xxxAddress", Server.HTMLEncode(Request.Form("BillingAddress"))
AddElement "xxxCity", Server.HTMLEncode(Request.Form("BillingCity"))
AddElement "xxxState", Server.HTMLEncode(Request.Form("BillingState"))
AddElement "xxxZipCode", Server.HTMLEncode(Request.Form("BillingPostalCode"))
AddElement "xxxPhone", Server.HTMLEncode(Request.Form("BillingPhone"))
AddElement "xxxEmail", Server.HTMLEncode(Request.Form("BillingEmail"))
AddElement "xxxCard_Number", Server.HTMLEncode(Request.Form("xxxCard_Number"))
AddElement "xxxCCMonth", Server.HTMLEncode(Request.Form("xxxCCMonth"))
AddElement "xxxCCYear", Server.HTMLEncode(Request.Form("xxxCCYear"))
AddElement "CVV2", Server.HTMLEncode(Request.Form("cvv"))
AddElement "xxxMerchantInvoiceNumber", Server.HTMLEncode(Request.Form("MIN"))
AddElement "CVV2Indicator", "1"
AddElement "xxxAuthentication", "Y"
end if
AddString ""
strQuery = "xxxRequestMode=X&xxxRequestData=" & Server.URLEncode(strXmlRequest)
if Request("PaRes") <> "" then
strQuery = "TRX=" & Session("Receipt") & "&GUID=" & Session("guid") & "&" & strQuery
end if
Set objHttp = Server.CreateObject("MSXML2.ServerXMLHttp")
objHttp.Open "POST", strDLLUrl, False
objHttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
objHttp.send strQuery
status = objHttp.Status
statusText = objHttp.StatusText
retStr = objHttp.responseText
' Parse the xml result into class member vars
strReceiptNumber = ExtractNodeItem (retStr, "ReceiptNumber")
strCustomerName = ExtractNodeItem (retStr, "xxxName")
strResultCode = ExtractNodeItem (retStr, "Page")
strResultMessage = ExtractNodeItem (retStr, "Verbiage")
strTransactionID = ExtractNodeItem (retStr, "TransactionID")
strApprovalCode = ExtractNodeItem (retStr, "ApprovalCode")
strAVSResponseCode = ExtractNodeItem (retStr, "AVSResponseCode")
strCVVResponseCode = ExtractNodeItem (retStr, "CVV2ResponseCode")
strTransactionDate = ExtractNodeItem (retStr, "Date")
xxxSecureURL = ExtractNodeItem (retStr, "xxxSecureURL")
xxxSecureRequestMsg = ExtractNodeItem (retStr, "xxxSecureRequestMsg")
xxxMerchantInvoiceNumber = ExtractNodeItem (retStr, "xxxMerchantInvoiceNumber")
strDBA = ExtractNodeItem (retStr, "xxxCompany")
strPhone2 = ExtractNodeItem (retStr, "xxxVar1")
strFax = ExtractNodeItem (retStr, "xxxVar2")
strPROMO = ExtractNodeItem (retStr, "xxxVar3")
strCardType = ExtractNodeItem (retStr, "xxxCardType")
strCardNumber = ExtractNodeItem (retStr, "xxxCard_Number")
strEmail = ExtractNodeItem (retStr, "xxxEmail")
strPhone = ExtractNodeItem (retStr, "xxxPhone")
strSalesOrderNumber = ExtractNodeItem (retStr, "SalesOrderNumber")
strAmount = ExtractNodeItem (retStr, "TotalAmount")
strAddress = ExtractNodeItem (retStr, "xxxAddress")
strCity = ExtractNodeItem (retStr, "xxxCity")
strState = ExtractNodeItem (retStr, "xxxProvince")
strZip = ExtractNodeItem (retStr, "xxxPostal")
strCompany = ExtractNodeItem (retStr, "xxxCompany")
Set objHttp = Nothing
if strResultCode = "X-Q0" and xxxSecureURL <> "" and xxxSecureRequestMsg <> "" then
Session("Receipt") = strReceiptNumber
returnURL = Request.ServerVariables("HTTP_HOST")
if Request.ServerVariables("HTTPS")="on" then returnURL = "https://" & returnURL else returnURL = "http://" & returnURL
if Request.ServerVariables("SERVER_PORT")<>"80" And Request.ServerVariables("SERVER_PORT")<>"443" then
returnURL = returnURL&":" & Request.ServerVariables("SERVER_PORT")
end if
returnURL = returnURL & Request.ServerVariables("URL")
Response.Write ""
Response.Write "
"
Response.Write ""
Response.Write ""
Response.End
end if
'' Results analysis
if status<>"200" then
intResponseCode = False
elseif Len(strReceiptNumber)=0 then
intResponseCode = False
elseif Left(strResultCode,2)="99" then
intResponseCode = False
else
intResponseCode = True
if mid(strResultCode,3,3)<>"000" then
card = False
else
card = True
if strCVVResponseCode="M" then
cvv = True
elseif strCVVResponseCode="N" then
cvv = False
else
cvv = Empty
end if
Select Case avsResponse
Case "A" avsAddress = True : avsZip = False
Case "B" avsAddress = True : avsZip = False
Case "C" avsAddress = False : avsZip = False
Case "D" avsAddress = True : avsZip = True
Case "E" avsAddress = Empty : avsZip = Empty
Case "G" avsAddress = Empty : avsZip = Empty
Case "I" avsAddress = Empty : avsZip = Empty
Case "M" avsAddress = True : avsZip = True
Case "N" avsAddress = False : avsZip = False
Case "P" avsAddress = False : avsZip = True
Case "R" avsAddress = Empty : avsZip = Empty
Case "S" avsAddress = Empty : avsZip = Empty
Case "U" avsAddress = Empty : avsZip = Empty
Case "W" avsAddress = False : avsZip = True
Case "X" avsAddress = True : avsZip = True
Case "Y" avsAddress = True : avsZip = True
Case "Z" avsAddress = False : avsZip = True
End Select
end if
end if
'---------------------------------------------------------------------------
' HELPER FUNCTIONS
'---------------------------------------------------------------------------
'---------------------------------------------------------------------------
Sub AddString (str)
strXmlRequest = strXmlRequest & str
End Sub
'---------------------------------------------------------------------------
Sub AddElement (strFieldName, strFieldValue)
strXmlRequest = strXmlRequest & "<" & strFieldName & ">" & _
strFieldValue & "" & strFieldName & ">"
End Sub
'' extract value of specified node
'---------------------------------------------------------------------------
Function ExtractNodeItem(retStr, strNodeName)
Dim s1, s2, n1, n2
s1 = "<" & strNodeName & ">"
s2 = "" & strNodeName & ">"
n1 = InStr(1, retStr, s1, 1)
n2 = InStr(1, retStr, s2, 1)
if n1 > 0 and n2 > 0 then
ExtractNodeItem = mid(retStr, n1+Len(s1), n2-n1-Len(s1))
else
ExtractNodeItem = ""
end if
End Function
Function FixQuotes(sInput)
Dim rStr
if IsNull(sInput) or Len(sInput) = 0 then
rStr = ""
else
rStr = Replace(sInput, "'", "''")
end if
FixQuotes = rStr
End Function
if strResultCode = "90000" then
%>
Your Transaction has been Approved
<%
Response.Redirect ("Confirmation.aspx?OrderID=" & Request.Form("MIN") )
ElseIf strResultCode = "2000" Then
%>
Your Transaction has been Approved
<%
Response.Redirect ("Confirmation.aspx?OrderID=" & Request.Form("MIN") )
ElseIf strResultCode = "2001" Then
%>
Transaction Failed
Sorry your transaction failed
Your Transaction has been Declined
<%
else
'all other transaction codes
%>
Your Transaction was not successful
<%=Server.HTMLEncode(strResultMessage) %>
<%
End If
%>