cancel
Showing results for 
Search instead for 
Did you mean: 

relay_response not working

I have a test account and am trying to use the relay_response feature. It works with my production account. I consistently get the message that the transaction was successful, but there was a problem with my web site. I've tried using my real URL and https://developer.authorize.net/tools/paramdump/.

 

Is there somewhere in the UI I can authorize an URL for my test account?

tthomas48
Member
Member
63 REPLIES 63

the documentation from page 86 in the SIM_Guide.pdf follows:

 

x_relay_URL Optional

Value: The URL on the merchant’s Web site to which the payment gateway should post transaction results for a relay response Format: Any valid URL Including name/value pairs in the URL(anything after a "?") is not recommended Notes: If this field is submitted, the payment gateway will validate the URL value against the Relay Response URL configured in the Merchant Interface. If the URL submitted does not match the URL configured in the Merchant Interface, the transaction will be rejected. If no value is submitted in the HTML Form POST, the payment gateway will post the transaction results to the URL configured in the Merchant Interface.

 

this indicates the the URL MUST be in the merchant interface to work.

 

I don't believe this to be the case but it is yet another example of the poor documentation.

This actually is correct, although it could stand to be explained further. If there are no relay or response URLs listed in the Merchant Interface, then this validation will not be performed.  If there are URLs  specified within the merchant interface then they act as a sort of whitelist as described in the referenced section of the guide. This functionality is why there is an option in the settings to specify multiple response/referrer URLs even though only one can be specified as the default.

In my case I am trying to test against a local development environment and my host only exists locally in DNS. This means the Auth.net post back to my server is what is failing. I verified thsi by testing using the parameter dump URL and was able to correctly see the transaction details.

 

So my question then is how can I test using this approach in a development environment? To require people to have a publicly available development environment URL is honestly ludicrous and is making it incredibly difficult to implement a solution based on this product/service.

 

The lack of a non-MVC .net sample (a copout in my opinion), coupled with a forms-based approach almost impossible to implement in WebForms (only doable by replacing the page form element's action attribute using javascript to point to the correct place, which now also submits ALL form elements (any asp.net controls, viewstate, digest, etc) as part of the post) makes me INCREDIBLY RELUCTANT to recommend Authorize.net to my customers.

 

This solution has been ANYTHING but easy to implement. I have all of the pieces built but cannot wire them together to process the response correctly because I cannot get a response delivered to my development environment. Really a poor limitation that needs to be resolved as you are limiting the effectiveness of having the service in the first place.. If we cant build against the API and test our solutions, what is the point of your product anyway?

 

Edit: I also want to add that by not having your .net assembly signed, you cannot deploy it to the GAC, and using the assembly at all requires some clever reflection calls since you get the unsigned assemly errors. This is another issue that really needs to be resolved.

So my question then is how can I test using this approach in a development environment?

Use the http://developer.authorize.net/tools/datavalidation/ as the relay response url, notes all the name/value pairs, use those data to post to your relay response page.

 

There is sample code which does not use MVC. I would suggest doing that first to see how thing are done then add to your site.

 

the dll source is available, so you can modify to however you need.