跳转到内容

把 Stripe 连接到你的 MonstarX 应用

要点用 Stripe,你的应用就能收取真实付款。把 Stripe 密钥粘贴到“后端 → 云服务”(或 MonstarX 在聊天中显示的卡片):试用阶段选择沙盒(测试密钥),真实客户付款时选择生产环境(正式密钥)。结账流程由 MonstarX 为你编写。

在你的应用中接收银行卡付款、订阅和结账。

类型
用于你的应用
类别
付款与账单
连接方式
API 密钥

Stripe 是一家支付公司:它负责银行卡表单、与银行对接和开具收据,并把钱打到你的银行账户。连接 Stripe 后,你的应用就能卖东西,比如课程卡、商品或月度会员,并使用由 Stripe 运营的安全结账页面。

  • 一个“立即购买”按钮:打开 Stripe 的结账页面,客户付款后再回到你的应用。
  • 课程卡和套餐,比如“5 节课 $90”,付款后在应用中解锁相应内容。
  • 面向会员或付费套餐的月度或年度订阅。
  • 每位客户的订单记录,以及列出所有付款的管理页面。
  • 自动后续处理:Stripe 确认付款后,把订单标记为已付款并发送收据邮件。
  • 一个 Stripe 账户。注册免费;每笔成功付款 Stripe 会收取手续费(详见 Stripe 价格)。MonstarX 不额外收费。
  • 如果只是测试,不需要其他任何东西:每个 Stripe 账户都可以使用沙盒,也就是账户的练习副本,不会产生真实的资金流动。
  • 如果要收取真实付款,Stripe 会要求你先激活账户:填写你的商家信息和收款银行账户。

Stripe 会给你两套密钥。MonstarX 会在环境选项中问你粘贴的是哪一套:

环境密钥开头会发生什么
沙盒(测试密钥)sk_test_… 和 pk_test_…用测试卡号模拟付款。不会扣真实银行卡,也没有资金流动。构建期间使用。
生产环境(正式密钥)sk_live_… 和 pk_live_…真实银行卡、真实资金,打到你的银行账户。真实客户付款时使用。

在一个环境中创建的内容在另一个环境中不存在:在沙盒中创建的产品、价格、客户和付款都只留在沙盒里。

在沙盒中,Stripe 的结账页面接受它公开的测试卡。有效期填任意未来日期(如 12/34),CVC 填任意三位数,邮编随意:

卡号效果
4242 4242 4242 4242付款成功。
4000 0000 0000 0002银行卡被拒,你可以看到付款失败时客户看到的界面。
4000 0025 0000 3155付款完成前,银行会要求额外验证(3D Secure)。

千万不要在沙盒结账页面中输入真实卡号。更多测试卡见 Stripe 的测试指南。

  1. 登录 Stripe Dashboard。

  2. 如果要测试,从左上角的账户菜单中打开一个 sandbox(沙盒)。如果要上线,改为切换到 live mode(正式模式)。

  3. 打开 API keys(在 Developers 下)。复制 Publishable key(可发布密钥),然后显示并复制 Secret key(私密密钥)。

当你提出需要收款时,MonstarX 通常会在聊天中显示一张连接 Stripe 卡片,上面的字段和这里相同。你也可以自己连接:

  1. 打开你的项目,点击顶部栏中的后端,再点击云服务。

  2. 在连接器下,点击 Stripe 旁边的连接。

  3. 选择环境:沙盒(测试密钥)或生产环境(正式密钥)。

  4. 粘贴私密密钥和可公开密钥。Webhook 签名密钥暂时留空。

  5. 点击连接 Stripe。这一行会显示已连接 · 沙盒(或已连接 · 生产环境),你的预览会带着这些密钥重新启动。

MonstarX 不会检查密钥是否与你选择的环境一致,所以请确认 sk_test_ 密钥配沙盒,sk_live_ 密钥配生产环境。

