我正在努力寻找条纹加工费。根据我的研究,条带处理费可以在余额交易对象中找到。 BalanceTransaction 对象可以在费用对象中的 PaymentIntent 中扩展,因此当使用支付意图 api 获取它时,我们可以在响应中扩展
BalanceTransaction
对象。
但是,我在付款意向响应中得到
BalanceTransaction
的零值。
我正在使用条纹测试模式。
我做了更多研究,我发现可能有多种原因。
我正在使用 stripty_stripe 包,并尝试以这种方式检索
BalanceTransaction
。
Stripe.PaymentIntent.retrieve("pi_3N6CwERjTBykGSI00hRClHKK", [connect_account: "acct_1LQdkARjTBykGSI0", expand: ["charges.data.balance_transaction"]])
我需要你的想法。我需要做什么,如何在条带测试模式下获得它。
BalanceTransaction 对象可以在 PaymentIntent 中扩展,因此当使用支付意图 api 获取它时,我们可以扩展 BalanceTransaction 对象作为响应。
它是 Charge 对象的字段,而不是 PaymentIntent。这里有关于如何获取费用的文档:https://stripe.com/docs/expand/use-cases#stripe-fee-for- payment
测试模式可能存在一些限制,并且在测试模式下不会创建 BalanceTransaction。
没有此类限制,测试模式下费用返还方式与直播中相同。
Stripe 帐户设置,帐户的配置方式使得 stripe 不会创建该对象。
也许吧!您最好向 Stripe 支持人员询问您正在查看的确切 PaymentIntent 对象。一个常见的原因可能是您正在使用 auth-and-capture(
capture_method=manual
),在您捕获 BalanceTransaction 之前不会创建它。某些付款方式类型也可能会延迟创建,或者您的 Stripe 帐户可能有一些特殊之处。您需要直接向 Stripe 询问可靠的答案。
我想在@karllekko的答案中添加一点,capture_method是控制balance_transaction何时返回的参数。 可能有 3 个值
capture_method=manual
或 capture_method=automatic
或 capture_method=automatic-async
。
capture_method=automatic
将自动返回包含所有数据的balance_transaction。
capture_method=automatic-async
将首先返回balance_transactionnull
,几秒钟后,它将被填充条纹费用。所以需要回调stripe.PaymentIntent.retrieve来获取stripe费用数据
使用
capture_method=manual
,您应该首先调用 stripe.PaymentIntent.capture,然后在 balance_transaction
中获取条纹费用