首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用PayPal结账/订单API进行支付的捕获支付方法

用PayPal结账/订单API进行支付的捕获支付方法
EN

Stack Overflow用户
提问于 2022-02-18 17:56:58
回答 2查看 394关注 0票数 0

我正在使用标准集成的PayPal签出(通过Orders API),并希望捕获客户支付的实际支付方法--我相信PayPal称之为“资金来源”,这样我就可以将这个值传递给我的服务器并将其保存到我的数据库中。

我需要调用哪个API对象来获取这些信息?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-02-18 18:13:53

当使用调用服务器的JS SDK按钮时,您可以通过传递一个onClick函数来跟踪站点上的哪个按钮被单击;它的第一个参数将是一个fundingSource设置为"paypal“、"venmo”、"card“、”Pay嗣后“的对象。让它将其存储到全局或w/e中,然后在从onApprove获取订单时将其包含在发送到服务器的JSON主体中。

但是,付款人最终使用的实际供资方法可能与最初的单击选择不相对应,因此不会返回;此信息和所有其他计费信息通过设计保留给PayPal中的支付方。

票数 1
EN

Stack Overflow用户

发布于 2022-02-19 01:36:36

这是一种与Preston概述的方法类似的方法,同样,它的限制是,只返回最初选择的按钮的资金来源,而不是用户实际使用的按钮的资金来源(因为用户可以在PayPal模式中更改这一点)。

目前看来,这是使用标准集成PayPal Checkout的用户获得实际付费方法的最接近的方法,因为出于某种原因,PayPal认为只需要向已经实现高级集成的开发人员公开该信息(该信息确实存在于高级中)。

如果像我这样的人花了大量时间集成标准集成,结果发现太晚了(因为集成和API的文档都很糟糕),标准集成只能访问数据有限的API版本,这是令人失望的。

在客户端JavaScript中,添加fundingSource: fundingSource和您希望从订单数据中获取的任何其他变量:

代码语言:javascript
复制
paypal.Buttons({

...

onApprove: function (data, actions) {
    return fetch("/route/to/paypal/capture", {
        method: "POST",
        headers: {
            "Content-Type": "application/json",
        },
        body: JSON.stringify({
            fundingSource: fundingSource, 
            // Add any other variables you need here
        }),
    })

...

然后,当在服务器上捕获付款时,使用:

代码语言:javascript
复制
$data = json_decode($request->getContent(), true);
...
$payment_method = $data["fundingSource"];
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71177927

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档