メインコンテンツまでスキップ

決済ゲートウェイ(Stripe & PayPal)

FeedbackPulse SaaS は、サブスクリプション請求に StripePayPal をサポートしています。どちらか一方、または両方を有効にできます。


💰 請求の仕組み

  1. Admin → Plans でサブスクリプションプランを作成します(例:Starter $9.99/月、Pro $29.99/月)
  2. 各プランには Stripe Price ID および/または PayPal Plan ID を設定します
  3. テナントがサブスクライブすると、Stripe Checkout または PayPal にリダイレクトされます
  4. 支払い完了後、FeedbackPulse がサブスクリプションを有効化します
  5. Webhook が更新・キャンセル・失敗などの状態を同期し続けます

💳 Stripe のセットアップ

ステップ 1:Stripe アカウントの作成

  1. stripe.com でサインアップします
  2. 本人確認を完了します
  3. Developers → API Keys から API キーを取得します

ステップ 2:API キーの取得

キー取得場所.env 変数
公開可能キーDashboard → Developers → API KeysSTRIPE_PUBLISHABLE_KEY
シークレットキーDashboard → Developers → API KeysSTRIPE_SECRET_KEY
STRIPE_PUBLISHABLE_KEY=pk_live_xxxxxxxxxxxxxxxx
STRIPE_SECRET_KEY=sk_live_xxxxxxxxxxxxxxxx

🧪 テスト: サンドボックスモードでは pk_test_ および sk_test_ キーを使用してください。

ステップ 3:Stripe での商品と価格の作成

各サブスクリプションプランについて、Stripe に継続課金価格を作成します。

  1. Products → Add Product に移動します
  2. 名前:「FeedbackPulse Starter」(またはプラン名)
  3. 継続課金価格を追加:$9.99 / 月
  4. 必要に応じて年間価格を追加:$99.99 / 年
  5. Price IDprice_ で始まる)をコピーします

ステップ 4:プランへの価格の紐付け

FeedbackPulse の Admin → Plans → Edit に移動します。

プランフィールドStripe の値
Stripe 月額 Price IDprice_xxxxxxxxx(月額 Price ID)
Stripe 年額 Price IDprice_xxxxxxxxx(年額 Price ID)

ステップ 5:Stripe Webhook の設定

これは必須です — Webhook がサブスクリプションの同期を維持します。

  1. Stripe Dashboard → Developers → Webhooks に移動します
  2. Add endpoint をクリックします
  3. エンドポイント URL: https://yourdomain.com/webhooks/stripe
  4. リッスンするイベント:
    • checkout.session.completed
    • customer.subscription.created
    • customer.subscription.updated
    • customer.subscription.deleted
    • invoice.payment_failed
  5. Signing Secretwhsec_ で始まる)をコピーします
STRIPE_WEBHOOK_SECRET=whsec_xxxxxxxxxxxxxxxx

ステップ 6:管理パネルでの有効化

Admin → Settings → Payments に移動します:

  • Stripe をオンに切り替えます
  • 公開可能キーとシークレットキーを貼り付けます
  • 保存します

💰 PayPal のセットアップ

ステップ 1:PayPal ビジネスアカウントの作成

  1. paypal.com/business でサインアップします
  2. developer.paypal.com に移動します

ステップ 2:REST API アプリの作成

  1. Dashboard → Apps & Credentials に移動します
  2. Create App をクリックします
  3. 名前:「FeedbackPulse」
  4. Client IDSecret をコピーします
PAYPAL_CLIENT_ID=your_client_id
PAYPAL_CLIENT_SECRET=your_client_secret
PAYPAL_MODE=live

🧪 テスト: PAYPAL_MODE=sandbox とサンドボックス認証情報を使用してください。

ステップ 3:PayPal でのサブスクリプションプランの作成

  1. PayPal Developer Dashboard → Subscriptions → Plans に移動します
  2. まず商品を作成し、その後プランを作成します
  3. プラン IDP- で始まる)をコピーします

ステップ 4:FeedbackPulse へのプランの紐付け

Admin → Plans → Edit で設定します。

プランフィールドPayPal の値
PayPal 月額プラン IDP-xxxxxxxxx(月額プラン)
PayPal 年額プラン IDP-xxxxxxxxx(年額プラン)

ステップ 5:PayPal Webhook の設定

  1. PayPal Developer Dashboard → 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

ステップ 6:管理パネルでの有効化

Admin → Settings → Payments に移動します:

  • PayPal をオンに切り替えます
  • クライアント ID とシークレットを貼り付けます
  • 保存します

🧪 決済のテスト

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)を割り当てることができます。サポートする通貨のリストは Admin > Settings > Paymentsサポート通貨 フィールドで設定します。

  • Stripe: チェックアウトセッションはプランの通貨を自動的に渡すため、顧客は正しい通貨で請求されます。
  • PayPal: サブスクリプションリクエストには、プランで設定された通貨のメタデータが含まれます。
  • 通貨は正確な記録管理のため、各請求書に保存されます。

サポート通貨の設定については、プラットフォーム設定 を参照してください。


🔒 セキュリティについて

  • API キーは platform_settings テーブルに暗号化して保存されます
  • Webhook シグネチャが検証されます(Stripe HMAC、PayPal シグネチャ検証)
  • 決済イベントは payment_events テーブルに記録されます(Admin → Payments)
  • イベントの重複排除により、Webhook の二重処理を防止します

⏭️ 次のステップ