diff --git a/components.d.ts b/components.d.ts index 8394b59..e977c71 100644 --- a/components.d.ts +++ b/components.d.ts @@ -10,7 +10,6 @@ export {} declare module '@vue/runtime-core' { export interface GlobalComponents { _index: typeof import('./src/core/components/_sample/_index.vue')['default'] - AAlert: typeof import('ant-design-vue/es')['Alert'] AAvatar: typeof import('ant-design-vue/es')['Avatar'] ABadge: typeof import('ant-design-vue/es')['Badge'] AButton: typeof import('ant-design-vue/es')['Button'] @@ -56,11 +55,9 @@ declare module '@vue/runtime-core' { ATable: typeof import('ant-design-vue/es')['Table'] ATabPane: typeof import('ant-design-vue/es')['TabPane'] ATabs: typeof import('ant-design-vue/es')['Tabs'] - ATag: typeof import('ant-design-vue/es')['Tag'] ATextarea: typeof import('ant-design-vue/es')['Textarea'] ATimePicker: typeof import('ant-design-vue/es')['TimePicker'] ATooltip: typeof import('ant-design-vue/es')['Tooltip'] - AUpload: typeof import('ant-design-vue/es')['Upload'] BaseButton: typeof import('./src/core/components/BaseButton/index.ts')['default'] BaseCard: typeof import('./src/core/components/BaseCard/index.ts')['default'] BaseCollapse: typeof import('./src/components/BaseCollapse.vue')['default'] diff --git a/src/pages/menuPages/configuration/settingGroups.ts b/src/pages/menuPages/configuration/settingGroups.ts index ac62b31..aed47fa 100644 --- a/src/pages/menuPages/configuration/settingGroups.ts +++ b/src/pages/menuPages/configuration/settingGroups.ts @@ -89,7 +89,16 @@ export const EDITABLE_SETTING_GROUPS: SettingGroupDef[] = [ k === 'support_messengers' || k.startsWith('support_messenger_') || k === 'deposit_sms_support_number' - || k.startsWith('deposit_'), + || (k.startsWith('deposit_') && !k.startsWith('external_')), + }, + { + id: 'gateway', + title: 'تنظیمات درگاه', + icon: 'vuesax-linear:card-pos', + match: (k) => + k.startsWith('external_payment_') + || k === 'wallet_payment_provider' + || k.startsWith('payping_'), }, { id: 'bots', @@ -186,6 +195,12 @@ export const SYSTEM_SETTING_GROUPS: SettingGroupDef[] = [ icon: 'vuesax-linear:card', match: (k) => k.startsWith('payping_') }, + { + id: 'gateway', + title: 'تنظیمات درگاه', + icon: 'vuesax-linear:card-pos', + match: (k) => k.startsWith('external_payment_') || k === 'wallet_payment_provider' + }, { id: 'accounting_provider', title: 'انتخاب سیستم حسابداری', diff --git a/src/pages/menuPages/configuration/settingTypes.ts b/src/pages/menuPages/configuration/settingTypes.ts index 734a310..541fa20 100644 --- a/src/pages/menuPages/configuration/settingTypes.ts +++ b/src/pages/menuPages/configuration/settingTypes.ts @@ -305,6 +305,9 @@ const KEY_TYPE_FALLBACK: Record = { montzar_open_sell: 'switch', payping_fin_sync_enabled: 'switch', external_order_api_enabled: 'switch', + external_payment_enabled: 'switch', + external_payment_gateway: 'select', + wallet_payment_provider: 'select', is_store: 'switch', banner_enabled: 'switch', permision__enabled: 'switch', @@ -389,6 +392,8 @@ const SELECT_OPTIONS_BY_KEY: Record = { accounting_provider: 'none,pargar,tahesab,zarin', price_provider: 'montzar,zaarbox,main_product', payping_gateway_name: 'sepal,', + external_payment_gateway: 'zarinpall,zibal,payping,sepal', + wallet_payment_provider: 'none,montify', unit: 'گرم,کیلوگرم', support_messenger: 'bale,telegram,whatsapp,rubika,eitaa,soroush,call,sms', price_channel_messengers: 'bale,telegram,rubika' @@ -684,6 +689,22 @@ const KEY_HELP_FALLBACK: Record = { 'وضعیت گزارش‌شده از سرویس همکار؛ فقط برای نمایش — این سوییچ را دستی تغییر ندهید.', external_order_api_enabled: 'روشن: دریافت کیف پول و ثبت سفارش از سرویس فروشگاه خارجی فعال است. خاموش: اتصال به سرویس فروشگاه خارجی غیرفعال است.', + external_payment_enabled: + 'روشن: در صورت کامل بودن BASE_URL و client_id و client_secret و gateway، دکمه پرداخت آنلاین در اپ نمایش داده می‌شود. خاموش: فقط واریز دستی.', + external_payment_base_url: + 'آدرس پایه API سرویس Montify (بدون اسلش انتهایی)، مثلاً https://node.example.com — فقط سرور؛ در اپ کاربر ارسال نمی‌شود.', + external_payment_client_id: + 'شناسه partner (client_id) — فقط سرور؛ در اپ کاربر یا پاسخ get_settings عمومی نیست.', + external_payment_client_secret: + 'رمز مخفی partner (client_secret) — فقط سرور. در فرانت و Network تب کاربر دیده نمی‌شود.', + external_payment_gateway: + 'نام درگاه فعال داخل Montify: zarinpall، zibal، payping یا sepal.', + external_payment_return_url: + 'آدرس صفحه فرانت بعد از پرداخت. مثال: https://abaeigold.ir/wallet/payment-result — باید در whitelist پارتنر Montify باشد. خالی = دامنه سایت + /wallet/payment-result', + external_payment_webhook_url: + 'آدرس بک‌اند برای webhook (شارژ قطعی کیف). مثال: https://abaeigold.ir/server/customer/wallet/payment/webhook/montify — خالی = همین مسیر پیش‌فرض سرور', + wallet_payment_provider: + 'نوع درگاه فعال: none=خاموش، montify=پارتنر Montify. برای شارژ آنلاین معمولاً montify را انتخاب کنید.', node_client_id: 'شناسه کلاینت برای اتصال امن به سرویس سفارش خارجی.', node_shared_secret: @@ -892,6 +913,14 @@ export const KEY_LABEL_FALLBACK: Record = { has_page_price_trigger: 'هشدار قیمت', has_page_notification: 'اعلان داخل اپ', jibit_enabled: 'احراز هویت جیبیت', + external_payment_enabled: 'فعال‌سازی شارژ آنلاین', + external_payment_base_url: 'آدرس API درگاه (BASE_URL)', + external_payment_client_id: 'شناسه کلاینت (client_id)', + external_payment_client_secret: 'رمز کلاینت (client_secret)', + external_payment_gateway: 'نام درگاه داخل Montify', + external_payment_return_url: 'آدرس برگشت (return_url)', + external_payment_webhook_url: 'آدرس Webhook', + wallet_payment_provider: 'نوع درگاه شارژ آنلاین', jibit_verification: 'تأیید کارت بانکی با جیبیت', register_jibit_verify: 'تأیید کدملی/موبایل در ثبت‌نام', min_withdraw: 'حداقل مبلغ برداشت', @@ -1034,6 +1063,10 @@ export const SETTING_EDITABLE_KEYS = new Set([ 'deposit_sms_support_number', 'deposit_support_message_text', 'deposit_account_holder', 'deposit_card_number', 'deposit_sheba', 'endDay', + 'external_payment_enabled', + 'external_payment_base_url', 'external_payment_client_id', 'external_payment_client_secret', + 'external_payment_gateway', 'external_payment_return_url', 'external_payment_webhook_url', + 'wallet_payment_provider', 'fee_free', 'fee_service_charge_percentage', 'gift_for_referral', 'gift_for_referrer', 'invite_link_text',