我在.htaccess
中使用以下内容强制启用https;
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://%{SERVER_NAME}/$1 [R,L]
然而,这似乎会导致SagePay抛出5003
错误和500
http错误。
该网站有一个有效的SSL,并且昨天刚刚安装,如果我注释掉这些行,它可以正常使用SagePay。我的回调页面链接为https,因此SagePay通过https重定向回我的网站,因此不像SagePay正在查看地址并看到它正在被更改。
我没有 强制使用https,它不会是世界末日,但我想这样做是为了显示https的明显优势。我做错了什么,我能做些什么来解决这个问题并继续强迫https?
答案 0 :(得分:1)
在直接联系SagePay支持并查看他们的日志以获取示例交易之后,我能够看到我们的回调网址(在用户访问SagePay支付门户之前与SagePay一起发送的请求)是手动的设置为http而不是https。
这意味着当SagePay试图回到我们的网站看看接下来要做什么时,它会使用一个http网址,然后通过我们的htaccess规则重定向。
我只能假设SagePay的安全性认为这是篡改或类似的事情,并认为交易不安全。
手动将我们的回调网址更改为https后,一切都按预期工作。
答案 1 :(得分:-1)
5003 Sage Pay Error Code
错误:内部服务器错误。
说明:如果收到此消息,则Sage Pay系统上发生了与代码相关的错误。这可能是由发布到Sage Pay服务器的信息或Sage Pay服务器的问题引起的。
解决方案:请将服务器发布的信息告知Sage Pay服务器。如果您正在使用FORM集成,请确保加密密码正确且包装正确,因为如果不正确,可能会返回此错误。如果您无法确定原因,是否可以提供TxID,以便Sage Pay可以查看交易日志?交易日志不到72小时。