使用ngrok时,如何从Stripe控制台触发webhook事件(含event.subscription.deleted)
回答
核心结论
使用ngrok或其他隧道工具托管webhook端点时,完全可以从Stripe仪表盘(或配合Stripe CLI)触发event.subscription.deleted事件,无需等待计费周期结束。
具体操作方式
1. 触发即时的subscription.deleted事件
如果你需要测试立即取消订阅的场景:
- 在Stripe仪表盘找到目标订阅,点击「Cancel subscription」
- 选择「Cancel immediately」选项并确认
- 此时Stripe会立刻向你的ngrok公网端点推送
subscription.deleted事件,无需等待周期结束。
2. 模拟「计费周期最后一天触发」的场景
如果要测试的是用户取消订阅但保留权限到周期结束,最终在周期末触发subscription.deleted的场景,仪表盘无法直接触发,但可以用Stripe CLI快速模拟:
- 安装Stripe CLI后,先登录验证身份:
stripe login - 将本地webhook端点(或ngrok的公网URL)设置为转发目标:
stripe listen --forward-to https://<your-ngrok-id>.ngrok.io/your-webhook-path - 触发带
cancel_at_period_end=true属性的模拟事件,模拟周期末触发的场景:
这条命令会生成结构与真实事件完全一致的stripe trigger subscription.deleted --override 'subscription.status=canceled' --override 'subscription.cancel_at_period_end=true'subscription.deleted事件,推送到你的端点。
关键注意事项
- 确保ngrok隧道处于活跃状态,且Stripe仪表盘的webhook配置已启用
subscription.deleted事件,并指向正确的ngrok公网URL。 - 用Stripe CLI触发的模拟事件完全符合Stripe的事件规范,可用于完整的功能测试。
内容的提问来源于stack exchange,提问作者Shubhendu Sen
相关产品推荐
相关产品推荐

