跳到主要内容

支付网关(Stripe 与 PayPal)

FeedbackPulse SaaS 支持使用 StripePayPal 进行订阅计费,您可以启用其中一个或两个同时启用。


💰 计费流程

  1. 管理员 → 套餐 中创建订阅套餐(例如:入门版 $9.99/月,专业版 $29.99/月)
  2. 每个套餐对应一个 Stripe Price ID 和/或 PayPal Plan ID
  3. 租户订阅后,将跳转至 Stripe 结账页面或 PayPal
  4. 付款完成后,FeedbackPulse 激活其订阅
  5. Webhook 保持所有数据同步(续费、取消、付款失败)

💳 Stripe 配置

第一步:创建 Stripe 账户

  1. stripe.com 注册账户
  2. 完成身份验证
  3. 开发者 → API 密钥 中获取您的 API 密钥

第二步:获取 API 密钥

密钥获取位置.env 变量
可发布密钥控制台 → 开发者 → API 密钥STRIPE_PUBLISHABLE_KEY
私密密钥控制台 → 开发者 → API 密钥STRIPE_SECRET_KEY
STRIPE_PUBLISHABLE_KEY=pk_live_xxxxxxxxxxxxxxxx
STRIPE_SECRET_KEY=sk_live_xxxxxxxxxxxxxxxx

🧪 测试模式: 请使用 pk_test_sk_test_ 密钥进行沙盒测试。

第三步:在 Stripe 中创建产品与价格

为每个订阅套餐创建一个周期性价格

  1. 进入 产品 → 添加产品
  2. 名称:填写"FeedbackPulse 入门版"(或您套餐的名称)
  3. 添加周期性价格:$9.99 / 月
  4. 可选添加年付价格:$99.99 / 年
  5. 复制 Price ID(以 price_ 开头)

第四步:将价格关联到套餐

在 FeedbackPulse 中,进入 管理员 → 套餐 → 编辑

套餐字段Stripe 对应值
Stripe 月付 Price IDprice_xxxxxxxxx(月付价格 ID)
Stripe 年付 Price IDprice_xxxxxxxxx(年付价格 ID)

第五步:设置 Stripe Webhook

这一步至关重要 — Webhook 用于保持订阅数据同步。

  1. 进入 Stripe 控制台 → 开发者 → Webhooks
  2. 点击 添加端点
  3. 端点 URL: https://yourdomain.com/webhooks/stripe
  4. 监听以下事件:
    • checkout.session.completed
    • customer.subscription.created
    • customer.subscription.updated
    • customer.subscription.deleted
    • invoice.payment_failed
  5. 复制 签名密钥(以 whsec_ 开头)
STRIPE_WEBHOOK_SECRET=whsec_xxxxxxxxxxxxxxxx

第六步:在管理面板中启用

进入 管理员 → 设置 → 付款

  • Stripe 切换为启用状态
  • 粘贴您的可发布密钥和私密密钥
  • 保存

💰 PayPal 配置

第一步:创建 PayPal 商业账户

  1. paypal.com/business 注册
  2. 进入 developer.paypal.com

第二步:创建 REST API 应用

  1. 进入 控制台 → 应用与凭据
  2. 点击 创建应用
  3. 名称:填写"FeedbackPulse"
  4. 复制 Client IDSecret
PAYPAL_CLIENT_ID=your_client_id
PAYPAL_CLIENT_SECRET=your_client_secret
PAYPAL_MODE=live

🧪 测试模式: 使用 PAYPAL_MODE=sandbox 和沙盒凭据进行测试。

第三步:在 PayPal 中创建订阅套餐

  1. 进入 PayPal 开发者控制台 → 订阅 → 套餐
  2. 先创建产品,再为产品创建套餐
  3. 复制每个 套餐 ID(以 P- 开头)

第四步:在 FeedbackPulse 中关联套餐

管理员 → 套餐 → 编辑 中:

套餐字段PayPal 对应值
PayPal 月付套餐 IDP-xxxxxxxxx(月付套餐)
PayPal 年付套餐 IDP-xxxxxxxxx(年付套餐)

第五步:设置 PayPal Webhook

  1. 在 PayPal 开发者控制台 → Webhooks
  2. 添加 Webhook URL:https://yourdomain.com/webhooks/paypal
  3. 选择事件:
    • BILLING.SUBSCRIPTION.CREATED
    • BILLING.SUBSCRIPTION.ACTIVATED
    • BILLING.SUBSCRIPTION.UPDATED
    • BILLING.SUBSCRIPTION.CANCELLED
    • BILLING.SUBSCRIPTION.SUSPENDED
    • PAYMENT.SALE.COMPLETED
  4. 复制 Webhook ID
PAYPAL_WEBHOOK_ID=your_webhook_id

第六步:在管理面板中启用

进入 管理员 → 设置 → 付款

  • PayPal 切换为启用状态
  • 粘贴您的 Client ID 和 Secret
  • 保存

🧪 测试支付

Stripe 测试模式

使用测试卡号:

  • 成功: 4242 4242 4242 4242
  • 拒绝: 4000 0000 0000 0002
  • 3D 安全: 4000 0025 0000 3155

有效期:任意未来日期。CVC:任意 3 位数字。

PayPal 沙盒

  1. 进入 developer.paypal.com → Sandbox → Accounts
  2. 使用生成的沙盒买家账户测试支付

多币种支持

套餐可以配置不同的货币(如 USD、EUR、GBP)。在 管理员 > 设置 > 付款支持的货币 字段中配置货币列表。

  • Stripe: 结账 Session 会自动传递套餐货币,确保客户以正确货币付款。
  • PayPal: 订阅请求中包含与套餐配置货币一致的货币元数据。
  • 每张发票都会记录货币信息,便于准确记账。

有关配置支持货币的详细信息,请参阅平台设置


🔒 安全注意事项

  • API 密钥以加密形式存储在 platform_settings 表中
  • Webhook 签名经过验证(Stripe HMAC、PayPal 签名验证)
  • 支付事件记录在 payment_events 表中(管理员 → 付款)
  • 事件去重机制防止 Webhook 重复处理

⏭️ 下一步