【问题标题】:Opencart page won't redirectOpencart 页面不会重定向
【发布时间】:2013-05-15 06:00:51
【问题描述】:

我制作了一个可以使用的自定义支付网关。现在我已将 3D 安全集成到网关中,并且在确认订单后很难重定向。

我尝试过使用

$this->response->setOutput(json_encode($json));

还有

$this->redirect($url);

还有

$this->redirect($this->url->link($url)); //shortened $url

我还编写了自己的自定义重定向函数,强制将 html 元刷新到代码中,但仍然没有骰子。

错误怎么办...除了直接调用 php header('location:') 并收到 headers already sent 错误外,我没有收到任何错误。我还插入了我自己的错误记录/跟踪代码,我得到了函数实际上正在执行的信息。

我知道该扩展程序有效,因为手动将相关链接直接插入浏览器会给我带来结果。

任何帮助将不胜感激。

谢谢。

【问题讨论】:

  • 您是否尝试使用 iframe 内的重定向或类似的东西?
  • 不,我不是。我正在尝试直接从控制器内调用重定向。
  • 如果您在 setOutput 之后立即进行重定向,并且您从 javascript 中调用了该方法,那么它当然不起作用。在 $json 中发送一些响应 url 变量并使用 javascript 重定向。
  • 查看其他支付服务的源代码。在 callbackconfirm 方法中,它们也在重定向 - 所以检查与你所做的不同的地方并尝试修复它,以便 PHP 重定向可以工作......
  • 我尝试通过在 url 上创建会话并使用 isset 在视图中使用 javaScript 进行重定向。一些新的亮点也被揭示了——我意识到我一直在摆弄一个我不知道它在哪里被调用的函数。知道调用支付模块中的 send() 或回调函数的地方吗?

标签: php opencart 3d-secure


【解决方案1】:

如果您的代码是手动工作的,您可以使用 javascript 重定向而不是 php 标头重定向功能。

<script> window.location = '<?php echo $this->url->link($url); ?>' </script>

有时,如果页面编码不合适或出现错误等,标头重定向有时无法工作。Javascript 重定向在相同情况下对我有用。

【讨论】:

  • 感谢您的建议。我创建了一个新的视图文件并尝试在控制器中调用模板配置代码(在 WorldPay 支付扩展中看到了这种方法)。 ` if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/payment/pay_send.tpl')) { $this->template = $this->config->get('配置模板') 。 '/template/payment/pay_send.tpl'; } else { $this->template = 'default/template/payment/pay_send.tpl'; $this->response->setOutput($this->render()); ` 仍然没有工作。抱歉评论格式错误:(
  • @machineaddict 我在视图中更改了这一行 if (json['success']) { location = json['success']; } to if (json['success']) { window.location = json['success']; } 并且它现在重新定向。谢谢耶稣。现在但是,它似乎重定向到 "index.php?route=" 即使完整的 url {"success":"http:\/\/my_site\/index.php?route=checkout\/checkout"} 正在通过了。有关如何解决此问题的任何建议?
  • 解决方案在您的控制器文件中。从控制器发送 json 成功元素中的完整 url。你可以使用$this-&gt;url-&gt;link('checkout/checkout')等。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-09-06
  • 1970-01-01
  • 1970-01-01
  • 2017-05-12
  • 2017-10-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多