LaughingHorse Posted November 3, 2016 Share Posted November 3, 2016 This has been happening for quite some time and I'd like to get to the bottom of it and solve it. On some, not all, and not on certain $ amounts after placing and paying for an order using a credit card with AuthNet doing the authorization the following error shows up. "The following errors were detected: Your order has been received. Thank you for your business" See attached file. We get panicked phone calls and emails from customers asking if we received their order. The interesting thing is the orders were successfully paid for and authorized. This does not happen on every order. It can be the first order of the day, last order of the day, or some time in between. The dollar amount can be as low as $20 or over $200 Absolutely no rhyme or reason, it's totally Intermittent, and it happens across all our products. So it is not dollar specific, or product specific. Thanks in advance for your help. Quote Link to comment Share on other sites More sharing options...
Dirty Butter Posted November 3, 2016 Share Posted November 3, 2016 Are you still on 6.0.4? What skin are you using? Quote Link to comment Share on other sites More sharing options...
LaughingHorse Posted November 3, 2016 Author Share Posted November 3, 2016 Skin 6.1.0 A modified version of Foundation. Modified only in that it has some boxes added Quote Link to comment Share on other sites More sharing options...
Dirty Butter Posted November 3, 2016 Share Posted November 3, 2016 1 hour ago, LaughingHorse said: Absolutely no rhyme or reason, it's totally Intermittent, and it happens across all our products. So it is not dollar specific, or product specific. Maybe it's browser or device specific? Quote Link to comment Share on other sites More sharing options...
bsmither Posted November 3, 2016 Share Posted November 3, 2016 I've looked at the Authorize 1.1.1 code, and I see where a response from Authorize.net, any response, about the transaction is given to CubeCart's Gui->setError() function, provided that: the customer uses the AIM method of Authorize.net (and probably not SIM). For those orders that showed the error message o the customer, as best as you can determine, please try to discern which Authorize method was used: AIM or SIM. Quote Link to comment Share on other sites More sharing options...
LaughingHorse Posted November 3, 2016 Author Share Posted November 3, 2016 bsmither It's AIM Dirty Butter "Maybe it's browser or device specific?" Nope. Happens on different devices, different operating systems, different browsers Quote Link to comment Share on other sites More sharing options...
bsmither Posted November 3, 2016 Share Posted November 3, 2016 Ok, so we are going to need to determine a successful transaction, or an unsuccessful transaction, and paint the appropriate colored banner depending. I'll make some experiments. Quote Link to comment Share on other sites More sharing options...
LaughingHorse Posted November 3, 2016 Author Share Posted November 3, 2016 Sounds good. Again, it is happening from time to time, one can go through perfectly, and the next one goes through but shows the error message. Quote Link to comment Share on other sites More sharing options...
bsmither Posted November 4, 2016 Share Posted November 4, 2016 The gateway code seems to suggest that this would happen every time, provided that Authorize.net would actually send back a message. That is to say, an AIM transaction gets a response from Authorize.net regarding the transaction. The first item in the response is a code number-- 1 for Approved, 2 for Declined, 3 for Error. The fourth item is a message of some sort. This message is delivered to the red warning banner when the next page in the checkout process is sent to the customer. In CubeCart's admin, Request Log, you should find a log entries of AIM requests and each responses. Look in the Request Log to verify you see the messages. Quote Link to comment Share on other sites More sharing options...
LaughingHorse Posted November 4, 2016 Author Share Posted November 4, 2016 Here is the info at the beginning of the transaction from the Request Log (I changed some info to MUNGED for protection before pasting) Request Sent - https://secure.authorize.net/gateway/transact.dll x_test_request=FALSE&x_login=+MUNGED&x_tran_key=MUNGED&x_version=3.1&x_delim_data=TRUE&x_delim_char=%7C&x_type=AUTH_ONLY& Quote Link to comment Share on other sites More sharing options...
bsmither Posted November 4, 2016 Share Posted November 4, 2016 Verify that you see the message in the Response, "Your order has been received. Thank you for your business." If you see this phrase in the Response, then it is Authorize.net's message, and we have confirmed the logic error in the Authorize.net gateway code and will need to figure out a solution. If the phrase is not there, we will need to figure out where it is coming from. This phrase is not in CubeCart's language files. Quote Link to comment Share on other sites More sharing options...
LaughingHorse Posted November 4, 2016 Author Share Posted November 4, 2016 Response received 4|1|252|Your order has been received. Thank you for your business!| Quote Link to comment Share on other sites More sharing options...
bsmither Posted November 4, 2016 Share Posted November 4, 2016 Ok, so the source of the message has been verified. I will try to find and suggest an edit to the code to inhibit (or change away from red) the banner. Quote Link to comment Share on other sites More sharing options...
LaughingHorse Posted November 4, 2016 Author Share Posted November 4, 2016 Thank you. Looking forward to your reply. I'm wondering if other people are also experiencing this but just not saying anything about it. Quote Link to comment Share on other sites More sharing options...
bsmither Posted November 4, 2016 Share Posted November 4, 2016 I get the impression that most CC'ers on these forums use PayPal, or some other gateway that takes the customer to the payment transactor's secure site. Keeping the customer on the merchant's site obligates the merchant for PCI-DSS compliance. And PCI-DSS compliance is a tricky thing. You can do all that is advised for compliance, and be audited by a compliance professional, and be told you are in compliance. But, then have a breach, and credit card data gets stolen/intercepted, and all of sudden, by definition, you were therefore not in compliance. Quote Link to comment Share on other sites More sharing options...
LaughingHorse Posted November 4, 2016 Author Share Posted November 4, 2016 Yeah, now days anything to screw the business. Open it up to lawsuits AND government fines all in the Legal Protection Racket Quote Link to comment Share on other sites More sharing options...
bsmither Posted November 4, 2016 Share Posted November 4, 2016 Here is an experiment to try. /modules/gateway/Authorize/gateway.class.php Line 17, from: private $_result_message; To: private $_result_message; private $_result_status; Line 202, from: $this->_result_message = $results[3]; To: $this->_result_message = $results[3]; $this->_result_status = $results[1]; Lines 237-238, from: if (!empty($this->_result_message)) { $GLOBALS['gui']->setError($this->_result_message); To: if (!empty($this->_result_message)) { switch ($this->_result_status) { case 1: $GLOBALS['gui']->setInfo($this->_result_message); break; default: $GLOBALS['gui']->setError($this->_result_message); } These edits will add a class variable to hold the transaction status. If the status is '1', then the transaction is a success and the message, if any, will be in a light-cyan background box. Any other status, presumably not successful, will be in the established red background box. Quote Link to comment Share on other sites More sharing options...
LaughingHorse Posted November 10, 2016 Author Share Posted November 10, 2016 Sorry for the delay. there were some external issues that came up and I just did the edit. After making the changes, when I went to test using a credit card I ended up with a blank page on this URL https://emperorsherbologist.com/cart/index.php?_a=gateway Quote Link to comment Share on other sites More sharing options...
bsmither Posted November 10, 2016 Share Posted November 10, 2016 Please let us see the edit you made. Post lines 235-240. Quote Link to comment Share on other sites More sharing options...
LaughingHorse Posted November 10, 2016 Author Share Posted November 10, 2016 /* EDIT Change This: if (!empty($this->_result_message)) { $GLOBALS['gui']->setError($this->_result_message); } To This: */ if (!empty($this->_result_message)) { switch ($this->_result_status) { case 1: $GLOBALS['gui']->setInfo($this->_result_message); break; default: $GLOBALS['gui']->setError($this->_result_message); } Quote Link to comment Share on other sites More sharing options...
bsmither Posted November 10, 2016 Share Posted November 10, 2016 Please make this edit: === FROM EXISTING === /* EDIT Change This: if (!empty($this->_result_message)) { $GLOBALS['gui']->setError($this->_result_message); } To This: */ if (!empty($this->_result_message)) { switch ($this->_result_status) { case 1: $GLOBALS['gui']->setInfo($this->_result_message); break; default: $GLOBALS['gui']->setError($this->_result_message); } === TO THIS === /* EDIT Change This: if (!empty($this->_result_message)) { $GLOBALS['gui']->setError($this->_result_message); } To This: */ if (!empty($this->_result_message)) { switch ($this->_result_status) { case 1: $GLOBALS['gui']->setInfo($this->_result_message); break; default: $GLOBALS['gui']->setError($this->_result_message); } } Which is to say, a closing parentheses was inadvertently enclosed within the comment block. So, it needs to be added back. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.