【问题标题】:When does a site send back 200 OK to referrer?网站何时向推荐人发送 200 OK?
【发布时间】:2011-05-20 14:37:18
【问题描述】:

我试图理解 HTTP 响应代码的概念,但有些困惑。

我有一个从支付网关接收付款的网站。客户被重定向到网关站点,然后在付款后网关重定向回我的站点的回调函数。

这一切都很好,但是问题是我网站的回调函数获取响应代码并将其重定向到成功或失败页面。

支付网关被传回由此发生的“302”重定向标头,并认为这是一个安全风险,即使它是一个内部重定向,没有传递任何数据(因为 302 不保留 POST/GET 变量反正)。所以它取消了付款。

但实际上,当网关点击我的回调函数时,不应该发回 200,因为它被发现了,我认为它会被发回网关并满足他们。从那时起,无论内部发生什么,他们都不应该关心或知道。但似乎在到达最终着陆页并且页面执行停止之前不会发送 200。

我发现“欺骗”网关的唯一解决方法是使用 javascript 重定向或元重定向,因为它不会传回重定向标头代码。但是有没有更好的方法或者我应该做一些不同的事情?

【问题讨论】:

  • “重定向回我网站的回调函数”完全没有意义。你能更好地描述这里发生的事情吗?他们是否与客户端会话分开发布数据?还是该数据会返回到您的脚本客户端?告诉我们发生了什么,也许我们可以提供更好的帮助。
  • 谁在点击回调函数?支付处理器,还是支付处理器将用户重定向到回调页面?

标签: php http redirect httpresponse


【解决方案1】:

简单的答案:不要重定向支付网关的返回路径。您需要以不同方式处理成功/失败逻辑,并且对支付处理器透明。

【讨论】:

  • @DssTrainer 您似乎有意使用某种重定向,我是说您不必这样做,那样会更好。你问是否有更好的方法或你应该做不同的事情......问题解决了。
  • 但这并不是一个真正的选择。购物车一直在重定向。您从网关收到通过/失败消息,您必须完成订单并向客户显示成功页面。如果网关支持“通知 url”和“成功 url”,您可以将客户直接传回成功 url 并将结果代码传回通知 url 并让两个页面都停在那里.但是这个网关没有 2 个 url 选项。所以我需要从它发回的一个 url 做这两件事。
  • @DssTrainer 什么购物车?您不需要两个 URL,您可以在一个页面上管理成功和通知逻辑。你正在使用 PHP,这是微不足道的东西......或者你可以做你的 js/meta 重定向黑客,没有任何其他的解决方案。
  • 好的,那么 JS/meta 是唯一的解决方案。没有办法隐藏或伪造返回给网关的响应?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-09-26
  • 1970-01-01
  • 2010-12-14
  • 2016-05-14
  • 2014-06-22
  • 2016-04-07
  • 1970-01-01
相关资源
最近更新 更多