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

我们在 Magento 1.8.1 版中有一个商业,并使用 Redsys 模块通过 VISA 实现支付。随着 SSL 的 SHA256 的新实现,Redsys 提供了以下模块来升级/安装 Redsys 模块(实际上是 2.8.3 版):

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

安装顺利:把东西放在应该的地方并开始调试。

所以,我们开始吧:所有运行,它似乎在第一次尝试时完美运行但订单仍处于“新”状态而不是“处理中”。此外,TPV 平台在通知中显示“180”,这意味着它返回到我的业务,但出现了问题。

显然,在返回时出现了问题,代码是模块的真实代码。

对此有任何想法吗?

解答

找到了一个解决方案,将订单 ID 编码为在 79 行中发送到 Redsys:

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

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

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

这会在 301 行中产生问题:

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

由于填充零,它无法按 id 获取订单。

  • 快速解决方案:$order u003d Mage::getModel('sales/order')->loadByIncrementId($orde*1);

  • 无 Var 类型更改解决方案:去掉填充零,可能使用 substr 函数。

Logo

更多推荐