Invalid notification with authorize plugin payment

  • Posts: 4
  • Thank you received: 0
  • Hikashop Business
1 hour 33 minutes ago #373451

-- url of the page with the problem -- : secure.authorize.net/gateway/transact.dll
-- HikaShop version -- : 6.6.0
-- Joomla version -- : 6.1.3
-- PHP version -- : 8.3.33
-- Error-message(debug-mod must be tuned on) -- : Invalid notification

Hello,

Thank you for your component. It is very well designed and greatly appreciated.

I am experiencing an issue with the Authorize.Net payment plugin in SIM mode.

The payment is successfully approved and captured by Authorize.Net. However, when the response is sent back to HikaShop, the following message is displayed:

“Invalid notification.”

The HikaShop order is then automatically changed from “Created” to “Cancelled,” even though the transaction was successfully approved by Authorize.Net.

The debug log confirms the following:

* x_response_code = 1
* x_response_reason_text = This transaction has been approved
* x_SHA2_Hash is present
* x_MD5_Hash is empty
* The correct order is identified through x_po_num
* The amount and currency are correct

I have completed the following checks:

* The Signature Key contains exactly 128 hexadecimal characters.
* It does not contain spaces, line breaks, quotation marks, or a 0x prefix.
* The Signature Key was removed, entered again, and saved.
* The MD5 Hash field is empty.
* The same Signature Key works successfully with Odoo using the same Authorize.Net account.
* I tested the transaction without accented characters in the address, but the notification was still rejected.
* The Authorize.Net Response/Receipt URL is correctly registered.
* The response successfully reaches HikaShop and the correct order is loaded.

I also receive the following PHP warnings:

Warning: Undefined property: plgHikashoppaymentAuthorize::$payment_params in plugins/hikashoppayment/authorize/authorize.php on line 360

Warning: Attempt to read property "debug" on null in plugins/hikashoppayment/authorize/authorize.php on line 360

At the beginning of the onPaymentNotification() function, the following property appears to be accessed before the payment parameters are loaded:

if($this->payment_params->debug)

The payment parameters appear to be loaded only later, after the order number has been obtained:

$order_id = (int)@$vars;
$dbOrder = $this->getOrder($order_id);
$this->loadPaymentParams($dbOrder);

Could you please confirm whether there is a known issue with the SHA-512 hash calculation or validation in the Authorize.Net SIM plugin and provide the appropriate secure patch if necessary?

I do not want to disable SHA-512 validation. I can provide a sanitized payment log and the relevant sections of the authorize.php file if needed.

Thank you very much for your assistance.

Micheline

Please Log in or Create an account to join the conversation.

Time to create page: 0.049 seconds
Powered by Kunena Forum