【问题标题】:PayPal Plus - Payment state for confirmationPayPal Plus - 确认付款状态
【发布时间】:2021-02-22 13:32:30
【问题描述】:

我目前正在自定义 TYPO3 扩展中实现 PayPal Plus。一切正常,但我想知道 PayPal 可能会返回哪些付款状态。

到目前为止,当付款完成时,我得到状态“批准”并相应地处理我的代码,因为我认为付款很好。 PayPal 文档是如此神秘,它们到处都是,我真的不知道该看哪里,每次使用他们的 API 时感觉就像是第一次。

这是我目前不确定的部分:

$pay = $this->payPalService->executePayment(paymentId, $payerId, $json->access_token);

if ($pay->state == 'approved') {
    $this->orderService->update($paymentId);
    $this->redirect('paymentSuccessful', 'Order');
}

我所说的基本部分是$pay->state == 'approved'。我可以假设批准意味着我可以安全地处理订单并将其视为成功付款吗?官方PayPal Plus docs不提这个。

【问题讨论】:

    标签: php paypal paypal-plus


    【解决方案1】:

    如果您单击您提到的文档左下角的“参考”,则会有一个指向 v1/payments API 参考的链接,其中记录了此执行 API 调用和可能的响应:https://developer.paypal.com/docs/api/payments/v1/#payment-execute-response

    状态...可能的值:created、approved、failed。

    就字段可以采用的值而言,这似乎相当简单。所以这个,“批准”意味着执行成功。

    但是,要根据您的问题将某些内容标记为“已成功支付”,您应该在transactions[0]->related_resources[0]->sale 中寻找销售对象。它的 id 是您应该存储用于会计目的的 PayPal 交易 ID。它会有自己的“状态”,documented here:

    状态...可能的值:完成、部分退款、待定、退款、拒绝

    您应该将“已完成”视为成功,将“待处理”视为需要在 PayPal.com 帐户中手动关注的事项

    【讨论】:

    • 我并没有真正关注 v1 文档,因为它被标记为已过时。但是您的回答解决了一些问题,谢谢。
    猜你喜欢
    • 2018-02-09
    • 2011-01-21
    • 2019-08-07
    • 1970-01-01
    • 2015-01-19
    • 2016-08-22
    • 2011-12-02
    • 1970-01-01
    • 2013-08-14
    相关资源
    最近更新 更多