Concepts, value, and typical clone scenarios — less code.
Concepts, value, and typical clone scenarios — less code.
Підготовка контенту платформи Ring
Підготовка контенту платформи Ring
Підготовка контенту платформи Ring
Ring Platform routes card, credit, token, and PayPal flows through PaymentConductor (lib/payments/conductor/). WayForPay is the primary PSP for Ukraine; Stripe and PayPal cover international rails. Wallet credit top-up is a live wallet_topup purpose. Public pool / DAO jar card and PayPal chip-ins use purpose public_pool_contribution (desk-oracle FX — not 1:1 fiat↔native). Membership recurring PayPal uses SubscriptionConductor (Subscriptions v1).
Browser handoff is Conductor CheckoutRedirect — architecture · WayForPay HPP.
Deep dive: PaymentConductor feature · Architecture · Public Pools & DAO Jars · WayForPay · SubscriptionConductor
Use Founder / Developer tabs in the docs sidebar to filter this page.
| Purpose | Description | PSP / rail |
|---|---|---|
store_order | Cart → checkout | WayForPay / Stripe / credit / token / PayPal |
membership_upgrade | Role upgrade (e.g. SUBSCRIBER → MEMBER) | WayForPay / Stripe / native token / PayPal |
news_promotion | News Kingdom sponsored articles | WayForPay / Stripe |
wallet_topup | Fiat credit top-up (Card / PayPal tabs) | WayForPay or Stripe (PAYMENT_WALLET_TOPUP_PROCESSOR); PayPal when processor=paypal |
public_pool_contribution | DAO jar / public-pool card or PayPal chip-in | WayForPay / Stripe / PayPal → desk oracle → pledged_native_token |
| Internal credit | Spend existing credit balance | Internal |
| RING token | On-chain native-token payments | RING |
WayForPay hosted Донати, Stripe submit_type=donate, and PayPal Donate SDK are not Ring jar SSOT. See Public Pools.
payment_transactions for store, membership, news, wallet top-up, and public-pool card chip-ins.PAYMENT_DEFAULT_PROCESSOR plus per-purpose overrides (including optional PAYMENT_PUBLIC_POOL_CONTRIBUTION_PROCESSOR).NEXT_PUBLIC_PAYMENT_STORE_ALLOW_PAYPAL=true). Manage cancel/history at /membership/manage.PAYPAL_* credentials./dao and docs FutureFeature widgets; builder payout when the jar fills (Public Pools).ring-config.json payment sectionJar fee map (separate key): publicPools.platformFeePercentByRole — see Public Pools.
Deep-dive: purposes, rails, and module paths including public_pool_contribution.
Same-workflow: DAO jar card chip-ins, desk FX, and builder payout.
Depends-on: WayForPay HPP env SSOT and HMAC for card jars.
See-also: wallet_topup fiat ledger vs desk oracle for jars.
Ring Platform routes card, credit, token, and PayPal flows through PaymentConductor (lib/payments/conductor/). WayForPay is the primary PSP for Ukraine; Stripe and PayPal cover international rails. Wallet credit top-up is a live wallet_topup purpose. Public pool / DAO jar card and PayPal chip-ins use purpose public_pool_contribution (desk-oracle FX — not 1:1 fiat↔native). Membership recurring PayPal uses SubscriptionConductor (Subscriptions v1).
Browser handoff is Conductor CheckoutRedirect — architecture · WayForPay HPP.
Deep dive: PaymentConductor feature · Architecture · Public Pools & DAO Jars · WayForPay · SubscriptionConductor
Use Founder / Developer tabs in the docs sidebar to filter this page.
| Purpose | Description | PSP / rail |
|---|---|---|
store_order | Cart → checkout | WayForPay / Stripe / credit / token / PayPal |
membership_upgrade | Role upgrade (e.g. SUBSCRIBER → MEMBER) | WayForPay / Stripe / native token / PayPal |
news_promotion | News Kingdom sponsored articles | WayForPay / Stripe |
wallet_topup | Fiat credit top-up (Card / PayPal tabs) | WayForPay or Stripe (PAYMENT_WALLET_TOPUP_PROCESSOR); PayPal when processor=paypal |
public_pool_contribution | DAO jar / public-pool card or PayPal chip-in | WayForPay / Stripe / PayPal → desk oracle → pledged_native_token |
| Internal credit | Spend existing credit balance | Internal |
| RING token | On-chain native-token payments | RING |
WayForPay hosted Донати, Stripe submit_type=donate, and PayPal Donate SDK are not Ring jar SSOT. See Public Pools.
payment_transactions for store, membership, news, wallet top-up, and public-pool card chip-ins.PAYMENT_DEFAULT_PROCESSOR plus per-purpose overrides (including optional PAYMENT_PUBLIC_POOL_CONTRIBUTION_PROCESSOR).NEXT_PUBLIC_PAYMENT_STORE_ALLOW_PAYPAL=true). Manage cancel/history at /membership/manage.PAYPAL_* credentials./dao and docs FutureFeature widgets; builder payout when the jar fills (Public Pools).ring-config.json payment sectionJar fee map (separate key): publicPools.platformFeePercentByRole — see Public Pools.
Deep-dive: purposes, rails, and module paths including public_pool_contribution.
Same-workflow: DAO jar card chip-ins, desk FX, and builder payout.
Depends-on: WayForPay HPP env SSOT and HMAC for card jars.
See-also: wallet_topup fiat ledger vs desk oracle for jars.
Ring Platform routes card, credit, token, and PayPal flows through PaymentConductor (lib/payments/conductor/). WayForPay is the primary PSP for Ukraine; Stripe and PayPal cover international rails. Wallet credit top-up is a live wallet_topup purpose. Public pool / DAO jar card and PayPal chip-ins use purpose public_pool_contribution (desk-oracle FX — not 1:1 fiat↔native). Membership recurring PayPal uses SubscriptionConductor (Subscriptions v1).
Browser handoff is Conductor CheckoutRedirect — architecture · WayForPay HPP.
Deep dive: PaymentConductor feature · Architecture · Public Pools & DAO Jars · WayForPay · SubscriptionConductor
Use Founder / Developer tabs in the docs sidebar to filter this page.
| Purpose | Description | PSP / rail |
|---|---|---|
store_order | Cart → checkout | WayForPay / Stripe / credit / token / PayPal |
membership_upgrade | Role upgrade (e.g. SUBSCRIBER → MEMBER) | WayForPay / Stripe / native token / PayPal |
news_promotion | News Kingdom sponsored articles | WayForPay / Stripe |
wallet_topup | Fiat credit top-up (Card / PayPal tabs) | WayForPay or Stripe (PAYMENT_WALLET_TOPUP_PROCESSOR); PayPal when processor=paypal |
public_pool_contribution | DAO jar / public-pool card or PayPal chip-in | WayForPay / Stripe / PayPal → desk oracle → pledged_native_token |
| Internal credit | Spend existing credit balance | Internal |
| RING token | On-chain native-token payments | RING |
WayForPay hosted Донати, Stripe submit_type=donate, and PayPal Donate SDK are not Ring jar SSOT. See Public Pools.
payment_transactions for store, membership, news, wallet top-up, and public-pool card chip-ins.PAYMENT_DEFAULT_PROCESSOR plus per-purpose overrides (including optional PAYMENT_PUBLIC_POOL_CONTRIBUTION_PROCESSOR).NEXT_PUBLIC_PAYMENT_STORE_ALLOW_PAYPAL=true). Manage cancel/history at /membership/manage.PAYPAL_* credentials./dao and docs FutureFeature widgets; builder payout when the jar fills (Public Pools).ring-config.json payment sectionJar fee map (separate key): publicPools.platformFeePercentByRole — see Public Pools.
Deep-dive: purposes, rails, and module paths including public_pool_contribution.
Same-workflow: DAO jar card chip-ins, desk FX, and builder payout.
Depends-on: WayForPay HPP env SSOT and HMAC for card jars.
See-also: wallet_topup fiat ledger vs desk oracle for jars.
| PayPal |
lib/payments/processors/paypal.processor.ts |
| Orders v2 + webhook verify |
| Dispatcher | lib/payments/conductor/webhook-dispatcher.ts | Purpose routing + Subscriptions events |
| Webhooks | app/api/payments/{wayforpay,stripe,paypal}/webhook | Canonical PSP callbacks |
No WAYFORPAY_MERCHANT_ID. Templates: env.local.template, docker.env.template, docker-compose.template.yml.
Apply data/migrations/004_payment_transactions.sql before enabling the conductor in production.
See-also: membership PayPal Subscriptions v1.
{
"payment": {
"cardPaymentProcessor": "wayforpay",
"supportedMethods": ["wayforpay", "credit_balance", "native_token"],
"futureMethods": ["stripe", "paypal", "nft_gate"],
"gateways": {
"wayforpay": { "enabled": true, "feePercent": 2.5, "currency": "UAH" },
"stripe": { "enabled": false, "feePercent": 2.9, "feeFixedCents": 30, "currency": "USD" },
"credit_balance": { "enabled": true, "feePercent": 0, "currency": "USD" },
"native_token": { "enabled": true, "feePercent": 0, "currency": "RING", "label": "Tokens" }
}
}
}
Checkout / upgrade / promotion / wallet top-up
↓
lib/payments/conductor/payment-conductor.ts
↓
Processors: wayforpay.processor | stripe.processor | internal-credit.processor | native-token.processor | paypal.processor
↓
payment_transactions (PostgreSQL, migration 004)
↓
lib/payments/conductor/webhook-dispatcher.ts → handlers/* (+ PayPal Subscriptions lifecycle)| PayPal |
lib/payments/processors/paypal.processor.ts |
| Orders v2 + webhook verify |
| Dispatcher | lib/payments/conductor/webhook-dispatcher.ts | Purpose routing + Subscriptions events |
| Webhooks | app/api/payments/{wayforpay,stripe,paypal}/webhook | Canonical PSP callbacks |
No WAYFORPAY_MERCHANT_ID. Templates: env.local.template, docker.env.template, docker-compose.template.yml.
Apply data/migrations/004_payment_transactions.sql before enabling the conductor in production.
See-also: membership PayPal Subscriptions v1.
{
"payment": {
"cardPaymentProcessor": "wayforpay",
"supportedMethods": ["wayforpay", "credit_balance", "native_token"],
"futureMethods": ["stripe", "paypal", "nft_gate"],
"gateways": {
"wayforpay": { "enabled": true, "feePercent": 2.5, "currency": "UAH" },
"stripe": { "enabled": false, "feePercent": 2.9, "feeFixedCents": 30, "currency": "USD" },
"credit_balance": { "enabled": true, "feePercent": 0, "currency": "USD" },
"native_token": { "enabled": true, "feePercent": 0, "currency": "RING", "label": "Tokens" }
}
}
}
Checkout / upgrade / promotion / wallet top-up
↓
lib/payments/conductor/payment-conductor.ts
↓
Processors: wayforpay.processor | stripe.processor | internal-credit.processor | native-token.processor | paypal.processor
↓
payment_transactions (PostgreSQL, migration 004)
↓
lib/payments/conductor/webhook-dispatcher.ts → handlers/* (+ PayPal Subscriptions lifecycle)| PayPal |
lib/payments/processors/paypal.processor.ts |
| Orders v2 + webhook verify |
| Dispatcher | lib/payments/conductor/webhook-dispatcher.ts | Purpose routing + Subscriptions events |
| Webhooks | app/api/payments/{wayforpay,stripe,paypal}/webhook | Canonical PSP callbacks |
No WAYFORPAY_MERCHANT_ID. Templates: env.local.template, docker.env.template, docker-compose.template.yml.
Apply data/migrations/004_payment_transactions.sql before enabling the conductor in production.
See-also: membership PayPal Subscriptions v1.
{
"payment": {
"cardPaymentProcessor": "wayforpay",
"supportedMethods": ["wayforpay", "credit_balance", "native_token"],
"futureMethods": ["stripe", "paypal", "nft_gate"],
"gateways": {
"wayforpay": { "enabled": true, "feePercent": 2.5, "currency": "UAH" },
"stripe": { "enabled": false, "feePercent": 2.9, "feeFixedCents": 30, "currency": "USD" },
"credit_balance": { "enabled": true, "feePercent": 0, "currency": "USD" },
"native_token": { "enabled": true, "feePercent": 0, "currency": "RING", "label": "Tokens" }
}
}
}
Checkout / upgrade / promotion / wallet top-up
↓
lib/payments/conductor/payment-conductor.ts
↓
Processors: wayforpay.processor | stripe.processor | internal-credit.processor | native-token.processor | paypal.processor
↓
payment_transactions (PostgreSQL, migration 004)
↓
lib/payments/conductor/webhook-dispatcher.ts → handlers/* (+ PayPal Subscriptions lifecycle)