ВозможностиОрганизации
Документация
    Ring Platform

    Децентрализованное самостроящееся будущее

    Войти
    Организации
    Возможности
    Магазин
    Документация
    Концепции платформы
    RING ЭкономикаSonoratek LLCГлобальное влияниеAI встречает Web3
    Начать
    Быстрый стартКалькуляторДорожная карта
    Конфиденциальность|Контакты
    v1.104.23|Sonoratek LLC

    Documentation

    Концепции, ценность и типичные сценарии клонирования — меньше кода.

    Добро пожаловать в Ring
    Краткий справочник
    С чего начать
    Предварительные требования
    Установка
    Первый успех
    Следующие шаги
    Функции
    Store
    Склад и остатки
    Управление вендорами
    Комиссии и расчёты
    SubscriptionConductor
    PaymentConductor
    Интеграция платежей
    Интеграция WayForPay
    Web3 Кошелек
    Реферальные коды (Refcodes)
    NFT Exhibition Marketplace
    Система Стейкинга Токенов
    Entities
    Opportunities
    AI Matcher
    Real-Time Messaging
    Peer Games
    Модуль Новостей - Цифровой Газетный Опыт
    Блоги участников
    Система Резервирования Имён Пользователей
    Научный редактор
    Notifications
    Push-уведомления через FCM (Ring)
    Email AI-CRM
    Протокол Tunnel
    Authentication
    Безопасность и соответствие
    Система локалей
    Мобильный Опыт
    Паттерны Оптимизации Производительности
    Примеры
    Quick Start
    Базовая настройка
    White Label
    Custom Branding
    Интеграция Web3
    Реальные Проекты
    Advanced Features
    Кастомизация
    Быстрый старт — ваш первый клон Ring
    Руководство по кастомизации
    Vertical Presets (SSOT)
    Руководство по Ringization
    Branding
    Темы оформления
    Features
    Localization
    Настройка токеномики
    Интеграция платёжного шлюза
    Референсные деплои Ring
    Конфигурация проекта
    Публичные переменные окружения
    Секреты Order Lab
    Project ID WalletConnect (Reown Cloud)
    Поддерживаемые сервисы
    Вики NODUS (знания проекта)
    Плейбук конфигурации
    Web3
    Token launch jurisdictions
    Кошелёк
    Советы по безопасности кошелька
    Интеграции
    Ethereum-кошельки (Wagmi v3)
    Развёртывание
    Self-hosted развёртывание
    Vercel
    Docker
    Конфигурация Окружения
    Мониторинг и аналитика
    Оптимизация производительности
    Резервное копирование и восстановление
    Архитектура
    Data Model
    Security
    Real Time
    Архитектура PaymentConductor
    Бекенд Сервисы
    Интеграция Firebase
    Разработка
    Ring MCP Server

    Быстрый вход (CTO · аудиторы · агенты)

    Приветствие — миссия и аудитории
    Краткий справочник
    С чего начать
    Архитектура и Auth.js
    Режимы бэкенда и базы данных (DB_BACKEND_MODE)
    Self-hosted
    Ring MCP Tools
    Ring MCP Server
    Token economics
    Token launch jurisdictions
    Деплой (Docker · k8s)
    Безопасность и соответствие требованиям
    ringdom.org — база LegioX
    Исходный код — лицензия MIT (GitHub)

    Documentation

    Концепции, ценность и типичные сценарии клонирования — меньше кода.

    Добро пожаловать в Ring
    Краткий справочник
    С чего начать
    Предварительные требования
    Установка
    Первый успех
    Следующие шаги
    Функции
    Store
    Склад и остатки
    Управление вендорами
    Комиссии и расчёты
    SubscriptionConductor
    PaymentConductor
    Интеграция платежей
    Интеграция WayForPay
    Web3 Кошелек
    Реферальные коды (Refcodes)
    NFT Exhibition Marketplace
    Система Стейкинга Токенов
    Entities
    Opportunities
    AI Matcher
    Real-Time Messaging
    Peer Games
    Модуль Новостей - Цифровой Газетный Опыт
    Блоги участников
    Система Резервирования Имён Пользователей
    Научный редактор
    Notifications
    Push-уведомления через FCM (Ring)
    Email AI-CRM
    Протокол Tunnel
    Authentication
    Безопасность и соответствие
    Система локалей
    Мобильный Опыт
    Паттерны Оптимизации Производительности
    Примеры
    Quick Start
    Базовая настройка
    White Label
    Custom Branding
    Интеграция Web3
    Реальные Проекты
    Advanced Features
    Кастомизация
    Быстрый старт — ваш первый клон Ring
    Руководство по кастомизации
    Vertical Presets (SSOT)
    Руководство по Ringization
    Branding
    Темы оформления
    Features
    Localization
    Настройка токеномики
    Интеграция платёжного шлюза
    Референсные деплои Ring
    Конфигурация проекта
    Публичные переменные окружения
    Секреты Order Lab
    Project ID WalletConnect (Reown Cloud)
    Поддерживаемые сервисы
    Вики NODUS (знания проекта)
    Плейбук конфигурации
    Web3
    Token launch jurisdictions
    Кошелёк
    Советы по безопасности кошелька
    Интеграции
    Ethereum-кошельки (Wagmi v3)
    Развёртывание
    Self-hosted развёртывание
    Vercel
    Docker
    Конфигурация Окружения
    Мониторинг и аналитика
    Оптимизация производительности
    Резервное копирование и восстановление
    Архитектура
    Data Model
    Security
    Real Time
    Архитектура PaymentConductor
    Бекенд Сервисы
    Интеграция Firebase
    Разработка
    Ring MCP Server

    Быстрый вход (CTO · аудиторы · агенты)

    Приветствие — миссия и аудитории
    Краткий справочник
    С чего начать
    Архитектура и Auth.js
    Режимы бэкенда и базы данных (DB_BACKEND_MODE)
    Self-hosted
    Ring MCP Tools
    Ring MCP Server
    Token economics
    Token launch jurisdictions
    Деплой (Docker · k8s)
    Безопасность и соответствие требованиям
    ringdom.org — база LegioX
    Исходный код — лицензия MIT (GitHub)

    Documentation

    Концепции, ценность и типичные сценарии клонирования — меньше кода.

    Добро пожаловать в Ring
    Краткий справочник
    С чего начать
    Предварительные требования
    Установка
    Первый успех
    Следующие шаги
    Функции
    Store
    Склад и остатки
    Управление вендорами
    Комиссии и расчёты
    SubscriptionConductor
    PaymentConductor
    Интеграция платежей
    Интеграция WayForPay
    Web3 Кошелек
    Реферальные коды (Refcodes)
    NFT Exhibition Marketplace
    Система Стейкинга Токенов
    Entities
    Opportunities
    AI Matcher
    Real-Time Messaging
    Peer Games
    Модуль Новостей - Цифровой Газетный Опыт
    Блоги участников
    Система Резервирования Имён Пользователей
    Научный редактор
    Notifications
    Push-уведомления через FCM (Ring)
    Email AI-CRM
    Протокол Tunnel
    Authentication
    Безопасность и соответствие
    Система локалей
    Мобильный Опыт
    Паттерны Оптимизации Производительности
    Примеры
    Quick Start
    Базовая настройка
    White Label
    Custom Branding
    Интеграция Web3
    Реальные Проекты
    Advanced Features
    Кастомизация
    Быстрый старт — ваш первый клон Ring
    Руководство по кастомизации
    Vertical Presets (SSOT)
    Руководство по Ringization
    Branding
    Темы оформления
    Features
    Localization
    Настройка токеномики
    Интеграция платёжного шлюза
    Референсные деплои Ring
    Конфигурация проекта
    Публичные переменные окружения
    Секреты Order Lab
    Project ID WalletConnect (Reown Cloud)
    Поддерживаемые сервисы
    Вики NODUS (знания проекта)
    Плейбук конфигурации
    Web3
    Token launch jurisdictions
    Кошелёк
    Советы по безопасности кошелька
    Интеграции
    Ethereum-кошельки (Wagmi v3)
    Развёртывание
    Self-hosted развёртывание
    Vercel
    Docker
    Конфигурация Окружения
    Мониторинг и аналитика
    Оптимизация производительности
    Резервное копирование и восстановление
    Архитектура
    Data Model
    Security
    Real Time
    Архитектура PaymentConductor
    Бекенд Сервисы
    Интеграция Firebase
    Разработка
    Ring MCP Server

    Быстрый вход (CTO · аудиторы · агенты)

    Приветствие — миссия и аудитории
    Краткий справочник
    С чего начать
    Архитектура и Auth.js
    Режимы бэкенда и базы данных (DB_BACKEND_MODE)
    Self-hosted
    Ring MCP Tools
    Ring MCP Server
    Token economics
    Token launch jurisdictions
    Деплой (Docker · k8s)
    Безопасность и соответствие требованиям
    ringdom.org — база LegioX
    Исходный код — лицензия MIT (GitHub)
    Ring Logo

    Loading documentation...

    Preparing Ring content

    Ring Logo

    Loading documentation...

    Preparing Ring content

    Ring Logo

    Loading documentation...

    Preparing Ring content

    Интеграция платёжного шлюза

    Кратко для руководства

    Ring проводит card- и credit-потоки через PaymentConductor — один ledger (payment_transactions), один webhook-диспетчер, процессоры из конфига. Операторы настраивают env и кабинеты PSP; разработчики читают PaymentConductor architecture. Card chip-in DAO jar используют purpose public_pool_contribution (Public Pools) — не hosted «donation»-продукты WayForPay/Stripe/PayPal.

    Используйте вкладки Founder / Developer в боковом меню документации, чтобы фильтровать эту страницу.

    PaymentConductor feature

    Purposes, rails, обзор env

    Public Pools & DAO Jars

    Desk-oracle card jar, комиссии, escrow gate

    Architecture deep dive

    Handlers, ledger, idempotency, API-маршруты

    WayForPay integration

    Env SSOT, HMAC, пароль regularApi

    Checkout → webhook → fulfillment

    Payment purposes

    PurposeTypical useHandler
    store_orderCheckout multi-vendor storeconductor/handlers/store-order.ts
    membership_upgradeSUBSCRIBER → MEMBERconductor/handlers/membership-upgrade.ts
    news_promotionПлатная промоция News Kingdomconductor/handlers/news-promotion.ts
    wallet_topupПополнение wallet credit (card)conductor/handlers/wallet-topup.ts
    public_pool_contributionPublic pool / DAO jar card или PayPalconductor/handlers/public-pool-contribution.ts

    Processors: WayForPay (default), Stripe, internal credit, native token, PayPal (Orders для store/wallet/jars; Subscriptions v1 для recurring membership — см. SubscriptionConductor).

    Rails: merchant_redirect · credit_balance (PAYMENT_STORE_ALLOW_CREDIT) · native_token (PAYMENT_STORE_ALLOW_TOKEN).

    Примените data/migrations/004_payment_transactions.sql до production-платежей.

    Настройка для оператора

    Переменные окружения

    Нет WAYFORPAY_MERCHANT_ID. Используйте WAYFORPAY_MERCHANT_ACCOUNT. Задайте WAYFORPAY_DOMAIN на одобренный домен вашего клона (для этого продукта: ring-platform.org). WAYFORPAY_MERCHANT_PASSWORD обязателен для recurring / regularApi.

    URL webhook (зарегистрируйте в кабинете PSP)

    Замените host на домен вашего клона:

    ProviderService URL
    WayForPayhttps://ring-platform.org/api/payments/wayforpay/webhook
    Stripehttps://ring-platform.org/api/payments/stripe/webhook

    Нужен публичный HTTPS. WayForPay / Stripe не могут POST на localhost. Локальные card-тесты откроют страницу PSP, но credit не settle'ится, пока serviceUrl недоступен (tunnel или staging). Ring эмитит returnUrl на каждый запрос — не нужна статическая thank-you страница в кабинете WayForPay. См. WayForPay.

    Не регистрируйте

    Устаревшие пути /api/payments/wayforpay/callback, , — .

    Маршруты и модули

    Route fileMethodRole
    app/api/payments/wayforpay/webhook/route.tsPOSTdispatchWayForPayWebhook
    app/api/payments/stripe/webhook/route.tsPOSTdispatchStripeWebhook
    app/api/store/payments/wayforpay/route.tsPOSTStore redirect через PaymentConductor (store_order)
    app/api/store/payments/credit/route.tsPOSTCheckout internal credit
    app/api/store/payments/[orderId]/status/route.tsGETPoll статуса заказа

    Связанное

    Payments feature

    Поток membership и обзор

    Store API

    Checkout через PaymentConductor store_order

    Wallet

    Live WayForPay credit top-up

    Migrations

    Порядок применения, включая миграцию 004

    1. Документация
    2. /Кастомизация
    3. /Интеграция платёжного шлюза

    Обновлено 22 июл. 2026 г.3 мин прослушивания

    Интеграция платёжного шлюза

    Кратко для руководства

    Ring проводит card- и credit-потоки через PaymentConductor — один ledger (payment_transactions), один webhook-диспетчер, процессоры из конфига. Операторы настраивают env и кабинеты PSP; разработчики читают PaymentConductor architecture. Card chip-in DAO jar используют purpose public_pool_contribution (Public Pools) — не hosted «donation»-продукты WayForPay/Stripe/PayPal.

    Используйте вкладки Founder / Developer в боковом меню документации, чтобы фильтровать эту страницу.

    PaymentConductor feature

    Purposes, rails, обзор env

    Public Pools & DAO Jars

    Desk-oracle card jar, комиссии, escrow gate

    Architecture deep dive

    Handlers, ledger, idempotency, API-маршруты

    WayForPay integration

    Env SSOT, HMAC, пароль regularApi

    Checkout → webhook → fulfillment

    Payment purposes

    PurposeTypical useHandler
    store_orderCheckout multi-vendor storeconductor/handlers/store-order.ts
    membership_upgradeSUBSCRIBER → MEMBERconductor/handlers/membership-upgrade.ts
    news_promotionПлатная промоция News Kingdomconductor/handlers/news-promotion.ts
    wallet_topupПополнение wallet credit (card)conductor/handlers/wallet-topup.ts
    public_pool_contributionPublic pool / DAO jar card или PayPalconductor/handlers/public-pool-contribution.ts

    Processors: WayForPay (default), Stripe, internal credit, native token, PayPal (Orders для store/wallet/jars; Subscriptions v1 для recurring membership — см. SubscriptionConductor).

    Rails: merchant_redirect · credit_balance (PAYMENT_STORE_ALLOW_CREDIT) · native_token (PAYMENT_STORE_ALLOW_TOKEN).

    Примените data/migrations/004_payment_transactions.sql до production-платежей.

    Настройка для оператора

    Переменные окружения

    Нет WAYFORPAY_MERCHANT_ID. Используйте WAYFORPAY_MERCHANT_ACCOUNT. Задайте WAYFORPAY_DOMAIN на одобренный домен вашего клона (для этого продукта: ring-platform.org). WAYFORPAY_MERCHANT_PASSWORD обязателен для recurring / regularApi.

    URL webhook (зарегистрируйте в кабинете PSP)

    Замените host на домен вашего клона:

    ProviderService URL
    WayForPayhttps://ring-platform.org/api/payments/wayforpay/webhook
    Stripehttps://ring-platform.org/api/payments/stripe/webhook

    Нужен публичный HTTPS. WayForPay / Stripe не могут POST на localhost. Локальные card-тесты откроют страницу PSP, но credit не settle'ится, пока serviceUrl недоступен (tunnel или staging). Ring эмитит returnUrl на каждый запрос — не нужна статическая thank-you страница в кабинете WayForPay. См. WayForPay.

    Не регистрируйте

    Устаревшие пути /api/payments/wayforpay/callback, , — .

    Маршруты и модули

    Route fileMethodRole
    app/api/payments/wayforpay/webhook/route.tsPOSTdispatchWayForPayWebhook
    app/api/payments/stripe/webhook/route.tsPOSTdispatchStripeWebhook
    app/api/store/payments/wayforpay/route.tsPOSTStore redirect через PaymentConductor (store_order)
    app/api/store/payments/credit/route.tsPOSTCheckout internal credit
    app/api/store/payments/[orderId]/status/route.tsGETPoll статуса заказа

    Связанное

    Payments feature

    Поток membership и обзор

    Store API

    Checkout через PaymentConductor store_order

    Wallet

    Live WayForPay credit top-up

    Migrations

    Порядок применения, включая миграцию 004

    1. Документация
    2. /Кастомизация
    3. /Интеграция платёжного шлюза

    Обновлено 22 июл. 2026 г.3 мин прослушивания

    Интеграция платёжного шлюза

    Кратко для руководства

    Ring проводит card- и credit-потоки через PaymentConductor — один ledger (payment_transactions), один webhook-диспетчер, процессоры из конфига. Операторы настраивают env и кабинеты PSP; разработчики читают PaymentConductor architecture. Card chip-in DAO jar используют purpose public_pool_contribution (Public Pools) — не hosted «donation»-продукты WayForPay/Stripe/PayPal.

    Используйте вкладки Founder / Developer в боковом меню документации, чтобы фильтровать эту страницу.

    PaymentConductor feature

    Purposes, rails, обзор env

    Public Pools & DAO Jars

    Desk-oracle card jar, комиссии, escrow gate

    Architecture deep dive

    Handlers, ledger, idempotency, API-маршруты

    WayForPay integration

    Env SSOT, HMAC, пароль regularApi

    Checkout → webhook → fulfillment

    Payment purposes

    PurposeTypical useHandler
    store_orderCheckout multi-vendor storeconductor/handlers/store-order.ts
    membership_upgradeSUBSCRIBER → MEMBERconductor/handlers/membership-upgrade.ts
    news_promotionПлатная промоция News Kingdomconductor/handlers/news-promotion.ts
    wallet_topupПополнение wallet credit (card)conductor/handlers/wallet-topup.ts
    public_pool_contributionPublic pool / DAO jar card или PayPalconductor/handlers/public-pool-contribution.ts

    Processors: WayForPay (default), Stripe, internal credit, native token, PayPal (Orders для store/wallet/jars; Subscriptions v1 для recurring membership — см. SubscriptionConductor).

    Rails: merchant_redirect · credit_balance (PAYMENT_STORE_ALLOW_CREDIT) · native_token (PAYMENT_STORE_ALLOW_TOKEN).

    Примените data/migrations/004_payment_transactions.sql до production-платежей.

    Настройка для оператора

    Переменные окружения

    Нет WAYFORPAY_MERCHANT_ID. Используйте WAYFORPAY_MERCHANT_ACCOUNT. Задайте WAYFORPAY_DOMAIN на одобренный домен вашего клона (для этого продукта: ring-platform.org). WAYFORPAY_MERCHANT_PASSWORD обязателен для recurring / regularApi.

    URL webhook (зарегистрируйте в кабинете PSP)

    Замените host на домен вашего клона:

    ProviderService URL
    WayForPayhttps://ring-platform.org/api/payments/wayforpay/webhook
    Stripehttps://ring-platform.org/api/payments/stripe/webhook

    Нужен публичный HTTPS. WayForPay / Stripe не могут POST на localhost. Локальные card-тесты откроют страницу PSP, но credit не settle'ится, пока serviceUrl недоступен (tunnel или staging). Ring эмитит returnUrl на каждый запрос — не нужна статическая thank-you страница в кабинете WayForPay. См. WayForPay.

    Не регистрируйте

    Устаревшие пути /api/payments/wayforpay/callback, , — .

    Маршруты и модули

    Route fileMethodRole
    app/api/payments/wayforpay/webhook/route.tsPOSTdispatchWayForPayWebhook
    app/api/payments/stripe/webhook/route.tsPOSTdispatchStripeWebhook
    app/api/store/payments/wayforpay/route.tsPOSTStore redirect через PaymentConductor (store_order)
    app/api/store/payments/credit/route.tsPOSTCheckout internal credit
    app/api/store/payments/[orderId]/status/route.tsGETPoll статуса заказа

    Связанное

    Payments feature

    Поток membership и обзор

    Store API

    Checkout через PaymentConductor store_order

    Wallet

    Live WayForPay credit top-up

    Migrations

    Порядок применения, включая миграцию 004

    1. Документация
    2. /Кастомизация
    3. /Интеграция платёжного шлюза

    Обновлено 22 июл. 2026 г.3 мин прослушивания

    /success
    /failure
    не реализованы

    Устаревшие aliases (ещё работают — мигрируйте, когда удобно):

    • /api/store/payments/wayforpay/webhook
    • /api/news/promotion/wayforpay-webhook

    Чеклист перед запуском

    1. 1

      Миграция 004_payment_transactions.sql применена на production Postgres.

    2. 2

      PAYMENT_* и учётные данные WayForPay / Stripe в secrets manager (никогда не коммитьте .env.local).

    3. 3

      Зарегистрированы канонические webhook URL; WAYFORPAY_DOMAIN совпадает с одобренным merchant domain.

    4. 4

      Staging smoke: store checkout, card upgrade membership, news promotion (если используется), wallet credit top-up.

    5. 5

      После go-live: мониторьте payment_transactions на зависшие строки pending / redirected; история membership / wallet top-up — Admin → user → вкладка Payments.

    app/api/admin/users/[id]/payments/route.ts
    GET
    Вкладка Admin Payments (listByUserId)

    WayForPay маршрутизирует по префиксу orderReference (store_, membership_, news-promo-…, wallettopup_) — см. lib/payments/conductor/webhook-dispatcher.ts и lib/payments/order-reference.ts.

    Настройка PSP — WayForPay

    1. 1

      Создайте merchant-аккаунт на wayforpay.com — KYC, зафиксируйте merchant account, secret key, merchant password, одобренный domain.

    2. 2

      Задайте env Ring из env.local.template (также зеркалится в docker.env.template / docker-compose.template.yml).

    3. 3

      Cabinet service URL: https://<your-domain>/api/payments/wayforpay/webhook.

    4. 4

      Staging: миграция 004 → тест checkout / membership / wallet top-up → подтвердите payment_transactions + fulfillment.

    Настройка PSP — Stripe

    1. 1

      Создайте аккаунт на stripe.com; получите test или live API keys.

    2. 2
    3. 3

      Dashboard → Webhooks → endpoint https://<your-domain>/api/payments/stripe/webhook. Подпишитесь на checkout.session.completed (и события, которые обрабатывает ваш processor).

    /success
    /failure
    не реализованы

    Устаревшие aliases (ещё работают — мигрируйте, когда удобно):

    • /api/store/payments/wayforpay/webhook
    • /api/news/promotion/wayforpay-webhook

    Чеклист перед запуском

    1. 1

      Миграция 004_payment_transactions.sql применена на production Postgres.

    2. 2

      PAYMENT_* и учётные данные WayForPay / Stripe в secrets manager (никогда не коммитьте .env.local).

    3. 3

      Зарегистрированы канонические webhook URL; WAYFORPAY_DOMAIN совпадает с одобренным merchant domain.

    4. 4

      Staging smoke: store checkout, card upgrade membership, news promotion (если используется), wallet credit top-up.

    5. 5

      После go-live: мониторьте payment_transactions на зависшие строки pending / redirected; история membership / wallet top-up — Admin → user → вкладка Payments.

    app/api/admin/users/[id]/payments/route.ts
    GET
    Вкладка Admin Payments (listByUserId)

    WayForPay маршрутизирует по префиксу orderReference (store_, membership_, news-promo-…, wallettopup_) — см. lib/payments/conductor/webhook-dispatcher.ts и lib/payments/order-reference.ts.

    Настройка PSP — WayForPay

    1. 1

      Создайте merchant-аккаунт на wayforpay.com — KYC, зафиксируйте merchant account, secret key, merchant password, одобренный domain.

    2. 2

      Задайте env Ring из env.local.template (также зеркалится в docker.env.template / docker-compose.template.yml).

    3. 3

      Cabinet service URL: https://<your-domain>/api/payments/wayforpay/webhook.

    4. 4

      Staging: миграция 004 → тест checkout / membership / wallet top-up → подтвердите payment_transactions + fulfillment.

    Настройка PSP — Stripe

    1. 1

      Создайте аккаунт на stripe.com; получите test или live API keys.

    2. 2
    3. 3

      Dashboard → Webhooks → endpoint https://<your-domain>/api/payments/stripe/webhook. Подпишитесь на checkout.session.completed (и события, которые обрабатывает ваш processor).

    /success
    /failure
    не реализованы

    Устаревшие aliases (ещё работают — мигрируйте, когда удобно):

    • /api/store/payments/wayforpay/webhook
    • /api/news/promotion/wayforpay-webhook

    Чеклист перед запуском

    1. 1

      Миграция 004_payment_transactions.sql применена на production Postgres.

    2. 2

      PAYMENT_* и учётные данные WayForPay / Stripe в secrets manager (никогда не коммитьте .env.local).

    3. 3

      Зарегистрированы канонические webhook URL; WAYFORPAY_DOMAIN совпадает с одобренным merchant domain.

    4. 4

      Staging smoke: store checkout, card upgrade membership, news promotion (если используется), wallet credit top-up.

    5. 5

      После go-live: мониторьте payment_transactions на зависшие строки pending / redirected; история membership / wallet top-up — Admin → user → вкладка Payments.

    app/api/admin/users/[id]/payments/route.ts
    GET
    Вкладка Admin Payments (listByUserId)

    WayForPay маршрутизирует по префиксу orderReference (store_, membership_, news-promo-…, wallettopup_) — см. lib/payments/conductor/webhook-dispatcher.ts и lib/payments/order-reference.ts.

    Настройка PSP — WayForPay

    1. 1

      Создайте merchant-аккаунт на wayforpay.com — KYC, зафиксируйте merchant account, secret key, merchant password, одобренный domain.

    2. 2

      Задайте env Ring из env.local.template (также зеркалится в docker.env.template / docker-compose.template.yml).

    3. 3

      Cabinet service URL: https://<your-domain>/api/payments/wayforpay/webhook.

    4. 4

      Staging: миграция 004 → тест checkout / membership / wallet top-up → подтвердите payment_transactions + fulfillment.

    Настройка PSP — Stripe

    1. 1

      Создайте аккаунт на stripe.com; получите test или live API keys.

    2. 2
    3. 3

      Dashboard → Webhooks → endpoint https://<your-domain>/api/payments/stripe/webhook. Подпишитесь на checkout.session.completed (и события, которые обрабатывает ваш processor).