【问题标题】:PayPal doesn't redirect to return URL anymorePayPal 不再重定向到返回 URL
【发布时间】:2024-01-22 03:45:01
【问题描述】:

付款完成后 PayPal 没有向我发送返回 URL 可能是什么问题?这仅适用于信用卡付款,一切都适用于直接 PP 付款。

我使用 iFrame 并收到完整的付款消息“感谢您的付款”,但该消息在 iFrame 中,我想在付款后刷新整个页面。所以在验证函数之后:

$verified = $ipn->verifyIPN();

我正在使用以下命令重定向到另一个页面: header(); 但它不适用于信用卡付款。

错误:

Invalid 'X-Frame-Options' header encountered when loading 'https://www.paypal.com/hostedpaymentnodeweb/payWithCC': 'ALLOW' is not a recognized directive. The header will be ignored.

我也在 PHP 脚本的末尾尝试了这个:

echo '<script type="text/javascript">window.top.location.href = "https://www.test.com";</script>';

【问题讨论】:

  • 我很困惑。您说的是返回到您提供的返回 URL,但这与 IPN 无关。 IPN 是服务器到服务器的通信,它不在浏览器中进行。如果您尝试将数据发送回您的返回 URL,则需要使用 PDT。如果这就是您正在做的事情,并且您正在使用 IPN 脚本,这很可能是您问题的根源。
  • 嗯,是的,IPN 在浏览器中什么都不做,但是通常在支付完成后,PayPal 会重定向到参数中提供的重定向 URL,但现在它什么也不做。如果我使用 PayPal 交易,它会完美地重定向,问题只发生在信用卡支付上。
  • 那么您在 PayPal 帐户配置文件中启用了 PDT 和自动退货?
  • 我建议您使用 Express Checkout API 而不是 PayPal Standard。这样,无论用户在结账时选择了何种自动返回设置或支付方式,用户最终都会回到您的网站。
  • 是的,Express Checkout 的工作方式甚至在您已经返回 ReturnURL 之前也不会影响最终付款。

标签: php iframe paypal paypal-ipn


【解决方案1】:

只有在使用 PayPal 帐户付款时,PayPal 才会自动将您的买家重定向到您在按钮代码中指定的 URL。

正如他们的网站 https://www.paypal-knowledge.com/infocenter/index?page=content&id=FAQ2056&pmv=print&impressions=false&viewlocale=en_US 所述,此功能仅适用于成功完成后的 PayPal 付款。

如果您使用的网站支付标准也称为 PayPal 支付标准,我建议您传递变量名称“cbt”来自定义出现在重定向链接上的文本,以便那些买家(使用信用卡/借记卡付款)知道这个链接。

您可以参考此链接以获取可以在按钮代码中附加的自定义变量列表:https://developer.paypal.com/webapps/developer/docs/classic/paypal-payments-standard/integration-guide/Appx_websitestandard_htmlvariables/

【讨论】: