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/.