2013-05-20 87 views
0

我製作了一個自定義支付網關。現在我已經將3D安全功能集成到網關中,並且在確認訂單後很難重新定向。Opencart頁面不會重定向

我一直在使用

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

$this->redirect($url); 

以及

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

我也寫我自己的自定義重定向功能,強迫HTML元刷新到代碼嘗試仍然沒有骰子。

怎麼樣的錯誤...我沒有得到任何錯誤,除了一次,當我直接調用PHP頭('位置:'),並得到一個頭已經發送錯誤。我也插入了我自己的錯誤日誌/跟蹤代碼,我得到的信息是功能實際上正在執行。

我知道擴展工程,因爲手動插入相關鏈接直接進入瀏覽器給我的結果。

任何幫助,將不勝感激。

謝謝。

+0

您是否嘗試使用iframe中的重定向或沿着這些行的東西? –

+0

不,我不是。我正嘗試從控制器內部直接調用重定向。 – toocoded

+0

如果您在** setOutput **之後重定向,並且您從JavaScript調用該方法,那當然不起作用。在** $ json **中發送一些響應url變量並使用javascript重定向。 – machineaddict

回答

0

如果您的代碼是手動工作的,您可以使用JavaScript重定向而不是php頭重定向功能。

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

有時候,頭重定向有時不能,如果網頁的編碼不適合工作或得到一個錯誤,等等JavaScript重定向在相同的情況下爲我工作。

+0

感謝您的建議。我創建了一個新的視圖文件,並嘗試在控制器中調用模板配置代碼(請參閱WorldPay付款擴展中使用的此方法)。如果(file_exists(DIR_TEMPLATE。$ this-> config-> get('config_template')。'/template/payment/pay_send.tpl')){ \t \t \t \t $ this-> template = $ this-> config - > get('config_template')。 '/template/payment/pay_send.tpl'; \t \t \t}其他{ \t \t \t \t $這個 - >模板=「缺省的/模板/支付/ pay_send。第三方物流; \t \t \t} \t \t \t \t \t \t $這 - >響應 - > setOutput($這 - >渲染()); 「儘管如此,仍然沒有工作。遺憾的評論:( – toocoded

+0

@machineaddict的壞格式化我在視圖中改變了這種線 如果(JSON [ '成功']){ 位置= JSON [ '成功']; } 到 如果(JSON [ '成功']){ 了window.location = JSON [ '成功'];} 。? ,現在重新定向謝謝耶穌 然而現在,它似乎重定向到」的index.php路線=「,即使完整的網址{」success「:」http:\/\/my_site \ /index.php?path=checkout\\\\\\\\\\\\\「}正在被傳遞 關於如何解決這個問題的任何建議? – toocoded

+0

解決方案在您的控制器文件中。從控制器發送json的成功元素中的完整url。你可以使用'$ this-> url->鏈接('checkout/checkout')'等。 – hkulekci