如果客户在完成付款后关闭浏览器,如何获得 PayPal PDT?

Posted

技术标签:

【中文标题】如果客户在完成付款后关闭浏览器,如何获得 PayPal PDT?【英文标题】:How to get PayPal PDT if customer close the browser after completing payment? 【发布时间】:2020-02-12 02:59:38 【问题描述】:

我有一个电子商务平台,客户在该平台上为产品付款。我们为跟踪客户详细信息所做的是使用 PDT(支付数据传输)自动返回到我们的网站。但最近我们看到一些客户在完成付款后关闭了浏览器。所以他们不会自动重定向回我们。我们不能做进一步的程序。那么在这种情况下我们应该怎么做呢?我们该如何解决?

【问题讨论】:

您不应依赖 PDT 来确认付款。由于网络错误,用户可能会关闭窗口或不被重定向,因此您不会确认交易。您应该使用 IPN(或 webhook) 是的,这是真的。但有时获取ipn需要很长时间。所以,我需要 pdt 至少确认付款并让用户做一些进一步的程序。我的意思是我想在返回我的网站后在成功页面中做一些事情。 不幸的是,您是对的,有时获取 IPN 需要时间。不幸的是,如果正确启用自动返回,我认为您无能为力 是的,真的很不幸。 【参考方案1】:

不保证从无 API 支付标准集成中自动返回。有时,特别是在客人结账的情况下,PayPal 必须出示收据,因此客户必须手动点击返回。或者网络连接可能会中断,或者他们的浏览器可能会崩溃。所以依赖 PDT 来触发业务逻辑是一个非常糟糕的主意。

替代方案:

    等待异步 webhook:https://developer.paypal.com/docs/integration/direct/webhooks/——或类似(旧解决方案),异步 IPN:https://developer.paypal.com/docs/classic/products/instant-payment-notification/

    从支付标准更改为基于 API 的同步服务器端集成,例如此框架演示中显示的那个:https://developer.paypal.com/demo/checkout/#/pattern/server。这样,从您的服务器进行捕获(在浏览器执行 fetch 命令或重定向回您的服务器之后),因此当您的服务器对 PayPal 进行 API 调用以捕获付款时,您会立即获得 API 响应。

【讨论】:

以上是关于如果客户在完成付款后关闭浏览器,如何获得 PayPal PDT?的主要内容,如果未能解决你的问题,请参考以下文章

PayPal EC 付款完成后,woocommerce 中的订单状态如何更改? [关闭]

使用贝宝快速结帐完成付款后如何获取授权ID

Paypal重复/订阅集成问题[关闭]

定期付款和 Paypal 后更新到期日期

为客户订阅定期付款计划后如何获取费用 ID?

微店客户支付成功了,银行卡也扣钱了,但是订单显示未付款,店家这边也显示未付款,这是啥情况?