支付集成New

项目中关于Stripe支付相关配置

Created: 08/29/2026
Updated: 08/31/2026

写在前面:首先你得有个港卡或者非国内卡,可以开通Stripe

如何办理港卡,请阅读: 项目关于支付的延伸:香港主流银行开户攻略

开通Stripe的教程,请阅读:
1、项目关于支付的延伸:如何用大陆护照+个人港卡注册Stripe个人账户(2025年10月教程)

如果你没有上面的卡,短时间还想上站,可以看看wise(不用跑到香港开卡,在线开,不过这个我没有跑闭环)

Wise开通的美元账号是可以绑定到PayPal的,并且可以成功提现。
PayPal开通的是美区(没有提交SSN进行认证),Wise是国内证件开通,如此可以打通PayPal美区到Wise香港账号。
同理,也可以通过其他方式比如香港转数快转入Wise并在PayPal中消费。

请阅读:项目支付延伸:wise在线开卡

未办理港卡看过来,试试Creem+Wise组合

接入 Stripe 支付

开通 Stripe 商户

参考 Stripe 商家入驻指南 开通 Stripe 商户。

你可以以个人身份或企业身份开通 Stripe 商户,绑定你的提现账户,设置商户基本信息。

Stripe支持测试模式(方便本地调试) 和 生产模式(真实付费)

咱们的步骤是 本地开发时,填入测试 API 密钥,等部署上线时,再填入正式的 API 密钥。

查看测试模式的 API 密钥

在 Stripe 管理后台进入你的商户页面,创建一个账户(这里点击后属于个人信息填写提交,不多介绍)

然后按照下图进入测试模式

依次选择 Developers -> API keys -> 标准密钥,依次将公钥密钥复制粘贴到http://localhost:3000/admin/settings。

保存成功后

访问http://localhost:3000/pricing 测试支付

商品定义在 src/config/pricing.ts —— 服务端唯一可信源,客户端传来的价格一律忽略。

这个json文件就是咱们的定价配置

  productId: 'starter_monthly',
  productName: 'Starter',
  description: 'Starter Monthly',
  type: PaymentType.SUBSCRIPTION,   //  PaymentType.ONE_TIME
  priceInCents: 900,
  currency: 'usd',
  credits: 5000,
  creditsValidDays: 30,
  plan: { name: 'starter', interval: 'month', intervalCount: 1 },
}

默认商品:starter|pro|enterprise × monthly|yearly|lifetime

点击查看Stripe的测试卡号

由于是测试模式,你会直接支付成功,然后页面自动就会进入个人中心-积分 http://localhost:3000/zh/settings/credits

接下来你就是有积分可以AI生成了

正式的 API 密钥

还是刚才的Stripe页面,点击下图退出测试模式

依次选择 Developers -> API keys -> Standard keys -> Create secret key 创建 API 密钥。

将下图的秘钥复制粘贴到 https://xxxx/admin/settings (你生产环境的地址)

将公钥复制粘贴

保存后可以去https://xxxx/pricing (你生产环境的地址) 测试生产环境的支付

配置支付回调

配置支付回调(Webhook)主要有以下几个核心作用,这是保证你的计费系统正常运转的关键:
1、防止掉单(异常处理):如果用户在支付平台付款成功后,没有等页面自动跳回你的网站就直接关掉了浏览器,前台的回调就不会触发。此时 Webhook 作为服务器之间的异步通知,能做兜底保障,确保订单状态更新并为用户发放权益。
2、处理订阅的自动续费:对于按月/按年扣费的订阅计划,用户后续周期的自动扣款是静默发生的(无需用户干预)。Stripe/Creem 会通过 Webhook 通知你的系统扣款成功,你的系统才会给用户延长订阅周期并下发新周期的积分。
3、同步订阅状态变更:当由于用户信用卡到期导致续费扣款失败,或者用户主动取消了订阅时,平台会通过 Webhook 通知你的系统,以便你及时冻结或更新对应用户的订阅状态。
4、安全性:Webhook 请求会携带需要用 Signing secret 验证的签名。这能防止黑客通过伪造前台的成功跳转链接来“免费”获取你的产品权益。

  • 明确你的线上生产域名,例如 https://yourdomain.com。请将下方教程中的 你的域名 替换为真实的线上域名。
  • 确保你的应用已经成功部署并且可以公网访问。

Stripe Webhook 配置步骤

  1. 登录进入 Stripe Dashboard 控制台。

  2. 在页面顶部或侧边栏进入开发者 (Developers) 页面。

  3. 点击左侧菜单中的 Webhooks 选项卡。

  4. 点击页面中间紫色的 + Add destination 按钮。

  5. 此时会进入新增向导页面,第 1 步 (Select events) 选择需要监听的事件:

    • 在页面下方的搜索框中逐一检索并勾选以下五个事件:

      • checkout.session.completed (此事件用于处理一次性付款成功和订阅的首次付款)
      • invoice.payment_succeeded (此事件用于处理订阅用户的周期性扣款成功)
      • invoice.payment_failed (用于监听扣款失败)
      • customer.subscription.updated (此事件用于处理订阅状态更新)
      • customer.subscription.deleted (此事件用于处理订阅被取消)
    • 勾选完毕后,点击右下角紫色的 Continue 按钮。

  6. 第 2 步 (Choose destination type),通常只需选择 Webhook Endpoint 相关选项,并点击继续。

  7. 第 3 步 (Configure your destination) 配置你的端点:

    • 端点 URL (Endpoint URL) 输入框中,严格按照以下格式填写:
      https://你的域名/api/payment/notify/stripe
  8. 确认无误后点击底部的按钮(如 Add endpoint 或保存)完成创建。

  9. 创建成功后,你将进入该 Webhook 的端点详情页。在页面中找到 签名密钥 (Signing secret) 一栏,点击显示并复制该密钥。

  10. 将复制的签名密钥填写到项目的后台管理系统对应的 Stripe 配置项中 (Stripe Signing Secret)。

测试验证

  1. 确保签名密钥已经正确保存并在应用中生效。
  2. 配置完成后,建议使用真实账号发起一笔小额测试交易。
  3. 也可以直接通过 Stripe 提供的测试事件发送功能触发测试 Webhook。
  4. 如果回调状态为 200 OK,说明签名无误且逻辑运转正常。如果返回 500 等报错,请首先检查前后端填写的 Signing secret 是否一致。

Stripe开通支付宝、微信支付

登录Stripe后在搜索条输入Payment methods,点击下图结果

点击启用:

等待审批