PayPal 付款方式“卡”未显示

问题描述 投票:0回答:1

我正在使用 Paypal API V2Javascript SDK。我还想说我正在使用 PHP 7.4 和 Angular 9,但这没有意义。

目前我处于 PayPal 沙盒模式,因此如果我上线,我看到的问题可能并不相关。

无论如何,我的前端将渲染这两个由 PayPal SDK 插件提供的 PayPal 按钮(即我没有对这些按钮进行编码,我只是使用了 Paypal Buttons 插件),并且有两个按钮,因为插件感知到这些按钮考虑到位置、环境等,这是唯一可用的选项,这很好:

无论选择哪个选项,我的后端都会调用捕获订单付款PayPal端点。

我想通过查看该调用的响应来了解用户选择了哪个选项,以便我可以在用户的交易列表中显示正确的图标(例如“使用 PayPal 付款”或“使用卡详细信息付款”)

如果用户选择了第一个选项,则响应将如下所示:

{
    ...
    "status": "COMPLETED",
    "payment_source": {
        "paypal": {
            ...
            "account_status": "VERIFIED",
            "name": {
                ...
            }     
            ...  
        }
    },  
    ...           
} 

因为我在

paypal
集合中看到
payment_source
,所以我应该推断选择了第一个选项。

但是,如果用户选择第二个选项,端点的响应将如下所示。

{
    ...
    "status": "COMPLETED",
    "payment_source": {
        "paypal": {
            ...
            "account_status": "UNVERIFIED",
            "name": {
                ...
            }     
            ...
        }
    },
    ...
}

我本来希望在

card
属性中看到
payment_source
,但我再次看到
paypal
,这也应该让我推断出选择了第一个选项,而实际上它是第二个。

区分它们的唯一方法是检查

account_status
属性,但在我看来,这是一个不可靠的黑客行为。据我了解,您仍然可以使用未经验证的帐户的第一个 PayPal 按钮,并且仅在您收到款项时才需要进行帐户验证,而不是在您发送款项时。

无论如何,所有这些都有点令人困惑,经过彻底的谷歌调查后,我没有得出结论性的答案。

ChatGPT 还根据我如何构建同一问题给出了不同的答案。我对此并不感到惊讶的原因超出了我的范围。

我想我需要这三个紧迫问题的答案:

  1. 如果用户选择由 PayPal 提供支持的
    借记卡或信用卡按钮
    ,我将
    card
    预期为 payment_source 是否正确(因此我描述的问题仅特定于沙盒环境)?
  2. account_status
    是确定使用了哪个按钮的可靠方法吗?
  3. 是否有任何其他方法可以通过仅查看响应负载来确定以确定性方式使用了哪个按钮?
paypal paypal-sandbox
1个回答
0
投票

card
,因为 payment_source 仅适用于 高级集成,而不是您问题中的标准集成借记卡或信用卡按钮。标准付款为 payment_source:paypal 付款,与交易记录中的其他 PayPal 付款无法区分。

您可以做的是收集有关单击哪个按钮的信息,这是一条单独的信息。记录传递给

createOrder
回调函数的第一个参数,特别是其
paymentSource
键。

© www.soinside.com 2019 - 2024. All rights reserved.