From 7def84718b30060580c732efdc7f1de4cc482786 Mon Sep 17 00:00:00 2001 From: Fringg Date: Mon, 4 May 2026 19:36:35 +0300 Subject: [PATCH] feat: add Jupiter and Donut payment provider support - METHOD_LABELS entries for jupiter and donut - Custom SVG icons: Jupiter (planet with ring), Donut (glazed donut) - Admin settings tree nodes: payments_jupiter, payments_donut - Locale strings (ru/en/zh/fa) for descriptions and admin labels --- src/components/PaymentMethodIcon.tsx | 89 ++++++++++++++++++++++++++++ src/components/admin/constants.ts | 2 + src/constants/paymentMethods.ts | 2 + src/locales/en.json | 8 +++ src/locales/fa.json | 8 +++ src/locales/ru.json | 8 +++ src/locales/zh.json | 8 +++ 7 files changed, 125 insertions(+) diff --git a/src/components/PaymentMethodIcon.tsx b/src/components/PaymentMethodIcon.tsx index ebfc134..c12d2fd 100644 --- a/src/components/PaymentMethodIcon.tsx +++ b/src/components/PaymentMethodIcon.tsx @@ -335,6 +335,95 @@ export default function PaymentMethodIcon({ ); } + case 'jupiter': { + const jupiterGradId = `${uid}-jupiter`; + const jupiterRingId = `${uid}-jupiter-ring`; + return ( + + + + + + + + + + + + + + + + + ); + } + + case 'donut': { + const donutBgGradId = `${uid}-donut-bg`; + const donutGlazeGradId = `${uid}-donut-glaze`; + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); + } + case 'apple_iap': return ( diff --git a/src/components/admin/constants.ts b/src/components/admin/constants.ts index 73de4df..7438762 100644 --- a/src/components/admin/constants.ts +++ b/src/components/admin/constants.ts @@ -57,6 +57,8 @@ export const SETTINGS_TREE: SettingsTreeConfig = { { id: 'payments_aurapay', categories: ['AURAPAY'] }, { id: 'payments_etoplatezhi', categories: ['ETOPLATEZHI'] }, { id: 'payments_antilopay', categories: ['ANTILOPAY'] }, + { id: 'payments_jupiter', categories: ['JUPITER'] }, + { id: 'payments_donut', categories: ['DONUT'] }, { id: 'payments_apple_iap', categories: ['APPLE_IAP'] }, ], }, diff --git a/src/constants/paymentMethods.ts b/src/constants/paymentMethods.ts index 0be9172..025637a 100644 --- a/src/constants/paymentMethods.ts +++ b/src/constants/paymentMethods.ts @@ -20,6 +20,8 @@ export const METHOD_LABELS: Record = { aurapay: 'AuraPay', etoplatezhi: 'Etoplatezhi', antilopay: 'Antilopay', + jupiter: 'Jupiter', + donut: 'Donut', apple_iap: 'Apple In-App Purchase', manual: 'Ручное пополнение', }; diff --git a/src/locales/en.json b/src/locales/en.json index 09e9cf5..039f6a9 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -688,6 +688,12 @@ "antilopay": { "description": "Pay via Antilopay" }, + "jupiter": { + "description": "Pay via SBP through Jupiter (FPGate P2P)" + }, + "donut": { + "description": "Pay by card or SBP through Donut P2P" + }, "apple_iap": { "description": "Pay via Apple In-App Purchase" } @@ -2014,6 +2020,8 @@ "payments_aurapay": "AuraPay", "payments_etoplatezhi": "Etoplatezhi", "payments_antilopay": "Antilopay", + "payments_jupiter": "Jupiter", + "payments_donut": "Donut", "payments_apple_iap": "Apple IAP", "subs_core": "Core", "subs_trial": "Trial", diff --git a/src/locales/fa.json b/src/locales/fa.json index 0b50443..d8816c2 100644 --- a/src/locales/fa.json +++ b/src/locales/fa.json @@ -525,6 +525,12 @@ "antilopay": { "description": "پرداخت از طریق Antilopay" }, + "jupiter": { + "description": "پرداخت SBP از طریق Jupiter (FPGate P2P)" + }, + "donut": { + "description": "پرداخت با کارت یا SBP از طریق Donut P2P" + }, "apple_iap": { "description": "پرداخت از طریق Apple In-App Purchase" } @@ -1654,6 +1660,8 @@ "payments_aurapay": "AuraPay", "payments_etoplatezhi": "Etoplatezhi", "payments_antilopay": "Antilopay", + "payments_jupiter": "Jupiter", + "payments_donut": "Donut", "payments_apple_iap": "Apple IAP", "subs_core": "هسته", "subs_trial": "آزمایشی", diff --git a/src/locales/ru.json b/src/locales/ru.json index f108714..30d6d43 100644 --- a/src/locales/ru.json +++ b/src/locales/ru.json @@ -716,6 +716,12 @@ "antilopay": { "description": "Оплата через Antilopay" }, + "jupiter": { + "description": "Оплата СБП через Jupiter (FPGate P2P)" + }, + "donut": { + "description": "Оплата картой и СБП через Donut P2P" + }, "apple_iap": { "description": "Оплата через Apple In-App Purchase" } @@ -2030,6 +2036,8 @@ "payments_aurapay": "AuraPay", "payments_etoplatezhi": "Etoplatezhi", "payments_antilopay": "Antilopay", + "payments_jupiter": "Jupiter", + "payments_donut": "Donut", "payments_apple_iap": "Apple IAP", "subs_core": "Основные", "subs_trial": "Пробный период", diff --git a/src/locales/zh.json b/src/locales/zh.json index 852dda9..65eaf4b 100644 --- a/src/locales/zh.json +++ b/src/locales/zh.json @@ -525,6 +525,12 @@ "antilopay": { "description": "通过Antilopay支付" }, + "jupiter": { + "description": "通过 Jupiter (FPGate P2P) 使用 SBP 支付" + }, + "donut": { + "description": "通过 Donut P2P 使用银行卡或 SBP 支付" + }, "apple_iap": { "description": "通过Apple应用内购买支付" } @@ -1692,6 +1698,8 @@ "payments_aurapay": "AuraPay", "payments_etoplatezhi": "Etoplatezhi", "payments_antilopay": "Antilopay", + "payments_jupiter": "Jupiter", + "payments_donut": "Donut", "payments_apple_iap": "Apple IAP", "subs_core": "核心", "subs_trial": "试用",