跳到主要内容

2 篇博文 含有标签「Stripe」

查看所有标签

Stripe Webhook 不是一次回调:Tuziyo 如何处理幂等与订阅状态同步

· 阅读需 12 分钟
Gwynn
独立开发者 · wawov 作者

最近在给 Tuziyo 接入 Stripe 订阅支付。

最开始的目标看起来很简单:用户选择套餐,跳转到 Stripe Checkout,支付成功后升级会员并发放 Credits。但真正开始处理续费、支付失败、取消订阅和年度套餐后,我发现支付成功页面只是整个流程中最轻的一部分。

真正决定这套系统能不能稳定运行的,是 Webhook。

Stripe 的事件可能延迟、乱序,也可能因为超时被重复投递。如果把每一次 Webhook 都当成只会执行一次的普通回调,最直接的后果就是重复发放 Credits,或者 Stripe 和本地数据库中的订阅状态不一致。

这篇文章记录 Tuziyo 当前订阅了哪些 Stripe 事件、每个事件做了什么,以及我如何用 Cloudflare Workers 和 D1 处理 Webhook 幂等与订阅状态同步。

用半年时间,断断续续做了一个出海 Side Project

· 阅读需 8 分钟
Gwynn
独立开发者 · wawov 作者

最近半年,我一直在断断续续地做一个自己的 Side Project。

说是“做产品”,其实一开始并没有给自己设定多么宏大的目标。我只是想完整地尝试一次出海:从一个想法开始,把产品做出来,让海外用户能够访问、注册、使用,最后通过 Stripe 完成付款。

以前也做过不少项目,但大多数时候,我负责的只是整个系统中的一部分。真正从零开始,把产品、支付和基础设施整套流程亲手串起来,还是第一次。