I am using ASP .NET and have everything working up to the point of the receipt page. I took the asp example and converted it to .NET but I get a "Message: Exception of type 'System.Web.HttpUnhandledException' was thrown.<br>Inner: Object reference not set to an instance of an object." when accessing the Request.Form variables.
Any ideas?
11-07-2012 05:13 PM
which variable? or are you looping thru what is in the Request.Form?
11-07-2012 05:54 PM
It seems like all of them, but at this time I have everything commented out but this one and am getting the error.
Request.Form["x_response_code"]
11-08-2012 06:04 AM
You mean the receipt page as in the relay response page?
11-08-2012 06:30 AM
Yes, that is what I mean. That is where I am trying to display the receipt for the customer to print. Is that not the correct place to do this?
11-08-2012 07:54 AM
So it getting the Error message?
An error occurred while trying to report this transaction to the merchant. An e-mail has been sent to the merchant informing them of the error. The following is a result of the attempt to charge your credit card.
11-08-2012 08:46 AM
Are you trying to run the page without post anything to it?
11-08-2012 09:04 AM
No, I am not getting that error - "An error occurred while trying to report this transaction to the merchant. An e-mail has been sent to the merchant informing them of the error. The following is a result of the attempt to charge your credit card."
I am getting an object reference error from .NET, I believe because the Request variable is null. The payment gets posted to the Authorize .NET account (developer - test account) correctly. The only issue seems to be in getting the information returned from Authorize .NET to show the receipt on screen to the client.
11-08-2012 12:24 PM
Can you post the code that you changed to make it c#.
11-08-2012 12:35 PM
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Thanks.aspx.cs" Inherits="Public_Registration_Secure_Authorize_Thanks" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%
//Response.Expires = 0;
string ResponseCode, ResponseReasonText, ResponseReasonCode, ResponseSubcode, AVS, ReceiptLink, TransID;
string Amount, AuthCode, Description, InvoiceID, BillingInfo;
// Retrieving and defining Form Data from Post command body from Authorize.Net
ResponseCode = "1"; // Request.Form["x_response_code"].Trim();
ResponseReasonText = "reason-text"; // Request.Form["x_response_reason_text"].Trim();
ResponseReasonCode = "reason-code"; // Request.Form["x_response_reason_code"].Trim();
AVS = "avs"; // Request.Form["x_avs_code"].Trim();
TransID = "0"; // Request.Form["x_Trans_ID"].Trim();
AuthCode = "auth-code"; // Request.Form["x_Auth_Code"].Trim();
Amount = "amount"; // Request.Form["x_Amount"].Trim();
ReceiptLink = "http://www.authorizenet.com";
Description = "description";
InvoiceID = "1";
BillingInfo = "John Doe<br />123 Main St<br />Somewhereville, XX 99999<br />email@email.com<br />555-555-5555";
// Print a receipt page
%>
<html>
<head>
<title>Transaction Receipt Page</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
table td {padding-left:10px;}
</style>
</head>
<body bgcolor="#FFFFFF">
<% // Test to see if this is a test transaction.
if (TransID == "0" && ResponseCode == "1")
{
// If so, print it to the screen, so we know that the transaction will not be processed. %>
<table align="center">
<tr>
<th><font size="5" color="red" face="arial">TEST MODE</font></th>
</tr>
<tr>
<th valign="top"><font size="1" color="black" face="arial">This transaction will <u>NOT</u> be processed because your account is in Test Mode.</font></th>
</tr>
</table>
<% } %>
<br />
<br />
<table style="width:600px;">
<% // Test to see if the transaction resulted in Approval, Decline or Error
switch (ResponseCode)
{
case "1": %>
<tr>
<td colspan="2" style="font-size:14pt;color:#000000;text-align:center;">Thank you for your order!</td>
</tr>
<% break;
case "2": %>
<tr>
<td colspan="2" style="font-size:14pt;color:#000000;text-align:center;">This transaction has been declined.</td>
</tr>
<% break;
default: %>
<tr>
<td colspan="2" style="font-size:14pt;color:#000000;text-align:center;">There was an error processing this transaction.</td>
</tr>
<% break;
} %>
<tr>
<td colspan="2"> </td>
</tr>
<tr>
<td colspan="2" style="background-color:#ccc;font-size:12pt;font-weight:bold;">Order Information</td>
</tr>
<tr>
<td>Transaction ID:</td>
<td>
<% switch (TransID)
{
case "0":
Response.Write("Not Applicable.");
break;
default:
Response.Write(TransID);
break;
}
%>
</td>
</tr>
<tr>
<td>Authorization Code:</td>
<td>
<% switch (AuthCode)
{
case "000000":
Response.Write("Not Applicable.");
break;
default:
Response.Write(AuthCode);
break;
}
%>
</td>
</tr>
<tr>
<td>Description:</td>
<td><%= Description %></td>
</tr>
<tr>
<td>Invoice #:</td>
<td><%= InvoiceID %></td>
</tr>
<tr>
<td style="width:175px;">Amount:</td>
<td>$<%= Amount %></td>
</tr>
<tr>
<td colspan="2" style="background-color:#ccc;font-size:12pt;font-weight:bold;">Billing Information</td>
</tr>
<tr>
<td colspan="2"><%= BillingInfo %></td>
</tr>
<tr>
<td colspan="2" style="background-color:#ccc;font-size:12pt;font-weight:bold;">Verification Information</td>
</tr>
<tr>
<td>Response Reason:</td>
<td>(<%= ResponseReasonCode %>) <%= ResponseReasonText %></td>
</tr>
<tr>
<td>Address Verification:</td>
<td>
<% // Turn the AVS code into the corresponding text string.
switch (AVS)
{
case "A":
Response.Write("Address (Street) matches, ZIP does not.");
break;
case "B":
Response.Write("Address Information Not Provided for AVS Check.");
break;
case "C":
Response.Write("Street address and Postal Code not verified for international transaction due to incompatible formats. (Acquirer sent both street address and Postal Code.)");
break;
case "D":
Response.Write("International Transaction: Street address and Postal Code match.");
break;
case "E":
Response.Write("AVS Error.");
break;
case "G":
Response.Write("Non U.S. Card Issuing Bank.");
break;
case "N":
Response.Write("No Match on Address (Street) or ZIP.");
break;
case "P":
Response.Write("AVS not applicable for this transaction.");
break;
case "R":
Response.Write("Retry. System unavailable or timed out.");
break;
case "S":
Response.Write("Service not supported by issuer.");
break;
case "U":
Response.Write("Address information is unavailable.");
break;
case "W":
Response.Write("9 digit ZIP matches, Address (Street) does not.");
break;
case "X":
Response.Write("Address (Street) and 9 digit ZIP match.");
break;
case "Y":
Response.Write("Address (Street) and 5 digit ZIP match.");
break;
case "Z":
Response.Write("5 digit ZIP matches, Address (Street) does not.");
break;
default:
Response.Write("The address verification system returned an unknown value.");
break;
}
%>
</td>
</tr>
</table>
</body>
</html>
11-08-2012 02:11 PM