Підготовка контенту платформи Ring
Підготовка контенту платформи Ring
Підготовка контенту платформи Ring
Concepts, value, and typical clone scenarios — less code.
Concepts, value, and typical clone scenarios — less code.
Concepts, value, and typical clone scenarios — less code.
PaymentConductor (v1, 2026-05-22) is Ring Platform's config-driven payment layer. One ledger (payment_transactions) and one webhook dispatcher serve store checkout, membership upgrades, and news promotion.
Use Founder / Developer tabs in the docs sidebar to filter this page. Founders see configuration and business value; developers see architecture, modules, and webhook flows.
| Purpose | Handler | Typical processor |
|---|---|---|
store_order | handlers/store-order.ts | WayForPay or Stripe |
membership_upgrade | handlers/membership-upgrade.ts | WayForPay or Stripe |
news_promotion | handlers/news-promotion.ts | WayForPay or Stripe |
ring-config.json; override per-deployment via env vars. No code changes needed.| Gateway | Fee % | Fixed Fee | Currency | Status |
|---|---|---|---|---|
| WayForPay | 2.5% | — | UAH | ✅ Live |
| Stripe | 2.9% | $0.30 | USD | ✅ Live (Phase S3) |
| Credit Balance | 0% | — | USD | ✅ Live |
| RING Token | 0% | — | RING | ✅ Live |
Set env vars for each gateway:
High-level payment integration — store, membership, news, and gateway selection.
Multi-provider membership subscription billing with cron pipelines.
HMAC verification, idempotent orderReference, and 3DS handling.
Deep-dive architecture with data model and webhook dispatch sequences.
PaymentConductor (v1, 2026-05-22) is Ring Platform's config-driven payment layer. One ledger (payment_transactions) and one webhook dispatcher serve store checkout, membership upgrades, and news promotion.
Use Founder / Developer tabs in the docs sidebar to filter this page. Founders see configuration and business value; developers see architecture, modules, and webhook flows.
| Purpose | Handler | Typical processor |
|---|---|---|
store_order | handlers/store-order.ts | WayForPay or Stripe |
membership_upgrade | handlers/membership-upgrade.ts | WayForPay or Stripe |
news_promotion | handlers/news-promotion.ts | WayForPay or Stripe |
ring-config.json; override per-deployment via env vars. No code changes needed.| Gateway | Fee % | Fixed Fee | Currency | Status |
|---|---|---|---|---|
| WayForPay | 2.5% | — | UAH | ✅ Live |
| Stripe | 2.9% | $0.30 | USD | ✅ Live (Phase S3) |
| Credit Balance | 0% | — | USD | ✅ Live |
| RING Token | 0% | — | RING | ✅ Live |
Set env vars for each gateway:
High-level payment integration — store, membership, news, and gateway selection.
Multi-provider membership subscription billing with cron pipelines.
HMAC verification, idempotent orderReference, and 3DS handling.
Deep-dive architecture with data model and webhook dispatch sequences.
PaymentConductor (v1, 2026-05-22) is Ring Platform's config-driven payment layer. One ledger (payment_transactions) and one webhook dispatcher serve store checkout, membership upgrades, and news promotion.
Use Founder / Developer tabs in the docs sidebar to filter this page. Founders see configuration and business value; developers see architecture, modules, and webhook flows.
| Purpose | Handler | Typical processor |
|---|---|---|
store_order | handlers/store-order.ts | WayForPay or Stripe |
membership_upgrade | handlers/membership-upgrade.ts | WayForPay or Stripe |
news_promotion | handlers/news-promotion.ts | WayForPay or Stripe |
ring-config.json; override per-deployment via env vars. No code changes needed.| Gateway | Fee % | Fixed Fee | Currency | Status |
|---|---|---|---|---|
| WayForPay | 2.5% | — | UAH | ✅ Live |
| Stripe | 2.9% | $0.30 | USD | ✅ Live (Phase S3) |
| Credit Balance | 0% | — | USD | ✅ Live |
| RING Token | 0% | — | RING | ✅ Live |
Set env vars for each gateway:
High-level payment integration — store, membership, news, and gateway selection.
Multi-provider membership subscription billing with cron pipelines.
HMAC verification, idempotent orderReference, and 3DS handling.
Deep-dive architecture with data model and webhook dispatch sequences.
| Unified dispatcher for all providers |
| Purpose handlers | lib/payments/handlers/store-order.ts, handlers/membership-upgrade.ts, handlers/news-promotion.ts | Per-purpose logic (validation, post-payment hooks) |
| Rail | Description | Env gate |
|---|---|---|
merchant_redirect | WayForPay / Stripe hosted checkout | Default |
internal_credit | Wallet credit balance | PAYMENT_STORE_ALLOW_CREDIT |
native_token | RING token on-chain | PAYMENT_STORE_ALLOW_TOKEN |
| Endpoint | Provider | |
|---|---|---|
/api/payments/wayforpay/webhook | WayForPay | HMAC signature verification |
/api/payments/stripe/webhook | Stripe | STRIPE_WEBHOOK_SECRET verification |
Apply migration data/migrations/004_payment_transactions.sql before enabling the conductor in production. All transactions persist in the payment_transactions collection using the DatabaseService result contract { success, data, error }.
{
"payment": {
"cardPaymentProcessor": "wayforpay",
"supportedMethods": ["wayforpay", "credit_balance", "native_token"],
"gateways": {
"wayforpay": { "enabled": true, "feePercent": 2.5, "currency": "UAH" },
"stripe": { "enabled": false, "feePercent": 2.9, "feeFixedCents": 30, "currency": "USD" }
}
}
}
PAYMENT_DEFAULT_PROCESSOR=wayforpay
WAYFORPAY_MERCHANT_ACCOUNT=your_merchant
WAYFORPAY_SECRET_KEY=your_secret
STRIPE_SECRET_KEY=sk_live_...
STRIPE_WEBHOOK_SECRET=whsec_...
PAYMENT_FIAT_CURRENCY=USD
PAYMENT_STORE_PROCESSOR=stripe # Override store checkout to Stripe
PAYMENT_MEMBERSHIP_PROCESSOR=stripe # Override membership to Stripe
PAYMENT_NEWS_PROCESSOR=wayforpay # News stays on WayForPay| Unified dispatcher for all providers |
| Purpose handlers | lib/payments/handlers/store-order.ts, handlers/membership-upgrade.ts, handlers/news-promotion.ts | Per-purpose logic (validation, post-payment hooks) |
| Rail | Description | Env gate |
|---|---|---|
merchant_redirect | WayForPay / Stripe hosted checkout | Default |
internal_credit | Wallet credit balance | PAYMENT_STORE_ALLOW_CREDIT |
native_token | RING token on-chain | PAYMENT_STORE_ALLOW_TOKEN |
| Endpoint | Provider | |
|---|---|---|
/api/payments/wayforpay/webhook | WayForPay | HMAC signature verification |
/api/payments/stripe/webhook | Stripe | STRIPE_WEBHOOK_SECRET verification |
Apply migration data/migrations/004_payment_transactions.sql before enabling the conductor in production. All transactions persist in the payment_transactions collection using the DatabaseService result contract { success, data, error }.
{
"payment": {
"cardPaymentProcessor": "wayforpay",
"supportedMethods": ["wayforpay", "credit_balance", "native_token"],
"gateways": {
"wayforpay": { "enabled": true, "feePercent": 2.5, "currency": "UAH" },
"stripe": { "enabled": false, "feePercent": 2.9, "feeFixedCents": 30, "currency": "USD" }
}
}
}
PAYMENT_DEFAULT_PROCESSOR=wayforpay
WAYFORPAY_MERCHANT_ACCOUNT=your_merchant
WAYFORPAY_SECRET_KEY=your_secret
STRIPE_SECRET_KEY=sk_live_...
STRIPE_WEBHOOK_SECRET=whsec_...
PAYMENT_FIAT_CURRENCY=USD
PAYMENT_STORE_PROCESSOR=stripe # Override store checkout to Stripe
PAYMENT_MEMBERSHIP_PROCESSOR=stripe # Override membership to Stripe
PAYMENT_NEWS_PROCESSOR=wayforpay # News stays on WayForPay| Unified dispatcher for all providers |
| Purpose handlers | lib/payments/handlers/store-order.ts, handlers/membership-upgrade.ts, handlers/news-promotion.ts | Per-purpose logic (validation, post-payment hooks) |
| Rail | Description | Env gate |
|---|---|---|
merchant_redirect | WayForPay / Stripe hosted checkout | Default |
internal_credit | Wallet credit balance | PAYMENT_STORE_ALLOW_CREDIT |
native_token | RING token on-chain | PAYMENT_STORE_ALLOW_TOKEN |
| Endpoint | Provider | |
|---|---|---|
/api/payments/wayforpay/webhook | WayForPay | HMAC signature verification |
/api/payments/stripe/webhook | Stripe | STRIPE_WEBHOOK_SECRET verification |
Apply migration data/migrations/004_payment_transactions.sql before enabling the conductor in production. All transactions persist in the payment_transactions collection using the DatabaseService result contract { success, data, error }.
{
"payment": {
"cardPaymentProcessor": "wayforpay",
"supportedMethods": ["wayforpay", "credit_balance", "native_token"],
"gateways": {
"wayforpay": { "enabled": true, "feePercent": 2.5, "currency": "UAH" },
"stripe": { "enabled": false, "feePercent": 2.9, "feeFixedCents": 30, "currency": "USD" }
}
}
}
PAYMENT_DEFAULT_PROCESSOR=wayforpay
WAYFORPAY_MERCHANT_ACCOUNT=your_merchant
WAYFORPAY_SECRET_KEY=your_secret
STRIPE_SECRET_KEY=sk_live_...
STRIPE_WEBHOOK_SECRET=whsec_...
PAYMENT_FIAT_CURRENCY=USD
PAYMENT_STORE_PROCESSOR=stripe # Override store checkout to Stripe
PAYMENT_MEMBERSHIP_PROCESSOR=stripe # Override membership to Stripe
PAYMENT_NEWS_PROCESSOR=wayforpay # News stays on WayForPay