You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Stripe PaymentIntent搜索/列表接口如何用expand参数获取费用数据?

解决方案

首先明确:Stripe的PaymentIntent列表(list)和搜索(search)接口不支持直接扩展关联的Charges及BalanceTransaction数据,你必须遍历每个返回的PaymentIntent,单独调用retrieve接口并传入扩展参数来获取手续费、净额等信息。

原因说明

Stripe的列表/搜索接口与单个资源的retrieve接口扩展规则不同。列表接口返回的是PaymentIntent集合,而每个Intent的charges属于嵌套关联资源,Stripe目前不支持在列表类接口中批量扩展这种深层关联数据,所以你尝试的charges或data.charges都会报错。

具体实现步骤

以Python SDK为例,流程如下:

  1. 先执行搜索请求,获取符合条件的PaymentIntent集合
  2. 遍历每个Intent,调用retrieve并传入扩展参数
  3. 提取所需的手续费、应用手续费、净额等数据
# 执行搜索获取目标PaymentIntent集合
payment_intents = stripe.PaymentIntent.search(
    query="status:'succeeded' AND metadata['main_event_code']:'1006'"
)

# 遍历每个Intent,获取扩展的手续费数据
for pi in payment_intents.data:
    # 调用retrieve接口并扩展关联数据
    expanded_pi = stripe.PaymentIntent.retrieve(
        pi.id,
        expand=['charges.data.balance_transaction']
    )
    # 提取余额交易中的费用信息
    for charge in expanded_pi.charges.data:
        balance_tx = charge.balance_transaction
        stripe_fee = balance_tx.fee  # Stripe手续费
        application_fee = balance_tx.application_fee  # 应用手续费
        net_amount = balance_tx.net  # 净额
        # 这里可以将数据存入报表或本地数据库

优化建议

如果需要处理大量数据,频繁调用API可能触发速率限制,建议:

  • 合理控制请求并发量,避免超过Stripe的API速率限制
  • 考虑通过Stripe Webhook实时捕获PaymentIntent完成事件,将手续费等数据同步到自己的数据库,后续生成报表直接从本地读取,减少API调用次数

内容的提问来源于stack exchange,提问作者Matt Winer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 23:47:17