Webhook 是 Stripe 通知你的应用“这笔付款成功了”的方式,即使客户在回到应用之前就关闭了页面也能收到。付款后要解锁内容或运营订阅的应用,都应该配置一个。请在应用发布后再添加,因为 Stripe 访问不到你的私有预览:

  1. 问 MonstarX:“我的 Stripe webhook 地址是什么?应该监听哪些事件?”地址通常是 https://your-app.monstarx.app/api/stripe-webhook。

  2. 在 Stripe 中打开 Webhooks,点击 Create an event destination,选择这些事件,选择 Webhook endpoint,然后粘贴地址。

  3. 显示 signing secret(签名密钥,以 whsec_ 开头)并复制。

  4. 在 MonstarX 中,点击 Stripe 一行的更新密钥,把它粘贴到 Webhook 签名密钥中,点击保存密钥。重新发布,让线上应用拿到它。

沙盒和正式模式各有自己的 webhook 和签名密钥。

你输入会发生什么
“让会员用 Stripe 购买 5 节课的课程卡,价格 $90。”一个购买按钮、一个该金额的 Stripe 结账页面和一个感谢页面;付款后课程卡会自动添加。
“用 Stripe 添加一个每月 $12 的 Pro 套餐,再加一个查看我套餐的页面。”一个订阅结账流程,以及一个显示会员当前套餐的页面。
“加一个列出所有付款的管理页面。”一个付款列表页面,显示谁付了款、买了什么、什么时候付的。
“把我的 Stripe 产品导入商店。”MonstarX 需要你的密钥才能读取你的账户,所以卡片会显示 MonstarX 需要 Stripe 才能继续;你连接后,它会自动接着做。

还没有密钥?在卡片上点击稍后。MonstarX 照样会构建完整的结账流程,在你添加密钥之前,按钮会提示 Stripe 尚未连接。

  1. 激活你的 Stripe 账户,切换到正式模式,复制正式环境密钥。

  2. 在 后端云服务 中,点击 Stripe 一行的更新密钥。

  3. 把环境设为生产环境(正式密钥),粘贴两个正式环境密钥(如果用了 webhook,再加上正式环境的 Webhook 签名密钥),然后点击保存密钥。

  4. 重新发布应用。从现在起,付款都是真实的。

  • 你的密钥加密保存,只用于这个应用。它们的名称会显示在 后端密钥 中,值不会再显示。
  • 私密密钥和 Webhook 签名密钥只由应用的服务器使用。可公开密钥本来就是给浏览器看的,这是安全的。
  • 卡号是在 Stripe 自己的结账页面上输入的,永远不会到达你的应用或 MonstarX。
  • 只有项目所有者可以连接、更新或断开 Stripe。断开连接会从这个应用中移除密钥,之后结账页面会显示 Stripe 尚未连接。
  • 如果密钥泄露,请在 Stripe Dashboard 中轮换(roll)密钥,然后用更新密钥粘贴新密钥。
  • 一个应用同一时间只能使用一个 Stripe 环境。把线上应用切回沙盒密钥后,真实付款会停止,直到你再切换回来。
  • Stripe 还提供受限密钥(rk_…),只包含你选择的权限。只要它允许应用需要的所有操作(比如创建结账会话),就可以填在私密密钥字段中。
  • QA 测试会把付款流程测试到 Stripe 这一步;Stripe 未连接时,会把它标记为需要密钥。
MonstarX 会从我的销售额中抽成吗?

不会。付款直接进入你的 Stripe 账户,只收取 Stripe 自己的手续费。

不用真实银行卡可以试用付款吗?

可以。用沙盒(测试密钥)连接,然后用测试卡 4242 4242 4242 4242 付款,有效期填任意未来日期,CVC 随意。不会有资金流动。

怎样从测试切换到真实付款?

点击 Stripe 一行的更新密钥,把环境设为生产环境(正式密钥),粘贴正式环境密钥,点击保存密钥,然后重新发布。

为什么我的结账页面显示 Stripe 尚未连接?

密钥还没有填入,或者已被移除。打开后端 → 云服务连接 Stripe,你的预览会带着这些密钥重新启动。

能在 MonstarX 中查看付款吗?

你的应用会显示 MonstarX 为它构建的内容,比如订单页面。每笔付款、退款和打款的完整记录都在你的 Stripe Dashboard 中。