Jump to content

Intermittent Error Code On Successful Payment


LaughingHorse

Recommended Posts

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.

Red Thank You - Screenshot from 2016-11-03 11-31-09.png

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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&

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

 

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

/* 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); }

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...