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”表示未定义的主要内容,如果未能解决你的问题,请参考以下文章
Paypal API 集成错误:使用“details.seller_receivable_breakdown.gross_amount”表示未定义