Php Sagepay 5006错误代码修复

Php Sagepay 5006错误代码修复,php,payment-gateway,payment,opayo,Php,Payment Gateway,Payment,Opayo,任何人都可以告诉我为什么sagepay会抛出5006(无法重定向到供应商的网站),我可以将交易发布到sagepay,并且可以在sagepay端提供信用卡信息。但是,我的问题是,一旦它返回到我的通知页面,它就会抛出错误5006 我无法在我的终端访问成功或失败的URL。试试看 我想听听你的想法。只需在他们的论坛上搜索5006。有很多帖子 作为一般建议:对于支付网关,通常最好在其各自的供应商网站上寻求支持。重定向URL通常是托管在您自己网站上的页面,该页面设计为订单完成页面,我们在交易完成时将

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

我无法在我的终端访问成功或失败的URL。

试试看

我想听听你的想法。只需在他们的论坛上搜索5006。有很多帖子


作为一般建议:对于支付网关,通常最好在其各自的供应商网站上寻求支持。

重定向URL通常是托管在您自己网站上的页面,该页面设计为订单完成页面,我们在交易完成时将购物者的web浏览器重定向到该页面


有关这方面的更多信息,请查看。

请参阅以下关于您的事务失败问题的建议错误5006:无法重定向到供应商的网站。供应商未能提供重定向URL

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

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

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

3) 您的通知页面应仅使用状态字段、重定向URL字段和可选的StatusDetail字段进行响应。在这些字段之前或之后不应包含其他HTML、标题、注释或文本。Sage支付服务器将把所有此类文本视为错误,并使交易失败

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

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

6) 您服务器上的通知页面可能“崩溃”,您应该检查以确保服务器上的通知页面能够正确处理Sage Pay发送的所有消息(确定、中止、未授权、拒绝、挂起和错误)

7) 在验证通知张贴时未发生错误的所有情况下,您都应发送OK,因此即使Sage Pay向您发送中止或未授权状态,您也应回复OK和重定向URL,指向通知客户交易未完成的页面

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

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

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

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

对于入站流量,如果您使用的是服务器,则只需将IP列入白名单,因为这是发起回拨的唯一解决方案。您不需要将此应用于我们的表单和直接集成。我们回拨的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) 您是否使用我们传递给您的通知页面的“SecurityKey”与数据库上的事务正确匹配


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

我遇到了这个问题,这里的建议对我都不起作用。我最终发现了问题所在:

  • 我必须发送带有尾随斜杠的siteFqdns值
  • 我必须发送没有网址的serverNotificationUrl 前缀(即仅页面,而非完整URL)
  • 我必须对serverNotificationUrl值进行URL编码(因为它 包括查询字符串参数)

  • 只有当我完成所有这三项操作时,它才会像预期的那样运行。

    我遇到了这个问题,并通过更新strYourSiteFQDN值来解决。在我的例子中,这些值缺少https,只是http。如果站点是https,而您只提供http,sage将不会重定向。

    @VAC正如我所说,您最好直接在他们的论坛上提问。那里的机会要好得多。另外,你没有提供任何代码,所以我非常怀疑这里的任何人能帮助你。请参阅我在sagepay上的下一篇帖子@Gordon看起来像是SagePay把所有这些都放在了登录后面(或者干脆把它删除了…)唉…CIDR格式的IP范围是195.170.169.0/24(即195.170.169.0-255)