Magento REDSYS SHA256 在 TPV 上发出错误 180 并且没有订单确认

Magento REDSYS SHA256 issue error 180 on TPV and no order confirmation

我们在 Magento 版本 1.8.1 中开展业务,并使用 Redsys 模块通过 VISA 实现支付。 随着 SSL 的 SHA256 新实现,Redsys 为 upgrade/install Redsys 模块(实际版本 2.8.3)提供以下模块:

http://www.redsys.es/wps/wcm/connect/redsys/52db13b8-af9e-4d1c-b796-3890b72ddb75/redsys_magento_V2.8.3.zip?MOD=AJPERES

安装顺利:将东西放在应有的位置并开始调试。

所以,我们开始:所有运行,它在第一次尝试时似乎运行良好,但订单仍处于 "New" 状态,而不是 "Processing"。此外,TPV 平台在通知中显示“180”,这意味着它 return 进入我的商务,但出了点问题。

显然 return 代码是模块的真正代码。

对此有什么想法吗?

使用新的 Magento 模块社区支持http://redsys-magento.devopensource.com/ 这是兼容的 SHA256

找到解决方案,将订单 Id 编码为发送到 Redsys 的行 79:

\app\code\local\Excellenceredsys\Redsys\controllers\IndexController.php

$numpedido = str_pad($orderId, 12, "0", STR_PAD_LEFT);

所以结果是:0001XXXXXXXXXX(至少对我的商业而言)

这会在行 301:

中产生问题

$order = Mage::getModel('sales/order')->loadByIncrementId($orde);

由于填充零,无法按 ID 获取顺序。

  • 快速解决方案:$order = Mage::getModel('sales/order')->loadByIncrementId($orde*1);
  • 无 Var 类型更改解决方案:去掉填充零,可能使用 substr 函数。

我遇到了同样的问题。订单没问题,但它们仍处于待处理状态,我没有收到订单的电子邮件,但我收到了来自 redsys 的交易电子邮件。

我更改了第 301 行,状态正在处理中,我收到了来自客户的包含订单的电子邮件。