Перейти к основному содержимому

Платёжные шлюзы (Stripe и PayPal)

FeedbackPulse SaaS поддерживает Stripe и PayPal для биллинга подписок. Вы можете включить один или оба.


💰 Как работает биллинг

  1. Вы создаёте тарифные планы в Администратор → Планы (например, Starter $9.99/мес, Pro $29.99/мес)
  2. Каждый план имеет Stripe Price ID и/или PayPal Plan ID
  3. Когда арендатор подписывается, он перенаправляется на Stripe Checkout или PayPal
  4. После оплаты FeedbackPulse активирует его подписку
  5. Вебхуки синхронизируют всё (продления, отмены, сбои)

💳 Настройка Stripe

Шаг 1: Создайте аккаунт Stripe

  1. Зарегистрируйтесь на stripe.com
  2. Пройдите верификацию личности
  3. Получите ваши API-ключи в Developers → API Keys

Шаг 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_ для режима sandbox.

Шаг 3: Создайте продукты и цены в Stripe

Для каждого тарифного плана создайте регулярную цену в Stripe:

  1. Перейдите в Products → Add Product
  2. Название: «FeedbackPulse Starter» (или ваше название плана)
  3. Добавьте регулярную цену: $9.99 / месяц
  4. Опционально добавьте годовую цену: $99.99 / год
  5. Скопируйте Price ID (начинается с price_)

Шаг 4: Свяжите цены с планами

В FeedbackPulse перейдите в Администратор → Планы → Редактировать:

Поле планаЗначение Stripe
Stripe Monthly Price IDprice_xxxxxxxxx (ID ежемесячной цены)
Stripe Annual Price IDprice_xxxxxxxxx (ID годовой цены)

Шаг 5: Настройте вебхуки Stripe

Это критически важно — вебхуки синхронизируют подписки.

  1. Перейдите в Stripe Dashboard → Developers → Webhooks
  2. Нажмите Add endpoint
  3. Endpoint URL: https://yourdomain.com/webhooks/stripe
  4. Прослушиваемые события:
    • checkout.session.completed
    • customer.subscription.created
    • customer.subscription.updated
    • customer.subscription.deleted
    • invoice.payment_failed
  5. Скопируйте Signing Secret (начинается с whsec_)
STRIPE_WEBHOOK_SECRET=whsec_xxxxxxxxxxxxxxxx

Шаг 6: Включите в панели администратора

Перейдите в Администратор → Настройки → Платежи:

  • Включите Stripe
  • Вставьте ваш публичный и секретный ключи
  • Сохраните

💰 Настройка PayPal

Шаг 1: Создайте бизнес-аккаунт PayPal

  1. Зарегистрируйтесь на paypal.com/business
  2. Перейдите на developer.paypal.com

Шаг 2: Создайте REST API App

  1. Перейдите в Dashboard → Apps & Credentials
  2. Нажмите Create App
  3. Название: «FeedbackPulse»
  4. Скопируйте Client ID и Secret
PAYPAL_CLIENT_ID=your_client_id
PAYPAL_CLIENT_SECRET=your_client_secret
PAYPAL_MODE=live

🧪 Тестирование: Используйте PAYPAL_MODE=sandbox и sandbox-учётные данные.

Шаг 3: Создайте планы подписок в PayPal

  1. Перейдите в PayPal Developer Dashboard → Subscriptions → Plans
  2. Сначала создайте продукт, затем создайте планы для него
  3. Скопируйте каждый Plan ID (начинается с P-)

Шаг 4: Свяжите планы в FeedbackPulse

В Администратор → Планы → Редактировать:

Поле планаЗначение PayPal
PayPal Monthly Plan IDP-xxxxxxxxx (ежемесячный план)
PayPal Annual Plan IDP-xxxxxxxxx (годовой план)

Шаг 5: Настройте вебхуки PayPal

  1. В PayPal Developer Dashboard → Webhooks
  2. Добавьте 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: Включите в панели администратора

Перейдите в Администратор → Настройки → Платежи:

  • Включите PayPal
  • Вставьте Client ID и Secret
  • Сохраните

🧪 Тестирование платежей

Тестовый режим Stripe

Используйте тестовые номера карт:

  • Успешно: 4242 4242 4242 4242
  • Отклонено: 4000 0000 0000 0002
  • 3D Secure: 4000 0025 0000 3155

Срок действия: любая будущая дата. CVC: любые 3 цифры.

Sandbox PayPal

  1. Перейдите на developer.paypal.com → Sandbox → Accounts
  2. Используйте сгенерированный sandbox-аккаунт покупателя для тестирования платежей

Поддержка нескольких валют

Планам можно назначить разные валюты (например, USD, EUR, GBP). Настройте список поддерживаемых валют в Администратор > Настройки > Платежи в поле Поддерживаемые валюты.

  • Stripe: Checkout-сессии автоматически передают валюту плана, поэтому клиенты оплачивают в правильной валюте.
  • PayPal: Запросы подписки включают метаданные валюты, соответствующие настроенной валюте плана.
  • Валюта сохраняется в каждом счёте для точного учёта.

Подробности настройки поддерживаемых валют см. в Настройках платформы.


🔒 Примечания по безопасности

  • API-ключи хранятся зашифрованными в таблице platform_settings
  • Подписи вебхуков верифицируются (Stripe HMAC, валидация подписи PayPal)
  • Платёжные события регистрируются в таблице payment_events (Администратор → Платежи)
  • Дедупликация событий предотвращает двойную обработку вебхуков

⏭️ Следующие шаги