跳转到内容

支付

支付由 node3-pay-service 处理,支持 Stripe、Creem 和可配置价格方案。整体思路是:先建好收款渠道,再在 价格方案 里把业务上的「套餐」与 Stripe 的 Product / Price 对应起来,最后让每个 项目(app_key) 绑定到具体渠道,前台结账才会走通。

管理后台 — 支付渠道

管理后台 — 价格方案

  1. 支付渠道(Pay Channels,/pay-channels
    新增 Stripe 或 Creem 渠道,填写密钥、Webhook 等。一个 Stripe「商店」可以对应后台里的一条或多条渠道记录(例如按环境、按品牌拆分),视你的运维方式而定。

  2. 价格方案(Price Config,/price-config
    新建或编辑方案:金额、计费周期、积分额度、功能开关等。对 Stripe 而言,还需要把方案与 Product IDPrice ID 对齐(见下文)。

  3. 项目与渠道绑定(仍在 Pay Channels 页)
    app_key 绑定到某条支付渠道(Stripe / Creem)。新建项目后若不做这一步,该站的支付链路通常不可用——系统不知道收款应走哪套密钥与 Webhook。

这样做的目的,是让你可以 先快速起站、起新项目,多个站点共用 同一套 Stripe 账户与商品目录,而不必每开一个站点就在 Stripe 里重复搭一整套商店;等有精力再按需增加更多渠道或拆分账户即可。

Stripe 侧在 Dashboard 的 产品(Products) 里维护商品与定价;每个价格有独立的 Price IDprice_...),并隶属于某个 Product IDprod_...)。

在 Admin → Price Config 编辑某条方案时,需要把这些 ID 填对,结账与 Webhook 才能与 Stripe 对上。

若不想在 Dashboard 里反复复制粘贴,可使用编辑器里的 从 Stripe 拉取(Fetch products / prices) 能力:

  • 会调用 Stripe API,列出 当前所选支付渠道(对应那套 Secret Key)下已有的产品与价格,供你选择并写回配置,减少手输错误
  • 前提:在价格编辑器里选好 应用(app_key),且该应用已在 /pay-channels 绑定至少一条 Stripe 渠道;否则无法拉取。
  • 若后台存在 多条 Stripe 渠道,拉取时还可指定用哪一条渠道的凭证去请求目录(与「当前应用默认绑定」区分开)。

拉取只解决 ID 与 Stripe 侧目录对齐;卡片上给用户看的文案仍由你在后台维护(见下一节)。

价格方案支持为展示内容配置 多语言(例如标题、描述、角标、特性列表等),数据结构一般为 display_i18n 一类字段,按 locale(如 enzh)分别存放。

  • 各语言的文案需要你在管理后台自行填写(或使用后台提供的批量/对照编辑能力整理);系统不会自动从 Stripe 拉取多语言营销文案。
  • 若已配置 AI 网关,部分环境下一键补全缺失语种可作为辅助,仍以你审核后的内容为准。

前台站点会根据用户语言或站点配置,选用对应 locale 的展示内容;未配置的语种通常会回退到默认语言或留空,具体以前端实现为准。

在 Admin → Pay Channels 启用 Creem 并填写 API Key;同样需要 项目绑定 到对应渠道后,该项目的 Creem 收款才会生效。价格方案侧按 Creem 的要求填写关联字段即可(与 Stripe 的 Product/Price ID 不同,以界面与接口为准)。

每次 新建项目(app_key) 后,请到 Pay Channels 检查:

  • 是否已为该 app_key 增加 绑定,指向正确的 Stripe 或 Creem 渠道;
  • Webhook、密钥是否与线上一致。

未绑定时,用户侧可能无法完成下单或回调无法归因到正确项目。

  • Pay Channels/pay-channels)— 渠道管理、项目 ↔ 渠道绑定、Webhook 说明
  • Price Config/price-config)— 价格方案列表与新建/编辑(含 Stripe 拉取、多语言展示、stripe_channel_overrides 等高级项)