I am getting this error, which I have researched but haven't found a solution:
"Your script timed out while we were trying to post transaction results to it. Transaction Result: This transaction has been approved."
I found this error does not occur until I am on the 15th or 20th transaction in a row. After that, I get the error every time for hours.
I am using relay response, and on my relay response page, I have page_load trying to get the response connection and then if it's successful, sending the data to my database. Is this not where this code should be?
protected void Page_Load(object sender, System.EventArgs e) { try { var sr = new SIMResponse(Request.Form);
} catch { //Error } try { //Grab the data from the form, display it to the user, and also send it to the database } catch { //Error } }
So should this code not be in page_load, or is there maybe an issue if I am submitting the same card over and over for testing, or maybe something else?
Solved! Go to Solution.
07-22-2016 10:10 AM - edited 07-22-2016 10:11 AM
If you're willing to create your own payment form, you can use Accept.js which is a Javascript library that replaces DPM. It avoids sending any sensitive card data through your servers and gives you the direct response through the Authorize.Net API.
http://developer.authorize.net/api/reference/features/acceptjs.html
Richard
07-22-2016 04:06 PM - edited 07-22-2016 04:07 PM
Sound like your database have issue.
Test it by not sending the data to the database and see if the issue still occur.
07-22-2016 11:55 AM
Thank you for your suggestion. Okay I tried commenting that out as well as trying to comment other parts out. I still get the script timed out error, even with the entire page commented out. So I guess this means there is something wrong on the server end? How can I test that?
On my payment page before the relay response, I have this:
private void AuthorizeDetails() { BtnSubmit.PostBackUrl = "https://secure2.authorize.net/gateway/transact.dll"; strAuthorizeNet_x_relay_url = "https://www.mysite.com/relayresponse.aspx"; //Info to send to Authorize strAuthorizeNet_x_amount = LblAmountDueConfirm.Text; strAuthorizeNet_x_login = ConfigurationManager.AppSettings["AUTHORIZE_NET_API_LOGIN"]; strAuthorizeNet_x_fp_timestamp = AuthorizeNet.Crypto.GenerateTimestamp().ToString(); strAuthorizeNet_x_fp_sequence = AuthorizeNet.Crypto.GenerateSequence(); strAuthorizeNet_x_relay_response = "TRUE"; strAuthorizeNet_x_test_request = "FALSE"; strAuthorizeNet_x_fp_hash = AuthorizeNet.Crypto.GenerateFingerprint(ConfigurationManager.AppSettings["AUTHORIZE_NET_TRANSACTION_KEY"], strAuthorizeNet_x_login, decimal.Parse(strAuthorizeNet_x_amount), strAuthorizeNet_x_fp_sequence, strAuthorizeNet_x_fp_timestamp); }
07-22-2016 12:03 PM - edited 07-22-2016 12:08 PM
Is there an alternate way to send the data to Authorize, display it to the user, and send it to the database other than relay response?
07-22-2016 01:34 PM
Not for SIM/DPM, there isn't. unless you want to use hte receipt page on authorize.net. And get your transactions later.
07-22-2016 03:44 PM
If you're willing to create your own payment form, you can use Accept.js which is a Javascript library that replaces DPM. It avoids sending any sensitive card data through your servers and gives you the direct response through the Authorize.Net API.
http://developer.authorize.net/api/reference/features/acceptjs.html
Richard
07-22-2016 04:06 PM - edited 07-22-2016 04:07 PM
Thanks to both of your answers. I am interested in Accept.js. Thanks! I think I'll go this route, as I am worried that the relay response could be too unreliable. Can you please tell me though, will Accept.js be a solution long-term (as far as authorize.net keeping the library updated)? I plan to have this implemented for years so I don't want to have something that is going to die out and leave me back to square one.
07-22-2016 04:14 PM
Accept.js is here for good, designed from the ground up to replace DPM.
Richard
07-22-2016 04:22 PM
I've been looking at it. How exactly do I send and receive other data to/from Authorize (like sending billing info and getting transaction info to my db)? It seems the sample has a customer profile, which isn't what I am using.
07-23-2016 04:13 PM
Hello @rockon77
Accept.js allows you to leverage the Authorize.Net API but avoid sending sensitive card data through your servers.
Richard
07-25-2016 07:01 AM