不太相信我问这个问题,但在这里不用....PHP退出让我的代码工作
(使用内笨PHP)
我整合巴克莱EPDQ到一封电子商务网站采取信用卡付款。成功付款后,EPDQ将重定向回该网站,并在URL中传递查询字符串参数。我正在寻找从EPDQ发回的orderID,如果它存在PHP会话中的一些内容并重定向到付款确认页面。如果付款失败,订单ID将不在此处,因此我重定向到显示CI视图文件的付款失败方法。
此检查和会话保存程序的条件如下:
$success = false;
if($_GET['orderID'])
{
$_SESSION['payment']['order_id'] = $_GET['orderID'];
$_SESSION['payment']['method'] = 'card';
$_SESSION['payment']['ref'] = $_GET['PAYID'];
$_SESSION['payment']['status'] = 'Completed';
$success = true;
}
(请注意,初始化会话,并在此之前的代码执行创建的付款阵列)
很简单到目前为止, 对。代码为方向然后看起来像这样:
if(!$success)
{
redirect('payment/card/fail');
}
else
{
redirect('payment/confirmation');
}
我遇到的问题是,此重定向不工作,因为我所期望的。 EPDQ报告成功付款并根据需要重新导向我们的网站。然而,当我的脚本消除了它发送的GET参数并进行重定向时,它总是使用失败的重定向............除非,这是真正阻止我的那一点,我确实这个:
if(!$success)
{
exit('Failed');
redirect('payment/card/fail');
}
else
{
redirect('payment/confirmation');
}
(注意添加'退出')。
一旦我包含此退出程序,代码将在所有测试用例中执行,并开始查看付款成功页面。立即移除退出将恢复为100%测试失败。
有没有人知道为什么会发生这种情况,因为我从未见过这种情况?
Ah..aa..aah ..哈哈!标题+1! – 2013-04-09 11:46:59
你能告诉我们如何控制器.. – Svetoslav 2013-04-09 11:51:13
你可以发布'redirect()'的代码吗 – 2013-04-09 11:52:03