如何确定已从Pending状态转为Available状态的Stripe付款?
Stripe Connect:追踪付款从Pending转为Available的状态变化
Stripe确实会提供这类资金状态变化的信息,核心要查看Balance Transaction对象——因为Charge/PaymentIntent对象的status仅记录交易本身的完成状态(如succeeded),而资金的可用状态(Pending/Available)属于账户余额管理范畴,由Balance Transaction追踪。
查询方法:
主动查询Balance Transactions
每一笔付款完成后,Stripe会生成对应类型为payment的Balance Transaction,初始状态为pending,当资金转为可用时,该对象的status会更新为available,同时available_on字段会标记资金正式可用的时间戳。你可以通过List Balance Transactions API筛选目标数据,关键参数包括:
type=payment:仅筛选付款类的余额交易status=available:只看已转为可用状态的记录stripe_account=关联账户ID:针对Connect关联账户查询(必填,否则会查询平台主账户的余额)created/available_on:按时间范围过滤,比如筛选最近7天的变化
示例Node.js代码:
const stripe = require('stripe')('你的密钥'); const transactions = await stripe.balanceTransactions.list({ type: 'payment', status: 'available', stripe_account: 'acct_XXXXXX', created: { gte: Math.floor(Date.now() / 1000) - 86400 * 7, // 最近7天 }, });实时监听Webhooks事件
若需要实时获取状态变化,可订阅balance.transaction.updated事件。当某笔资金从pending转为available时,Stripe会推送该事件,你可以在Webhook处理逻辑中直接捕获变化,无需主动轮询。
注意:
Charge、Transfer或PaymentIntent对象本身不会存储资金可用状态的变更记录,所有与资金可用性相关的状态流转都在Balance Transaction对象中体现。
内容的提问来源于stack exchange,提问作者Artleks
相关产品推荐
相关产品推荐

