Authorize.Net Plugin Fails for Certain Successful Transactions

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.
5 năm cách đây
NopCommerce 4.0 and 4.1
Plugin: Authorize.Net

We have been getting many transactions failing when processing valid credit card payments using the Authorize.net plugin.
The transactions that have failed are those that are successful, however, they are held to be reviewed and approved by the store owner, as part of Authorize.Net's fraud detection suite. The order still needs to be created when this happens. In the 4.0 plugin, the customer cannot complete the order, and an error is logged to the system.

We used the Authorize.net plugin in the 3.7 version, and these transactions have always processed, and the order were created.  Looks like the 4.0 plugin uses a different API which behaves differently.

Error message from the error log:
Short message: Error while placing order. Error 1: Payment error: Authorize.NET unknown error (I00001:Successful.).
Full message:
IP address: 72.143.216.217
Customer: Guest
Page URL: https://www.<our domain>.com/checkout/confirm
Referrer URL: https://www.<our domain>.com/checkout/confirm

We tried to investigate the issue, and looks like the problem is in the AuthorizeNetPaymentProcessor.cs class.

This code in the GetApiResponse function looks for a response != null
var response = controller.GetApiResponse();
if (response != null)
{

  then the code proceeds to process the response transaction.
However, a successful response can also be null, as in the example discussed here.
This is a known issue, and is discussed here:
https://github.com/AuthorizeNet/sdk-dotnet/issues/142


We can also see that the error message is logged using the code below, to generate the log message "Authorize.NET unknown error (I00001:Successful.)"
 var controllerResult = controller.GetResults().FirstOrDefault();
const string unknownError = "Authorize.NET unknown error";
errors.Add(string.IsNullOrEmpty(controllerResult) ? unknownError : $"{unknownError} ({controllerResult})");
return null;


In this case the controllerResult value of "I00001:Successful" means "The request was processed successfully",
as documented here:
https://developer.authorize.net/api/reference/features/errorandresponsecodes.html

What really needs to happen is:
If response == null
Then check the controller result (controller.GetResults().FirstOrDefault())
If the controller result is (or contains) I00001, then it is a successful transaction, and the customer should be able to complete the order.

This is a very serious issue, as it prevents customers from placing orders.
This needs to be fixed ASAP, for both 4.0 and 4.1 plugins.
5 năm cách đây
Any way someone from the Nop Team can look at this issue?
5 năm cách đây
Thanks for the detailed info. Here is a work item for this.
5 năm cách đây
I see that no one is assigned to getting this fixed.
Can someone please help us understand what the problem is?

This is a VERY SERIOUS PROBLEM! NopCommerce is basically useless if using Authorize.net until this fixed, why is no one looking at this?
5 năm cách đây
Sizzler wrote:
NopCommerce is basically useless if using Authorize.net until this fixed

This plugin is not available out of the box anymore. That's why it's a low priority for us now
5 năm cách đây
Hello Sizzler

i think you already figured the issue and it looks fix is easy as well.
if there is URGENCY for you then i think its good that until nop team resolve you guys can resolve on your end.

Let me know if you need any help from my end, i will be happy to assist you
5 năm cách đây
a.m. wrote:
This plugin is not available out of the box anymore. That's why it's a low priority for us now


Andrei, thanks for your response.

Please consider that the Authorize.Net was part of the core, out of the box solution for a very long time, as such you potentially have thousands of businesses using it.  Upgrading to a newer version of Nop would typically not motivate a business to switch payment gateways just because now it's not out of the box. So now you may have thousands of businesses using it, where it is not working properly.  Knowing this, and that it is a critical issue for this plugin, would it not be logical and proper to prioritize this fix higher? I have also provided some key insights so potentially it may be an easier fix if you are able to test it properly.  Thank you.
4 năm cách đây
Now this issue is solved into 4.2. I have already verified this.
This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.