fix some for gateway
This commit is contained in:
@@ -0,0 +1,117 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
/**
|
||||
* کلیدهای درگاه را در پنل تنظیمات عادی قابل ویرایش میکند
|
||||
* و در صورت نبود، ردیفها را میسازد.
|
||||
*/
|
||||
return new class extends Migration
|
||||
{
|
||||
public function up(): void
|
||||
{
|
||||
$now = now();
|
||||
$rows = [
|
||||
[
|
||||
'key' => 'wallet_payment_provider',
|
||||
'value' => 'none',
|
||||
'title_fa' => 'نوع درگاه شارژ آنلاین',
|
||||
'type' => 'select',
|
||||
'description' => 'none=خاموش، montify=پارتنر Montify|none,montify',
|
||||
],
|
||||
[
|
||||
'key' => 'external_payment_enabled',
|
||||
'value' => 'false',
|
||||
'title_fa' => 'فعالسازی شارژ آنلاین',
|
||||
'type' => 'switch',
|
||||
'description' => 'روشن: در صورت پیکربندی کامل، دکمه پرداخت آنلاین در اپ نمایش داده میشود. خاموش: فقط واریز دستی.',
|
||||
],
|
||||
[
|
||||
'key' => 'external_payment_base_url',
|
||||
'value' => '',
|
||||
'title_fa' => 'آدرس API درگاه (BASE_URL)',
|
||||
'type' => 'text',
|
||||
'description' => 'آدرس پایه API Montify بدون اسلش انتهایی، مثلاً https://node.example.com',
|
||||
],
|
||||
[
|
||||
'key' => 'external_payment_client_id',
|
||||
'value' => '',
|
||||
'title_fa' => 'شناسه کلاینت (client_id)',
|
||||
'type' => 'text',
|
||||
'description' => 'client_id دریافتی از ادمین Montify',
|
||||
],
|
||||
[
|
||||
'key' => 'external_payment_client_secret',
|
||||
'value' => '',
|
||||
'title_fa' => 'رمز کلاینت (client_secret)',
|
||||
'type' => 'text',
|
||||
'description' => 'client_secret دریافتی از ادمین Montify — فقط روی سرور بماند',
|
||||
],
|
||||
[
|
||||
'key' => 'external_payment_gateway',
|
||||
'value' => 'zarinpall',
|
||||
'title_fa' => 'نام درگاه داخل Montify',
|
||||
'type' => 'select',
|
||||
'description' => 'یکی از درگاههای فعال در Montify|zarinpall,zibal,payping,sepal',
|
||||
],
|
||||
[
|
||||
'key' => 'external_payment_return_url',
|
||||
'value' => '',
|
||||
'title_fa' => 'آدرس برگشت (return_url)',
|
||||
'type' => 'text',
|
||||
'description' => 'اختیاری. خالی = پیشفرض سرور /customer/wallet/payment/return/montify',
|
||||
],
|
||||
[
|
||||
'key' => 'external_payment_webhook_url',
|
||||
'value' => '',
|
||||
'title_fa' => 'آدرس Webhook',
|
||||
'type' => 'text',
|
||||
'description' => 'اختیاری. خالی = پیشفرض سرور /customer/wallet/payment/webhook/montify',
|
||||
],
|
||||
];
|
||||
|
||||
foreach ($rows as $row) {
|
||||
$existing = DB::table('settings')->where('key', $row['key'])->first();
|
||||
if ($existing) {
|
||||
DB::table('settings')->where('key', $row['key'])->update([
|
||||
'can_edit' => 1,
|
||||
'is_active' => 1,
|
||||
'title_fa' => $row['title_fa'],
|
||||
'type' => $row['type'],
|
||||
'description' => $row['description'],
|
||||
'updated_at' => $now,
|
||||
]);
|
||||
continue;
|
||||
}
|
||||
|
||||
DB::table('settings')->insert([
|
||||
'key' => $row['key'],
|
||||
'value' => $row['value'],
|
||||
'title_fa' => $row['title_fa'],
|
||||
'type' => $row['type'],
|
||||
'can_edit' => 1,
|
||||
'is_active' => 1,
|
||||
'description' => $row['description'],
|
||||
'created_at' => $now,
|
||||
'updated_at' => $now,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
public function down(): void
|
||||
{
|
||||
DB::table('settings')->whereIn('key', [
|
||||
'wallet_payment_provider',
|
||||
'external_payment_base_url',
|
||||
'external_payment_client_id',
|
||||
'external_payment_client_secret',
|
||||
'external_payment_gateway',
|
||||
'external_payment_return_url',
|
||||
'external_payment_webhook_url',
|
||||
])->update([
|
||||
'can_edit' => 0,
|
||||
'updated_at' => now(),
|
||||
]);
|
||||
}
|
||||
};
|
||||
@@ -75,19 +75,19 @@ Montify → payment_url → درگاه بانکی
|
||||
|
||||
## ۴. Settings (جدول `settings`)
|
||||
|
||||
پیکربندی فقط از پنل ادمین / دیپلوی. گروه UI: **درگاه خارجی (Montify)**.
|
||||
پیکربندی از پنل ادمین → گروه **تنظیمات درگاه** (`can_edit=1`).
|
||||
|
||||
| کلید | نوع | توضیح |
|
||||
|------|-----|--------|
|
||||
| `wallet_payment_provider` | select | `none` = خاموش، `montify` = پارتنر Montify. برای درگاههای بعدی همین فیلد گسترش مییابد. |
|
||||
| `external_payment_enabled` | switch | سازگاری قدیمی؛ اگر `true` باشد و provider خالی باشد، مثل `montify` رفتار میکند. ترجیحاً از `wallet_payment_provider` استفاده کنید. |
|
||||
| `wallet_payment_provider` | select | `none` = خاموش، `montify` = پارتنر Montify |
|
||||
| `external_payment_enabled` | switch | فعالسازی شارژ آنلاین (همراه با پیکربندی کامل) |
|
||||
| `external_payment_base_url` | text | BASE_URL API Montify (بدون اسلش انتهایی) |
|
||||
| `external_payment_client_id` | text | `client_id` پارتنر |
|
||||
| `external_payment_client_secret` | text | `client_secret` — محرمانه |
|
||||
| `external_payment_gateway` | select | درگاه داخل Montify: `zarinpall` / `zibal` / `payping` / `sepal` |
|
||||
| `external_payment_client_secret` | text | `client_secret` — محرمانه، فقط سرور |
|
||||
| `external_payment_gateway` | select | `zarinpall` / `zibal` / `payping` / `sepal` |
|
||||
| `external_payment_return_url` | text | اختیاری؛ خالی = پیشفرض سرور |
|
||||
| `external_payment_webhook_url` | text | اختیاری؛ خالی = پیشفرض سرور |
|
||||
| `min_deposit` | price | حداقل مبلغ واریز (مشترک با واریز دستی) |
|
||||
| `min_deposit` | price | حداقل مبلغ واریز (گروه کارمزد و محدودیتها) |
|
||||
|
||||
### مقادیر پیشفرض URL وقتی فیلد خالی است
|
||||
|
||||
@@ -100,6 +100,7 @@ Montify → payment_url → درگاه بانکی
|
||||
|
||||
- `2026_07_24_000001_add_external_payment_settings.php`
|
||||
- `2026_07_24_000002_add_wallet_payment_provider_setting.php`
|
||||
- `2026_07_26_000001_expose_gateway_settings_in_admin_panel.php`
|
||||
|
||||
```bash
|
||||
php artisan migrate
|
||||
|
||||
Reference in New Issue
Block a user