如何在Stripe Payment Intent的支付组件中展示价格明细?
Payment Intent API本身确实没有内置的价格明细或税费字段,它的核心职责是处理支付的金额授权与确认,而明细展示属于业务层的UI和订单管理范畴。针对你的需求,有以下几种可行方案:
前端自行渲染明细,Payment Intent仅传递总价
服务端创建Payment Intent时只传入总金额(比如1299分,对应12.99美元),同时将商品价格、税费等明细存入Payment Intent的metadata字段中,示例代码(服务端):const paymentIntent = await stripe.paymentIntents.create({ amount: 1299, currency: 'usd', payment_method_types: ['card'], metadata: { item_price: '10.99', tax_amount: '2.00', item_description: 'XX商品' } });Android端则自行布局UI,展示商品价格、税费和总价,Stripe SDK仅负责处理支付操作(比如收集支付方式、确认支付)。这种方案最灵活,完全适配自定义表单需求,同时
metadata里的信息会同步到Stripe后台,方便后续对账。结合Stripe Order API关联明细
先通过Order API创建包含明细的订单,再基于该订单生成Payment Intent,这样Stripe后台会关联订单与支付记录,你也可以通过Order接口获取明细用于前端展示:# 创建包含商品和税费的Order order = stripe.Order.create( currency='usd', items=[ { 'type': 'custom', 'description': 'XX商品', 'amount': 1099, 'quantity': 1 }, { 'type': 'tax', 'description': '销售税', 'amount': 200, 'quantity': 1 } ] ) # 基于Order创建Payment Intent payment_intent = stripe.PaymentIntent.create( amount=order.amount_total, currency=order.currency, payment_method_types=['card'], metadata={'order_id': order.id} )Android端可以调用Stripe API获取Order的items数据,渲染到支付表单中,再用生成的Payment Intent完成支付流程。
改用Payment Link(适合非强自定义UI场景)
如果你的业务场景允许放弃部分UI自定义,Payment Link支持直接配置商品、税费等明细,生成链接后可以通过Android SDK的Stripe.instance.launchPaymentLink方法打开,它会自动展示完整的价格明细,无需你手动处理UI渲染。
内容的提问来源于stack exchange,提问作者Naama

