首页 > 解决方案 > Paypal 实时支付未能向客户收费

问题描述

我创建了一个使用 PayPal 作为支付网关的 PHP 网站,一切都在沙盒模式下运行,我自己也在实时支付中对其进行了测试,并且它运行良好。

今天我收到一个报告说客户付款但不成功,我检查了我的paypal日志,第一次付款成功但她不断尝试才发现她的资金不足。

这是我的日志

[26-03-2020 10:03:50] PayPal\Core\PayPalHttpConnection : INFO: POST https://api.paypal.com/v1/oauth2/token
[26-03-2020 10:03:51] PayPal\Core\PayPalHttpConnection : INFO: Response Status  : 200
[26-03-2020 10:03:51] PayPal\Core\PayPalHttpConnection : INFO: POST https://api.paypal.com/v1/payments/payment
[26-03-2020 10:03:52] PayPal\Core\PayPalHttpConnection : INFO: Response Status  : 201
[26-03-2020 10:14:18] PayPal\Core\PayPalHttpConnection : INFO: POST https://api.paypal.com/v1/payments/payment
[26-03-2020 10:14:19] PayPal\Core\PayPalHttpConnection : INFO: Response Status  : 201
[26-03-2020 10:22:01] PayPal\Core\PayPalHttpConnection : INFO: POST https://api.paypal.com/v1/payments/payment
[26-03-2020 10:22:01] PayPal\Core\PayPalHttpConnection : INFO: Response Status  : 201
[26-03-2020 10:36:10] PayPal\Core\PayPalHttpConnection : INFO: POST https://api.paypal.com/v1/payments/payment
[26-03-2020 10:36:11] PayPal\Core\PayPalHttpConnection : INFO: Response Status  : 201
[26-03-2020 10:58:49] PayPal\Core\PayPalHttpConnection : INFO: POST https://api.paypal.com/v1/payments/payment
[26-03-2020 10:58:49] PayPal\Core\PayPalHttpConnection : INFO: Response Status  : 201

由于未知原因,我认为 PayPal 付款状态不是approved $result->getState() == 'approved',这就是它没有将客户带到成功页面并保存订单信息的原因。

现在我的问题是,由于我找不到TransactionID和,我该如何收取费用PayerID?或者在任何地方我都可以找到这些信息以便向客户收费?

我已经登录到链接到的贝宝帐户LIVE API,但没有记录交易也没有待处理的交易,当我查看开发人员仪表板时,Live API Call History我看到了PayPal Debug ID今天日期的列表,我可以用它做些什么吗?

标签: phppaypal

解决方案


现在编辑日志已添加到问题中:

由于未知原因,我认为贝宝付款状态未获批准$result->getState() == 'approved',这就是它没有将客户带到成功页面并保存订单信息的原因。

每当客户选择在 PayPal 结帐中付款时,就会出现批准状态。如果他们不继续结帐,它将保持未经批准。这不太可能有任何问题。

现在我的问题是,由于找不到 TransactionID 和 PayerID,我该如何收取付款?或者我可以在任何地方找到这些信息,以便向客户收费?

你不能。其中一个 PAYID 必须得到客户的批准,您才能向他们收费——如果他们获得批准,您将拥有 state=approved 并且能够从他们在批准后重定向到的 URL 中获取 PayerID。

sale/TransactionID 是您在执行付款的下一步中获得的东西。


底线:如果客户从未被重定向回来,并且您不知道他们的 PayerID,因此从未执行过付款——因此没有 transactionID,客户也没有自己的 transactionID从发送付款。好吧,没有 PayPal 交易。


推荐阅读