Michelle

Relay Response Basics and Troubleshooting

by Administrator Administrator on ‎01-18-2011 01:40 PM (21,837 Views)

Relay Response Basics

Relay Response is a feature available to merchants using Server Integration Method (SIM) or Simple Checkout. It instructs the payment gateway to return transaction results to the merchant using an HTML form POST to a specified URL on the merchant's Web server. A script or program at the URL can be used to create a custom receipt page using the transaction information. The custom receipt page is then relayed back to the customer's browser. Relay Response does not redirect the end user back to the merchant’s server, but relays the page content to the end user instead of displaying the Authorize.Net default receipt page.

 

When Relay Response is unable to pass the transaction response to the merchant’s server or software, the customer will see the following 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.

 

This response would be followed by the transaction response text originally submitted to the merchant’s software or website. If the merchant has chosen to receive transaction receipts from Authorize.Net, we will also send an e-mail with the subject “Transaction Error Notification” to the merchant. The e-mail starts with this text:

 

Your script timed out while we were trying to post transaction results to it.

 

Transaction ID: 9876543210

 

Transaction Result: This transaction has been approved.

 

If the transaction was successfully authorized and captured for settlement, it will settle and the merchant will receive funding for the transaction. The merchant should contact the customer and make sure their order is completed successfully.

 

Why Would I Get a Timeout?

There are a number of possible causes for timeouts. If it only happens on rare occasion, but the bulk of the transactions process without problems, then the merchant’s network might have had a temporary lag or connection failure. These sorts of issues would be outside Authorize.Net’s control, but should also be very rare as long as the merchant’s network is generally stable and reliable.

 

If the Relay Response timeouts occur repeatedly but sporadically, or if the error only occurs in short bursts, then you may want to consult with the Web hosting company or Internet Service Provider (ISP) to find out if there are any issues which might cause Internet connections to drop or time out. Possible causes include occasional Web server load spikes, routing or load balancing issues, and Internet congestion.

 

Note that Relay Response connections may time out after 10 seconds, so it is important that Authorize.Net receives an acknowledgement that the server received our response in 10 seconds or less.

 

If you encounter this issue every time, check the following list of possible causes and make corrections as necessary:

 

  • Check that the Relay URL the website is using (x_relay_url) is spelled correctly and is pointed at the right Web page or script. Any typing errors will send the transaction response to a file that doesn’t exist on the merchant’s server.
  • Confirm that you can load the Relay URL in a Web browser, and that it runs successfully. If you encounter a 500 Internal Server Error message, your script cannot run on the server and you may need to check your coding and confirm that the Web server can run the script correctly.
  • If the merchant’s Web server is not available on the public Internet, has authentication enabled, or if the Relay URL uses a non-standard port for HTTP or HTTPS traffic, Relay Response timeouts will occur. Authorize.Net will not have any means to connect to your server or authenticate itself on your server, and can only use ports 80 and 443 for all Web traffic.
  • If the relay response page is using an SSL connection, ensure that the SSL certificate is valid and is from a trusted issuer. If Authorize.Net’s server cannot validate the certificate, it will abandon the connection.
  • Log into the Merchant Interface at https://account.authorize.net/, click Account from the top navigation, click Response/Receipt URLs, and review the settings to ensure that the correct Relay Response URL is configured.

 

Make sure your script has completely received the transaction response before it performs any intensive tasks such as writing the response data to a database. If you start any intensive tasks while waiting for Relay Response to finish, your server may not be able to receive the full transaction response before the connection times out.

 

More Info

For more details on Relay Response and the transaction response fields it returns, please see Section Six - Transaction Response in the SIM Implementation Guide, available at http://developer.authorize.net/guides/SIM/.


 

Comments
by charles4iNET on ‎03-19-2012 02:13 PM

 

How does one  make sure that the transaction response has been completely recieved.   I'm getting this error within 1-2 seconds ..but consistantly when I build up a list of values returned to evaluate for response status or even iterate them directly sans list.

 

And I'm in MVC so how to I either confirm that the response is complete or fake it and tell the receipt Page to start rendering stuff while I evaluate the values recieved from the post,,,?!??!

 

 

Make sure your script has completely received the transaction response before it performs any intensive tasks such as writing the response data to a database. If you start any intensive tasks while waiting for Relay Response to finish, your server may not be able to receive the full transaction response before the connection times out.

 

 

 

 

by charles4iNET on ‎03-20-2012 11:10 AM

Good afternoon  integration support Authorize.net                       

 

I will update  my entries in your dev forum with my findings but

for your information, and future reference.

 

A colleague more familiar with general web based development pointed out that I could force some data to the web page after receiving your response by using a method on the web  Response object named Flush().

:: Response.Flush()

 

This allowed me to continue manipulating ( evaluating for approval the  various  returned

codes, AVS, CCV, CAVV whatever) to determine if the response was approved, before displaying my receipt page,

while using C# MVC .   

 

Once again please note that I received the error----“An error occurred while trying to report this transaction to the merchant. An e-mail has….”       within miliseconds of submitting my Hosted payment form.

by tbillett on ‎08-07-2012 05:09 PM

The artical states that....

 

Note that Relay Response connections may time out after 10 seconds, so it is important that Authorize.Net receives an acknowledgement that the server received our response in 10 seconds or less.

 

Does this acknowledgement need to come from the script I write? What is the flow?

 

 

by Moderator Moderator on ‎08-10-2012 03:30 PM

Yes, your script would have to make a successful "hand shake" within 10 seconds, otherwise the transaction will time out. If the transaction was successful the status will show as 'Captured/Pending Settlement' and  will settle on your transaction cut off time. As for the flow, if you follow the steps in the post, you should be good.

by pahcal123 on ‎02-14-2013 12:51 PM

About 1% of my relays fail. The credit card is authorized, but the relay response does not get to my application server. I checked the HTTP log files, and the relay page POST is not there. Even if the response from my page took longer than 10 seconds, there would be a reference to the POST in the log file. Is it possible the Authorize.NET relay response is not always being sent? Or sent to the wrong place?

 

Thanks.

by Administrator Administrator on ‎02-21-2013 03:45 PM

@pahcal123,

 

Please look at the response to your question here: http://community.developer.authorize.net/t5/Integration-and-Testing/SIM-Relay-Response-Not-Getting-t...

 

Richard

About the Author
  • Authorize.Net Developer Community Manager
Announcements
Labels