我对Drupal完全不熟悉。我在Drupal中使用纯HTML创建了一个表单,当用户点击付费时我调用一个PHP文件只是为了获取一些数据库信息,随后这个PHP重定向到另一个将Paypal付款放在一起的PHP。
出于某种原因,当从Drupal下调用时,paypal支付PHP不会重定向到Paypal。我的图层如下:
https://mysite.com/test/?q=node/11 - > call savedatatoDB.php - >致电paypalpreparepayment.php - >重定向到paypal
如果我直接从浏览器调用paypal支付PHP,如下所示: https://mysite.com/test/paypal/restapi/sample/payments/PaymentPP.php?samount=0.005&sprice=123.45&description=products&sqty=100
它有效!我认为问题可能是header()之前的输出,但事实并非如此。
我在重定向之前写了一行来写日志文件,如下所示:
$today = date("D M j G:i:s T Y"); // Sat Mar 10 17:16:18 MST 2001
$log = "{$today} ready to redirect {$sale_description}, {$sale_amount}, {$sale_quantity}, {$sale_price}\n";
//Save string to log, use FILE_APPEND to append.
file_put_contents('./log_'.date("j.n.Y").'.txt', $log, FILE_APPEND);
header("Location: $redirectUrl");
exit;
日志显示我已经到了那么远但没有重定向!但是,如果我直接从浏览器调用PHP,那么我会看到Paypal要求我授权。
因此,当我在Drupal UI下时,我想知道Drupal是否会以某种方式阻止重定向。
有什么想法吗?谢谢你的帮助。
答案 0 :(得分:0)
我从Drupal.org得到了一个有意义的回答。
这是链接:https://www.drupal.org/node/2365503#comment-9295613
Jaypan评论大约11小时前
问题是你的重定向是在服务器端,但你是 用JavaScript触发它。如果触发器在你的JS中,那么 重定向也需要在JS中发生。如果触发器是非JS的 (提交到服务器),然后您的重定向可以在服务器端。