无法从Drupal重定向到PayPal


Unable to redirect from Drupal to PayPal

我对Drupal完全陌生。我在Drupal中使用纯HTML创建了一个表单,当用户点击支付时,我调用一个PHP文件来获取一些数据库信息,随后这个PHP重定向到另一个PHP,将PayPal支付放在一起。

出于某种原因,当从Drupal下调用PayPal支付PHP时,它不会重定向到PayPal。我的图层如下:

https://example.com/test/?q=node/11-->调用savedatatoDB.php-->调用paypalpreparepayment.php-->重定向到paypal

如果我从浏览器直接调用PayPal支付PHP,如下所示:https://example.com/test/paypal/restapi/sample/payments/PaymentPP.php?samount=0.005&spice=123.45&description=产品&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是否会以某种方式阻止重定向。

我从Drupal.org得到了一个有意义的答案。

以下是链接:https://www.drupal.org/node/2365503#comment-9295613

Jaypan评论大约11小时前

问题是你的重定向在服务器端,但你用JavaScript触发它。如果触发器在JS中,则重定向也需要在JS中发生。如果触发器是非JS(提交到服务器),然后您的重定向可以在服务器端。