如何实现Stripe Express账户完成开户提交后触发Webhook?
Stripe Express账户开户流程Webhook触发优化方案
核心问题解决:精准触发账户从Restricted转为Enabled的Webhook
不需要更换监听事件,继续使用account.updated即可,但要在Webhook处理逻辑中增加状态变更的判断条件,避免误触发:
关键判断维度:
- 账户的
details_submitted字段需为true(确认用户已点击“同意并提交”完成信息提交) - 对比事件的
previous_attributes(变更前的状态),确认charges_enabled和payouts_enabled从false变为true(账户正式从Restricted转为Enabled)
- 账户的
处理逻辑示例(伪代码):
// 解析Stripe Webhook事件内容 const account = event.data.object; const prevAttrs = event.data.previous_attributes; // 验证状态变更条件 const wasRestricted = !prevAttrs.charges_enabled && !prevAttrs.payouts_enabled; const nowEnabled = account.charges_enabled && account.payouts_enabled; const userSubmittedDetails = account.details_submitted; if (wasRestricted && nowEnabled && userSubmittedDetails) { // 执行Airtable数据库更新操作 updateAirtableRecord(account.id, { account_status: "Enabled", completed_on: new Date() }); }
关于account.application.authorized事件的说明
该事件确实已被Stripe废弃,不再触发。替代方案就是通过account.updated事件结合details_submitted和状态字段的变更判断,来识别用户完成授权提交并账户启用的节点。
额外提示:如果业务需要区分“用户已提交信息但待审核”和“审核通过账户启用”两个状态,可以拆分逻辑:
- 当
details_submitted从false变为true时,先在Airtable标记为“待审核” - 当后续
charges_enabled和payouts_enabled变为true时,再更新为“已启用”
内容的提问来源于stack exchange,提问作者Loys Forget
相关产品推荐
相关产品推荐

