cancel
Showing results for 
Search instead for 
Did you mean: 

Unable to read Relay Response POST Data in ASP.NET

I am using SIM, trying to get relay_response to work on a test account with an ASP.NET 2.0 application.  It is displaying the response URL page fine, but there is no data displayed... it's as if there was no form data posted to it at all, the same as if you just typed in the URL.

 

However, when I use https://developer.authorize.net/tools/paramdump/ as the response url I can see the posted data, so I know the problem is probably not with Authorize.net.  However, when I post to my response page from a test page, it does recognize and display the posted data, so I know the page is handling the posted data correctly.  

This is the test page that DOES work... the response page does display the posted data:

 

 

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
<form id="form1" runat="server"  method='post' action="http://localhost/www.faea.org/FAEAWeb/TransSuccess.aspx">
<input type='hidden' runat="server" name='x_response_code' id='x_response_code' value="1" />
<input type='hidden' runat="server" name='x_response_reason_text' id='x_response_reason_text' value='Test response reason text' />
<input type='hidden' runat="server" name='x_description' id='x_description' value="Test Description" />
<input type='submit' runat="server" id='buttonLabel' />
</div>
</form>
</body>
</html>

 

But for some reason, whenever Authorize.net posts to my response page after a transaction, the page comes up but with none of the POST data.  

 

I have disabled viewStateMAC in the Page directive.  I'm not behind a firewall other than the Windows 7 firewall.  I'm running IIS 7 and the application is using ASP.NET 2.0.   I'm not getting any error messages anywhere, it's just displaying my response page with all the data fields empty. 

 

Here is my ASP.Net script that is handling the relay response page:

 

 

 

  Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Response.Expires = 0  '--I've tried with and without the Response.Expires

            Dim s_x_response_code As String = ""
            If Not String.IsNullOrEmpty(Request.Form("x_response_code")) Then
                s_x_response_code = Request.Form("x_response_code")
            End If

            Dim n_x_response_reason_code As Integer = 0
            If Not String.IsNullOrEmpty(Request.Form("x_response_reason_code")) Then
                n_x_response_reason_code = CInt(Request.Form("x_response_reason_code"))
            End If

            Dim s_x_response_reason_text As String = ""
            If Not String.IsNullOrEmpty(Request.Form("x_response_reason_text")) Then
                s_x_response_reason_text = Request.Form("x_response_reason_text")
            End If

            Dim s_x_auth_code As String = ""
            If Not String.IsNullOrEmpty(Request.Form("x_auth_code")) Then
                s_x_auth_code = Request.Form("x_auth_code")
            End If

            Dim s_x_invoice_num As String = ""
            If Not String.IsNullOrEmpty(Request.Form("x_invoice_num")) Then
                s_x_invoice_num = Request.Form("x_invoice_num")
            End If

            Dim s_x_description As String = ""
            If Not String.IsNullOrEmpty(Request.Form("x_description")) Then
                s_x_description = Request.Form("x_description")
            End If

            Dim s_x_amount As String = ""
            If Not String.IsNullOrEmpty(Request.Form("x_amount")) Then
                s_x_amount = Request.Form("x_amount")
            End If

            If s_x_response_code = "1" Then
                UpdateTransaction(s_x_invoice_num)
                lblDescription.Text = "TRANSACTION APPROVED!! <BR /> A receipt has been sent to the e-mail address you provided on the previous screen.<br /><br />" & _
                    s_x_description & "<br />Total Amount: " & s_x_amount & "<br />Approval Code: " & s_x_auth_code
            Else
                lblDescription.Text = "YOUR CARD HAS BEEN DECLINED!!!!<BR />" & s_x_response_code & "<br />" & s_x_response_reason_text & "<br /><br />"
               
            End If
        End Sub

 

 

In searching these forums, I found that someone was told by Authorize.net support that you can't use ASP.NET with Relay Response, you have to use classic ASP (which I really don't want to do), but others have gotten it to work using EnableViewStateMAC="false" so I do have hope that this is possible and there is just something else that I haven't thought about yet.

 

Any help would be greatly appreciated!!!!

 

 

joshbula99
Contributor
46 REPLIES 46

Hi,

 

Please find the lines of code which am using to send the request

Random random = new Random();
strAuthorizeNet_x_fp_timestamp = ((int)(DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalSeconds).ToString();
strAuthorizeNet_x_fp_sequence = (random.Next(0, 1000)).ToString();
strAuthorizeNet_x_relay_response = "TRUE";
strAuthorizeNet_x_relay_url = ConfigurationManager.AppSettings["RelayURL"];
strAuthorizeNet_x_test_request = "TRUE";

 

I have not hardcoded any values,and i have only one account.

Can you please help me put,since this is the showstopper .No URL are hardcoded from the webpage and i have configured the same  URL in merchant account login.

debug and see what

strAuthorizeNet_x_relay_url = ConfigurationManager.AppSettings["RelayURL"];

is

 

Hi,

Thanks for the response,as suggested URL is hardcoded.It is working fine now. I am using SIM Mechanism.I have configured the relay URL in the merchant account,is it possible to return the relay URLwit the Querystring.

 

For ex: https://www.....com/Thanks.aspx?OrderId=9

 

You can try, and if that don't work, you could remove all valid relay url from the account and try it again.

But OrderID Will be dynamic,How to configure the URL to accept the dynamic value as the Query string?

strAuthorizeNet_x_relay_url = ConfigurationManager.AppSettings["RelayURL"] + "whatever" + yourorderid;

 

or you can send it as a merchant defined fields

The thing to be careful is make sure it bigger then 4 digit, I think authorize.net will masked it if it think it is a CCV code.

Not in the code,I need to configure the same in merchant account .

If I dont Configure the same in the merchant account of relay URL i am getting the error as relay URL or receipt URL is invalid.

I'm not sure what the issue is, I just tried it on my test account and it let me add something like

https://www.whatever.com/Thanks.aspx?OrderId=9

in the merchant account settings