我从 PayPal 的技术部门得到了很好的回应。谢谢伊格纳西奥。我将与此问题的其他人分享我的发现。这是我收到的回复。
我的网站正在使用 PayPal UK Website Payments Pro Hosted
解决方案。当客户被引导至 PayPal 进行付款时
他们有两个选项,“使用我的 PayPal 帐户付款”或“使用
我的借记卡或信用卡”。
Website Payments Pro Hosted Solution 有两种不同的付款方式:
- 直接使用信用卡付款,它在内部使用我们的 DoDirectPayment API 在没有 PayPal 帐户的情况下使用信用卡。
- 使用 PayPal 帐户付款,这基本上是重定向到我们的 PayPal 标准付款方式和页面。
如果客户选择使用他们的 PayPal 帐户,他们会登录并
付款并收到 PayPal 付款确认
页面显示“感谢您的订单。你现在要回到
...'此页面悬停约 5-10 秒,然后重定向
客户返回确认订单并发送电子邮件的网站
发送等。
当客户使用 PayPal 帐户付款并启用自动退货时,这是 PayPal Standard 中的预期行为。
Pro Hosted 解决方案中包含的“使用 PayPal 付款”选项之所以发生这种情况,是因为如上所述,此选项基本上是我们的 PayPal 标准付款方式,因此行为完全相同。
我的问题是一些客户没有等待被重定向,
这导致订单确认错误。我的问题是如何
我可以完全跳过 PayPal 付款确认页面吗?
很遗憾,根本无法跳过此页面。不是来自您的 PayPal 帐户设置,也不是通过发送任何变量。
我开启了自动返回。我已经设置了一个返回 URL。支付数据传输
开启。 showHostedThankyouPage = 假。而且我的想法已经不多了...
我宁愿不必使用 IPN,因为这意味着进一步的集成和
编程。
我们绝对推荐 IPN 作为获取新付款通知的更可靠方式,因为即使“自动退货”功能立即生效,一些客户仍然可以立即关闭浏览器。
如果启用了 IPN,无论客户是否返回您的网站,PayPal 都会始终向您的通知 URL 发送 POST。
有没有办法解决这个问题?在我们升级到 Payments Pro 之前,我们是
使用 Express Checkout 并且能够简单地通过 SOLUTIONTYPE=Sole
和 LANDINGPAGE=Billing 并且我们能够跳过该确认
页步骤。我希望有一种方法可以做类似的事情,所以它
不需要重写。
快速结账流程不同于 PayPal 标准。当客户在 PayPal 中点击“继续/付款”时,我们不会尝试接受付款,而是立即将客户带回 RETURNURL,您自己的集成将通过以下方式完成付款发送 DoExpressCheckoutPayment API 请求。
但同样,Pro Hosted 解决方案中的“Pay with PayPal”选项使用的是 PayPal Standard 而不是 Express Checkout。
除了使用 IPN 之外,我可以建议的唯一替代方法是禁用 Pro Hosted 解决方案中的“使用 PayPal 支付”选项(这可以从我们这边完成),以便客户只有选择通过直接信用卡而不是 PayPal 付款,然后独立于 Pro Hosted 解决方案为您的 PayPal 付款实施 Express Checkout。