供应商系统返回无效或错误以响应通知 POST - Sagepay 服务器

Vendor systems returned INVALID or ERROR in response to notification POST - Sagepay Server

我已经使用 opencart 2 建立了 2 个网站(更多在 Opencart 1 上)并且都设置为接受 Sagepay 服务器付款,但现在发现当 Sagepay 试图与 opencart 对话时,这两个网站的 Sagepay 付款都失败了开绿灯。这意味着不会向店主发送失败电子邮件通知,并且 Sagepay 取消了销售?你可以想象,两家店主都不高兴。我联系了 Sagepay 看看发生了什么,他们告诉我付款失败并出现以下错误,但就 Sagepay 而言,付款已通过所有测试,但由于调用网站无法将正确的响应发送回 Sagepay,他们不得不取消交易!

查看 Sagepay 的工作原理,它将 sagepay returns 授权接缝到 Opencart,然后 opencart 必须根据发送的内容说明它是否会接受付款,它接缝这就是 opencart 2无法正确响应?

这是另一个 OC2 错误吗?

有没有人遇到过这个,我该如何纠正

一个网站是OC 2.0.2.0,另一个是2.0.3.1 支付模块中的一切都已正确设置,IP 地址已通过 sagepay 等登录。只是支付授权后出现问题。

Transaction completed but Vendor systems returned INVALID or ERROR in response to notification POST. Transaction CANCELLED by the Vendor.

这是一个非常大的问题,不确定如何解决这个问题,因为 Opencart 2 旨在能够开箱即用,一旦在管理部分添加了一些设置,但它没有正确设置来这样做。我不敢相信没有其他人遇到过这个?

我使用了内置的 sage pay 调试选项,它告诉我这是一个 MD5 哈希不匹配,在进一步挖掘和阅读官方 Sage pay Server 文档后,有一个粗体红色的通知,说明确保供应商名称全部以小写字母提供,我的是在管理部分的标题大写。看起来 Opencart 2 的创建者忽略了这一点,我只是在 sagepay_server.php 控制器文件中的 MD5 比较之前使用 php`s strtolower 函数将供应商名称转换为小写。当然,这可以通过在 sage 支付服务器管理部分输入小写的供应商名称来避免。但是看到输入的时候没有注意,opencart应该像我一样把vendor name转成小写,保证不会出现这个错误。