php - 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
今天日期的列表,我可以用它做些什么吗?
解决方案
现在编辑日志已添加到问题中:
由于未知原因,我认为贝宝付款状态未获批准
$result->getState() == 'approved'
,这就是它没有将客户带到成功页面并保存订单信息的原因。
每当客户选择在 PayPal 结帐中付款时,就会出现批准状态。如果他们不继续结帐,它将保持未经批准。这不太可能有任何问题。
现在我的问题是,由于找不到 TransactionID 和 PayerID,我该如何收取付款?或者我可以在任何地方找到这些信息,以便向客户收费?
你不能。其中一个 PAYID 必须得到客户的批准,您才能向他们收费——如果他们获得批准,您将拥有 state=approved 并且能够从他们在批准后重定向到的 URL 中获取 PayerID。
sale/TransactionID 是您在执行付款的下一步中获得的东西。
底线:如果客户从未被重定向回来,并且您不知道他们的 PayerID,因此从未执行过付款——因此没有 transactionID,客户也没有自己的 transactionID从发送付款。好吧,没有 PayPal 交易。
推荐阅读
- django - 创建每个 django 项目并尝试运行服务器后出现此错误
- python - PyLint W0143 警告:与可调用对象进行比较
- javascript - 为什么从 div 扩展的自定义元素在样式方面不像 div
- spring - Spring自定义查询转义:
- javascript - 同时加载多个图像
- r - R shiny - 用户定义的函数在 mainPanel 中打印
- oracle - 如何在 Docker 中连接到外部 Oracle 数据库
- php - 如何在 Symfony Messenger 的中间件上禁用日志“信息”?
- algorithm - 如何使用机器学习计算文本中的单词
- javascript - 如何通过特定对象键对数组中的值求和?