首页 时政热点 科技头条 智能AI 安全攻防 数码硬件 开发者生态 汽车 游戏 社会热点 开源推荐 医疗健康 归档 标签 关于

GitHub 热门项目:stripe-recommendations

摘要

GitHub项目:stripe-recommendations 仓库地址:https://github。

the Stripe your stripe and
2026-05-19 1 阅读 约5分钟阅读 GitHub Trending
GitHub 项目:stripe-recommendations 仓库地址:https://github.com/t3dotgg/stripe-recommendations 星级:6318 | 作者:t3dotgg 项目描述:如何在不发疯的情况下实现 Stripe =================================================== 自述文件内容: # 我如何在实施 Stripe 时保持理智 > [!注意] > **更新(2025-02-07)** > Stripe 邀请我在全公司全体会议上与首席执行官交谈。他们非常乐于接受我的反馈,我看到了光明的未来,而这些都不是必需的。在那之前,我仍然认为这是在 SaaS 应用程序中设置付款的最佳方式。 我已经设置 Stripe 太多次了。我从来没有享受过它。我已经与 Stripe 团队讨论了这些缺点,他们说他们最终会解决这些问题。 在那之前,这就是我建议设置 Stripe 的方式。我不会涵盖所有内容 - 请查看[仍然是您的问题的事情](#things-that-are-still-your-problem) 以清楚地了解我没有提供帮助的内容。 > 如果您想保持理智地实现文件上传,请查看我的产品 [UploadThing](https://uploadthing.com/)。 ### 先决条件 - 打字稿 - 某种类型的 JS 后端 - 工作身份验证(在您的 JS 后端进行验证) - 一个 KV 存储(我使用 Redis,通常是 [Upstash](https://upstash.com/?utm_source=theo),但任何 KV 都可以) ### 一般理念 IMO,Stripe 的最大问题是它固有地引入到代码库中的“裂脑”。当客户结帐时,“购买状态”位于 Stripe 中。然后,您需要通过网络钩子在您自己的数据库中跟踪购买情况。 有[超过 258 种事件类型](https://docs.stripe.com/api/events/types)。它们都有不同数量的数据。无法保证您收到的订单。他们都不应该被信任。在您的应用程序中,很容易导致付款失败并“订阅”。 这些部分更新和竞争条件令人讨厌。我建议完全避免它们。我的解决方案很简单:一个 `syncStripeDataToKV(customerId: string)` 函数将给定 Stripe 客户的所有数据同步到您的 KV_。 以下是我(主要)如何避免 Stripe 陷入这些可怕的分裂状态的方法。 ## 流程 这是我推荐的“流程”的快速概述。下面有更多详细信息。即使您不复制我的具体实现,您也应该阅读本文。 _我保证所有这些步骤都是必要的。跳过其中任何一个都会让生活变得不必要的困难_ 1. **前端:**“订阅”按钮应调用“generate-stripe-checkout”端点 onClick 1. **用户:** 单击应用程序上的“订阅”按钮 1. **BACKEND:** 创建 Stripe 客户 1. **BACKEND:** 存储 Stripe 的 `customerId` 和应用程序的 `userId` 之间的绑定 1. **BACKEND:** 为用户创建一个“结账会话” - 将返回 URL 设置为应用程序中专用的“/success”路由 1. **USER:** 付款、订阅、重定向回 `/success` 1. **前端:** 加载时,在后端触发 `syncAfterSuccess` 函数(点击 API、服务器操作、加载时 rsc 等) 1. **BACKEND:** 使用 `userId` 从 KV 获取 Stripe `customerId` 1. **BACKEND:** 使用 `customerId` 调用 `syncStripeDataToKV` 1. **FRONTEND:** 同步成功后,将用户重定向到您想要的位置