php - Sagepay 5006 错误代码修复

标签 php payment-gateway payment opayo

任何人都可以让我知道为什么 sagepay 会抛出 5006(无法重定向到供应商的网站。),我可以将交易发布到 sagepay 并且可以在 sagepay 结束时提供信用卡信息。但是,我的问题是一旦它返回到我的通知页面,它就会抛出错误 5006。

并且我最终无法访问成功或失败的 URL。

最佳答案

请参阅以下有关交易失败错误 5006 问题的建议:无法重定向到供应商的网站。供应商未能提供 RedirectionURL。

错误消息本身并不总是完全准确,因为当他们在回复您的 NotificationURL 的帖子时收到的通知响应存在任何类型的问题时会显示它。以下是您可以调查的各种已知问题的列表:

1) 您可以确认收到交易响应,状态为 OK、INVALID 或 ERROR

2) 在将上述三个字段写入 POST 的 Response 对象之前,请确保清除您的响应缓冲区以删除任何标题代码、注释或 HTML。 Sage Pay 服务器期望“Status=”是响应中的第一个字符。如果它没有看到这些,它会将响应视为错误并且使事务失败!

3) 您的通知页面应该只响应一个状态字段、一个 RedirectURL 字段和一个可选的 StatusDetail 字段。在这些字段之前或之后不应包含其他 HTML、标题、注释或文本。 Sage Pay Server 会将所有此类文本视为错误并使交易失败

4) 无论状态如何,必须将 RedirectURL 包含有效的、完全合格的 URL(即以 http://或 https://开头的地址)发送到您网站上的最终完成页面,Sage Pay 会将您的客户发送到该页面

5) 编码必须为 Name=Value 字段,由回车换行符 (CRLF) 分隔

6) 您服务器上的通知页面可能“崩溃”,您应该检查以确保您服务器上的通知页面可以正确处理 Sage Pay 发送的所有消息(OK、ABORT、NOTAUTHED、REJECTED、PENDING 和 ERROR)。

7) 在验证通知 POST 时没有发生错误的所有情况下,您都应该发送 OK,因此即使 Sage Pay 向您发送 ABORT 或 NOTAUTHED 状态,您也应该回复 OK 和指向通知客户页面的 RedirectURL交易没有完成。

8) Sage Pay 网关运行在多种固定 IP 地址上,它们通常使用单独的 IP 地址来响应所有交易请求。

请确保您的服务器或防火墙中允许使用以下所有 IP 地址:

对于到我们网关的出站流量:

195.170.169.9 – live.sagepay.com
195.170.169.8 – test.sagepay.com

对于入站流量,如果您使用的是 SERVER,则只需要将 IP 列入白名单,因为这是启动回调的唯一解决方案。您不需要将此应用于我们的 FORM 和 DIRECT 集成。我们回调的IP是:

195.170.169.14
195.170.169.18
195.170.169.15

Sage Pay 使用的子网掩码是 255.255.255.000。

确保您的防火墙允许出站端口 443(仅限 HTTPS!)和入站端口 443(以及可选的 80 HTTP)访问,以便与我们的服务器(在模拟器/测试/实时上)进行通信。
然而,这种情况总是有改变的空间。 Sage Pay 拥有整个 195.170.169.0/255 范围(256 个 IP)。

9) 您是否使用我们通过 NextURL 传递到您的通知页面的“SecurityKey”在您的数据库上正确匹配交易

10) 如果 MD5 签名匹配,您的通知脚本应以 OK 状态和 RedirectURL 响应,指向订单完成页面(如果状态正常)或适当的订单失败页面(如果状态是 NOTAUTHED 或 ERROR) .您可能希望 ABORT 消息将客户重定向到为他们提供其他付款方式的页面,或询问他们为什么选择取消。如果签名不匹配,您应该检查您的代码是否正确地重建了消息,如果您确定是这样,则应对所有此类消息使用 INVALID 和将用户指向失败页面的 RedirectURL。

关于php - Sagepay 5006 错误代码修复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3263830/

相关文章:

javascript - 如何为移动设备重定向单个页面?

ruby-on-rails - PaypalExpressGateway 上的 Activemerchant Paypal 重复付款错误

php - 如何使用信用卡配置 Paypal 付款

PHP Paypal API : How to Capture Authorized Payment Partially?

ruby-on-rails - 如何解决因不正确的Iban或Bic导致的Mangopay错误

django - 禁止(未设置 CSRF cookie。):/paypal/| Django

php - 如何在 PHP 中提取 URL 的一部分以删除特定部分?

php - 大写单词的正则表达式

php - 使用查询字符串隐藏 url 的 .php 扩展名

magento - 取消授权交易过期的订单