我们尝试在Opencart中使用SagePay服务器功能,在通过此路由进行购买(并选择PayPal)时,我们收到此错误响应:
Status=INVALID StatusDetail= Cannot match the MD5 Hash. Order might be tampered with.
这发生在/catalog/controller/payment/sagepay_server.php的第346行
注意,事务仍然实际上是成功的 - 但只是用户没有正确地返回到站点。 用户看到的屏幕显示:
服务器错误5006:无法重定向到供应商的网站。供应商未能提供RedirectionURL。
以前有人遇到过这个错误吗?有很多关于5006错误的信息,但似乎我们的问题的路线是MD5 Hash没有匹配。
非常感谢任何帮助!
答案 0 :(得分:0)
您通过MD5哈希生成的VPSSignature必须与Sage Pay生成的VPSSignature匹配。确保Sage Pay返回的信息与字符串的内容匹配,但是通过MD5哈希。
答案 1 :(得分:0)
检查您是否使用Suhosin安全扩展,因为默认设置为suhosin.get.max_value_length
为512.由于在URL中传递了md5哈希,如果是URL超过512,它被截断,因此导致字符串不匹配。