From 770a5803d6490199d5ee0dbc22863f8212245a4f Mon Sep 17 00:00:00 2001 From: Fringg Date: Thu, 16 Apr 2026 05:55:21 +0300 Subject: [PATCH] feat: add RollyPay payment provider to cabinet frontend - Payment method label and icon (green gradient, RP) - Admin settings tree entry for ROLLYPAY category - Locale strings and descriptions for ru, en, zh, fa --- src/components/PaymentMethodIcon.tsx | 20 ++++++++++++++++++++ src/components/admin/constants.ts | 1 + src/constants/paymentMethods.ts | 1 + src/locales/en.json | 4 ++++ src/locales/fa.json | 1 + src/locales/ru.json | 4 ++++ src/locales/zh.json | 1 + 7 files changed, 32 insertions(+) diff --git a/src/components/PaymentMethodIcon.tsx b/src/components/PaymentMethodIcon.tsx index fcb6c16..ae293a3 100644 --- a/src/components/PaymentMethodIcon.tsx +++ b/src/components/PaymentMethodIcon.tsx @@ -255,6 +255,26 @@ export default function PaymentMethodIcon({ ); } + case 'rollypay': { + const rollypayGradId = `${uid}-rollypay`; + return ( + + + + + + + + + + + RP + + + + ); + } + default: return ( diff --git a/src/components/admin/constants.ts b/src/components/admin/constants.ts index be7d1e2..cabfb49 100644 --- a/src/components/admin/constants.ts +++ b/src/components/admin/constants.ts @@ -53,6 +53,7 @@ export const SETTINGS_TREE: SettingsTreeConfig = { { id: 'payments_riopay', categories: ['RIOPAY'] }, { id: 'payments_severpay', categories: ['SEVERPAY'] }, { id: 'payments_paypear', categories: ['PAYPEAR'] }, + { id: 'payments_rollypay', categories: ['ROLLYPAY'] }, ], }, { diff --git a/src/constants/paymentMethods.ts b/src/constants/paymentMethods.ts index c415cb1..cac97ff 100644 --- a/src/constants/paymentMethods.ts +++ b/src/constants/paymentMethods.ts @@ -16,5 +16,6 @@ export const METHOD_LABELS: Record = { riopay: 'RioPay', severpay: 'SeverPay', paypear: 'PayPear', + rollypay: 'RollyPay', manual: 'Ручное пополнение', }; diff --git a/src/locales/en.json b/src/locales/en.json index 75dcd47..158188a 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -652,6 +652,9 @@ }, "paypear": { "description": "Pay via PayPear" + }, + "rollypay": { + "description": "Pay via RollyPay (SBP)" } }, "transactionHistory": "Transaction History", @@ -1960,6 +1963,7 @@ "payments_riopay": "RioPay", "payments_severpay": "SeverPay", "payments_paypear": "PayPear", + "payments_rollypay": "RollyPay", "subs_core": "Core", "subs_trial": "Trial", "subs_pricing": "Pricing", diff --git a/src/locales/fa.json b/src/locales/fa.json index 8e5804a..bc6f79f 100644 --- a/src/locales/fa.json +++ b/src/locales/fa.json @@ -1618,6 +1618,7 @@ "payments_riopay": "RioPay", "payments_severpay": "SeverPay", "payments_paypear": "PayPear", + "payments_rollypay": "RollyPay", "subs_core": "هسته", "subs_trial": "آزمایشی", "subs_pricing": "قیمت‌گذاری", diff --git a/src/locales/ru.json b/src/locales/ru.json index b130244..3c9de65 100644 --- a/src/locales/ru.json +++ b/src/locales/ru.json @@ -680,6 +680,9 @@ }, "paypear": { "description": "Оплата через PayPear" + }, + "rollypay": { + "description": "Оплата через RollyPay (СБП)" } }, "transactionHistory": "История операций", @@ -1976,6 +1979,7 @@ "payments_riopay": "RioPay", "payments_severpay": "SeverPay", "payments_paypear": "PayPear", + "payments_rollypay": "RollyPay", "subs_core": "Основные", "subs_trial": "Пробный период", "subs_pricing": "Цены", diff --git a/src/locales/zh.json b/src/locales/zh.json index 1c060c6..a7a46b9 100644 --- a/src/locales/zh.json +++ b/src/locales/zh.json @@ -1656,6 +1656,7 @@ "payments_riopay": "RioPay", "payments_severpay": "SeverPay", "payments_paypear": "PayPear", + "payments_rollypay": "RollyPay", "subs_core": "核心", "subs_trial": "试用", "subs_pricing": "定价",