Paypal API 集成错误:使用“details.seller_receivable_breakdown.gross_amount”表示未定义

Posted

技术标签:

【中文标题】Paypal API 集成错误:使用“details.seller_receivable_breakdown.gross_amount”表示未定义【英文标题】:Paypal API integration error: using "details.seller_receivable_breakdown.gross_amount" says it is undefined 【发布时间】:2020-11-23 17:14:53 【问题描述】:

我已将 Paypal 按钮集成到应用程序中。当我尝试获取刚下订单的总金额时,它说它在浏览器中未定义。

这是我正在使用的代码:

onApprove: function(data, actions) 

return actions.order.get().then(function(details) 

alert(details.seller_receivable_breakdown.gross_amount.value)

...

顺便说一句,我处于沙盒模式。这是只能在生产模式下使用的东西吗?

谢谢!

【问题讨论】:

【参考方案1】:

.get() 之后没有下订单,您需要.capture() 才能下订单。请参阅https://developer.paypal.com/demo/checkout/#/pattern/client 上的示例

使用console.log(details)查看所有信息

订单捕获响应中可能没有您想要的信息。您可以使用 V2 支付 API 获取有关捕获的更多信息:https://developer.paypal.com/docs/api/payments/v2/#captures_get

【讨论】:

我实际上试过这个:return actions.order.capture().then(function(details) return actions.order.get().then(function (orderDetails) var paypalGrossAmountReceived = orderDetails. Seller_receivable_breakdown.gross_amount.value; var paypalGrossAmountReceived2 = orderDetails.purchase_units.amount.value; console.log('总金额:' + paypalGrossAmountReceived); console.log('总金额2:' + paypalGrossAmountReceived2); 我还尝试将其反转,以便将 .capture() 嵌套在 .get() 中。仍然说它未定义。是因为我使用的是沙盒模式吗? 这显示了 .capture() 嵌套在 .get() developer.paypal.com/docs/checkout/integration-features/… 好的,所以我根本不需要 .get() 。当我使用:【参考方案2】:

想通了!!

根本不需要使用 .get() 函数,.capture() 可以正常工作。在此处发布之前,我曾尝试在我的众多尝试之一中使用它: details.purchase_units[0].amount.value;

问题是 purchase_units 返回为 json 数组,所以我需要添加 [0]。

以下是有效的: details.purchase_units[0].amount.value;

:)

【讨论】:

以上是关于Paypal API 集成错误:使用“details.seller_receivable_breakdown.gross_amount”表示未定义的主要内容,如果未能解决你的问题,请参考以下文章

Java / PayPal 集成指向错误的端点

Paypal API 集成错误:使用“details.seller_receivable_breakdown.gross_amount”表示未定义

Paypal API 安全标头错误

PayPal 权限 API 更新集成

Paypal 与 Magento 2.1 的集成

Woocommerce Paypal REST api 与 React JS 的集成