我正在使用标准集成的PayPal签出(通过Orders API),并希望捕获客户支付的实际支付方法--我相信PayPal称之为“资金来源”,这样我就可以将这个值传递给我的服务器并将其保存到我的数据库中。
我需要调用哪个API对象来获取这些信息?
发布于 2022-02-18 18:13:53
当使用调用服务器的JS SDK按钮时,您可以通过传递一个onClick函数来跟踪站点上的哪个按钮被单击;它的第一个参数将是一个fundingSource设置为"paypal“、"venmo”、"card“、”Pay嗣后“的对象。让它将其存储到全局或w/e中,然后在从onApprove获取订单时将其包含在发送到服务器的JSON主体中。
但是,付款人最终使用的实际供资方法可能与最初的单击选择不相对应,因此不会返回;此信息和所有其他计费信息通过设计保留给PayPal中的支付方。
发布于 2022-02-19 01:36:36
这是一种与Preston概述的方法类似的方法,同样,它的限制是,只返回最初选择的按钮的资金来源,而不是用户实际使用的按钮的资金来源(因为用户可以在PayPal模式中更改这一点)。
目前看来,这是使用标准集成PayPal Checkout的用户获得实际付费方法的最接近的方法,因为出于某种原因,PayPal认为只需要向已经实现高级集成的开发人员公开该信息(该信息确实存在于高级中)。
如果像我这样的人花了大量时间集成标准集成,结果发现太晚了(因为集成和API的文档都很糟糕),标准集成只能访问数据有限的API版本,这是令人失望的。
在客户端JavaScript中,添加fundingSource: fundingSource和您希望从订单数据中获取的任何其他变量:
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
}),
})
...然后,当在服务器上捕获付款时,使用::
$data = json_decode($request->getContent(), true);
...
$payment_method = $data["fundingSource"];https://stackoverflow.com/questions/71177927
复制相似问题