Update all project documentation including README, Roadmap, Status, and Agent guides to reflect the transition to Phase 3.6 (Client Meeting Adjustments). Key documentation updates: - Documented the new order approval flow (pending_approval -> approved). - Added details for shipment commitment forms and document download system. - Included Kavenegar SMS integration and Audit Log implementation. - Updated API endpoint references for new verification and commitment routes. - Reflected increased project metrics (migrations, models, and API endpoints). - Updated deployment notes regarding SMS configuration.
26 KiB
⚙️ IFNEX Laravel Backend
هسته مرکزی سیستم مدیریت لجستیک ایفنکس
REST API + Admin Panel + Financial Engine + PDF Generator
🚀 نصب سریع • 📡 API Endpoints • 🗃️ Models • 🎨 Filament Resources • 📚 مستندات
🎯 نمای کلی
این پوشه شامل هسته مرکزی سیستم IFNEX است که شامل پنج بخش اصلی میشود:
۱. REST API کامل
ارتباط با WordPress از طریق Sanctum Token + Bridge Auth (بدون رمز عبور) — ۳۰+ endpoint برای تمام عملیات مشتری (سفارش، پرداخت، کیف پول، نوتیفیکیشن، رهگیری).
۲. پنل مدیریت Filament 3.3
پنل کامل برای اپراتورها و مدیران شامل مدیریت مرسولهها، نرخها، ارزها، کاربران، گزارشهای مالی و تنظیمات سیستم.
۳. موتور قیمتگذاری
محاسبه قیمت بر اساس ۴ زون (Export/Import × Parcel/Doc) و ۳ نوع سرویس با پشتیبانی از تخفیف، VAT، هزینههای داخلی و تبدیل ارز (درهم ↔ ریال).
۴. سیستم مالی و سندسازی
کیف پول دیجیتال، درگاه پرداخت Zarinpal، تولید خودکار PDF (AWB, Invoice, Label) با بارکد استاندارد و سیستم نوتیفیکیشن دیتابیس.
۵. Multi-Package و Invoice (فاز ۳.۵)
پشتیبانی از چند بسته در یک سفارش، فرم اقلام گمرکی (Invoice) برای محمولههای PARCEL، و محاسبه خودکار وزن حجمی از ابعاد.
۶. فلوی تأیید سفارش و اعلانها (فاز ۳.۶)
ثبت سفارش با وضعیت pending_approval → تأیید/رد توسط کارمند (پنل یا API) → باز شدن پرداخت → processed بعد از پرداخت. بههمراه تعهدنامهها (آپلود مدیر، دانلود/امضا/آپلود مشتری)، دانلود PDFها در پورتال مشتری، وضعیت مالی مشتری برای کارمندان، Audit Log و اعلانهای SMS کاوهنگار.
🚀 نصب و راهاندازی سریع
پیشنیازها
| ابزار | حداقل نسخه | توضیحات |
|---|---|---|
| PHP | 8.2+ | با extensions: pdo_mysql, mbstring, xml, gd, zip |
| Composer | 2.x | مدیریت وابستگیها |
| MySQL | 8.0+ | دیتابیس اصلی |
| Node.js | 18+ | برای build assets (اختیاری) |
مراحل نصب
# ۱. ورود به پوشه لاراول
cd 04_Laravel
# ۲. نصب وابستگیها
composer install
# ۳. تنظیم فایل محیط
cp .env.example .env
php artisan key:generate
# ۴. ایجاد دیتابیس
mysql -u root -p -e "CREATE DATABASE ifnex_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
# ۵. ویرایش .env — مقادیر کلیدی (مشاهده جدول زیر)
# ۶. اجرای migrations و seeders
php artisan migrate --force
php artisan db:seed --force
# ۷. اجرای سرور
php artisan serve
# پنل ادمین: http://127.0.0.1:8000/panel
🔐 دسترسی پیشفرض
| آیتم | مقدار |
|---|---|
| URL پنل ادمین | http://localhost:8000/panel |
| URL API | http://localhost:8000/api/v1 |
| ایمیل ادمین | (از seeder) admin@ifnex.local |
| رمز عبور | password |
⚙️ تنظیمات مهم .env
# DATABASE
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=ifnex_db
DB_USERNAME=root
DB_PASSWORD=
# IFNEX API
IFNEX_API_KEY=ifnex-local-dev-key
IFNEX_BRIDGE_API_KEY=ifnex-bridge-secret-key-2026-vernasoft # مهم برای وردپرس
IFNEX_TRACKING_RATE_LIMIT=60
# CORS (فقط دامنههای مجاز وردپرس)
CORS_ALLOWED_ORIGINS=http://localhost,http://127.0.0.1
# PAYMENT GATEWAY (Zarinpal)
ZARINPAL_MERCHANT_ID=fake-merchant-id-for-testing # برای Mock Mode
ZARINPAL_SANDBOX=true
ZARINPAL_CALLBACK_URL=http://localhost:8000/api/v1/payment/callback
ZARINPAL_FRONTEND_SUCCESS_URL=http://localhost/IFNEX-Logistics/03_WordPress/wallet
ZARINPAL_FRONTEND_FAILURE_URL=http://localhost/IFNEX-Logistics/03_WordPress/wallet
# CURRENCY API (برای بروزرسانی نرخ ارز)
CURRENCY_API_KEY=your_api_key_here
CURRENCY_API_URL=https://api.freecurrencyapi.com/v1/latest
# WALLET
WALLET_MIN_DEPOSIT=10000
WALLET_MAX_DEPOSIT=500000000
WALLET_AUTO_CREATE=true
WALLET_ALLOW_WITHDRAWAL=false
⚠️ نکته مهم: اگر
ZARINPAL_MERCHANT_IDبرابرfake-merchant-id-for-testingباشد، سیستم از MockZarinpalService استفاده میکند که برای تست لوکال مناسب است.
📡 API Endpoints
🔓 API عمومی (با API Key یا بدون احراز هویت)
| متد | Endpoint | توضیح |
|---|---|---|
| GET | /api/v1/track/{awb_no} |
رهگیری مرسوله (API Key) |
| POST | /api/v1/calculate |
محاسبه قیمت |
| GET | /api/v1/countries |
لیست کشورها با پیششماره (عمومی) |
| GET | /api/v1/discount-codes |
لیست کدهای تخفیف ⚠️ باید محدود شود |
| POST | /api/v1/discount-codes/validate |
اعتبارسنجی کد تخفیف |
| POST | /api/v1/bridge/login |
Bridge Auth (وردپرس ← لاراول) |
| POST | /api/v1/auth/login |
ورود مشتری (ایمیل + رمز) |
| POST | /api/v1/auth/logout |
خروج (Sanctum) |
| GET | /api/v1/commitment-forms[/{direction}] |
لیست فرمهای تعهدنامه فعال |
| POST | /api/v1/verify/send-code |
ارسال کد تأیید موبایل (SMS) |
| POST | /api/v1/verify/check-code |
بررسی کد تأیید موبایل |
🔐 API مشتری (Sanctum Token)
| متد | Endpoint | توضیح |
|---|---|---|
| GET | /api/v1/customer/profile |
پروفایل + آمار + مانده حساب |
| GET | /api/v1/customer/orders |
لیست سفارشات (paginated) |
| POST | /api/v1/customer/orders |
ثبت سفارش جدید (با packages[] و items[]) — وضعیت pending_approval |
| GET | /api/v1/customer/orders/{id} |
جزئیات سفارش |
| POST | /api/v1/customer/orders/{id}/cancel |
لغو سفارش |
| GET | /api/v1/customer/orders/{id}/pdf/awb |
دانلود AWB |
| GET | /api/v1/customer/orders/{id}/pdf/invoice |
دانلود فاکتور (فقط PARCEL) |
| GET | /api/v1/customer/orders/{id}/pdf/label |
دانلود لیبل |
| GET | /api/v1/customer/orders/{id}/pdf/import-invoice |
دانلود فاکتور واردات |
| GET | /api/v1/customer/orders/{id}/commitment-forms |
تعهدنامههای سفارش + وضعیت آپلود |
| POST | /api/v1/customer/orders/{id}/commitment-forms/{form}/upload |
آپلود تعهدنامه امضاشده |
| POST | /api/v1/customer/orders/{id}/pay-wallet |
پرداخت با کیف پول (فقط بعد از تأیید) |
| POST | /api/v1/customer/orders/{id}/pay-gateway |
پرداخت با درگاه (فقط بعد از تأیید) |
| GET | /api/v1/customer/notifications |
لیست اعلانها |
| POST | /api/v1/customer/notifications/{id}/read |
علامتگذاری خواندهشده |
👷 API کارمندان (Sanctum Token) ⚠️ چک نقش در حال تکمیل
| متد | Endpoint | توضیح |
|---|---|---|
| GET | /api/v1/staff/orders/pending-approval |
سفارشات در انتظار تأیید |
| POST | /api/v1/staff/orders/{id}/approve |
تأیید سفارش |
| POST | /api/v1/staff/orders/{id}/reject |
رد سفارش |
| GET | /api/v1/staff/customers/search |
جستجوی مشتری |
| GET | /api/v1/staff/customers/{id}/financial-status |
وضعیت مالی مشتری (بدهی به تفکیک ارز) |
💰 API کیف پول (Sanctum Token)
| متد | Endpoint | توضیح |
|---|---|---|
| GET | /api/v1/wallet/balance |
موجودی + آمار |
| GET | /api/v1/wallet/transactions |
تراکنشها (paginated) |
| GET | /api/v1/wallet/{wallet}/activity-log |
لاگ فعالیتها |
| POST | /api/v1/wallet/{wallet}/freeze |
مسدود کردن کیف پول (admin) |
| POST | /api/v1/wallet/{wallet}/unfreeze |
آزاد کردن کیف پول (admin) |
| POST | /api/v1/wallet/admin-adjust |
تراکنش دستی (admin) |
💳 API پرداخت
| متد | Endpoint | توضیح |
|---|---|---|
| POST | /api/v1/payment/redirect |
انتقال به درگاه (شارژ کیف پول) |
| GET | /api/v1/payment/check/{transaction} |
بررسی وضعیت تراکنش |
| ANY | /api/v1/payment/callback |
Callback از درگاه (Zarinpal) |
🧪 Mock Gateway (تست لوکال)
| متد | Endpoint | توضیح |
|---|---|---|
| GET | /api/v1/payment/mock-gateway |
صفحه شبیهسازی درگاه |
| GET | /api/v1/payment/mock-gateway/success |
شبیهسازی پرداخت موفق |
| GET | /api/v1/payment/mock-gateway/failure |
شبیهسازی پرداخت ناموفق |
📥 مثال: ثبت سفارش
curl -X POST http://localhost:8000/api/v1/customer/orders \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"direction": "export",
"type": "PARCEL",
"from_country_id": 1,
"to_country_id": 2,
"weight": 2.5,
"volumetric_weight": 2.5,
"sender_name": "John Doe",
"sender_phone": "+98 9123456789",
"sender_city": "Tehran",
"sender_address": "No 1, ValiAsr Street",
"receiver_name": "Ahmed Ali",
"receiver_phone": "+971 501234567",
"receiver_city": "Dubai",
"receiver_address": "Sheikh Zayed Road 100"
}'
🗂️ ساختار پروژه
04_Laravel/
├── app/
│ ├── Enums/ # ShipmentStatus (۱۲ وضعیت), ShipmentDirection, ShipmentType, PaymentGateway, TransactionType, TransactionStatus, CarrierCode, TrackingSource, UserRole
│ ├── Filament/
│ │ ├── Resources/ # ۱۶ Resources
│ │ │ ├── ShipmentResource/ # مدیریت مرسولهها + اکشن تأیید/رد + RelationManagers
│ │ │ ├── ShipmentChecklistResource/ # چکلیست کارمند
│ │ │ ├── CommitmentFormResource/ # فرمهای تعهدنامه (آپلود مدیر)
│ │ │ ├── CustomerCreditResource/ # اعتبار مشتریان
│ │ │ ├── AuditLogResource/ # لاگ تغییرات
│ │ │ ├── CountryResource/ # مدیریت کشورها + calling_code
│ │ │ ├── ShippingRateResource/
│ │ │ ├── CurrencyResource/ # مدیریت ارزها
│ │ │ ├── UserResource/ # مدیریت کاربران
│ │ │ ├── WalletResource/ # کیف پولها
│ │ │ ├── WalletTransactionResource/
│ │ │ ├── PaymentResource/ # پرداختها
│ │ │ ├── DiscountCodeResource/
│ │ │ ├── ShipmentItemResource/
│ │ │ ├── ExchangeRateHistoryResource/
│ │ │ └── RoleResource/ # مدیریت نقشها
│ │ ├── Pages/
│ │ │ ├── IfnexSettingsPage.php # تنظیمات سیستم + کلیدهای SMS
│ │ │ ├── PriceTestPage.php # تست محاسبه قیمت
│ │ │ ├── ImportRatesPage.php # آپلود اکسل نرخها
│ │ │ ├── BulkTrackingImport.php # ایمپورت گروهی وضعیت ترکینگ (CSV)
│ │ │ └── Reports/FinancialReport.php # گزارش مالی
│ │ └── Widgets/ # DashboardInfo, ExchangeRate, FinanceOverview, WalletStats, ...
│ ├── Http/
│ │ ├── Controllers/
│ │ │ ├── Api/
│ │ │ │ ├── AuthController.php # لاگین/لاگاوت مشتری
│ │ │ │ ├── BridgeAuthController.php # Bridge Auth (وردپرس)
│ │ │ │ ├── TrackController.php # رهگیری عمومی
│ │ │ │ ├── PricingController.php # محاسبه قیمت
│ │ │ │ ├── DiscountCodeController.php
│ │ │ │ ├── PaymentController.php # درگاه + Callback (با فلوی تأیید سفارش)
│ │ │ │ ├── MockGatewayController.php # شبیهسازی درگاه
│ │ │ │ ├── WalletController.php
│ │ │ │ ├── StaffOrderController.php # تأیید/رد سفارشات
│ │ │ │ ├── CustomerFinancialController.php # وضعیت مالی مشتری
│ │ │ │ ├── CommitmentFormController.php # تعهدنامهها + آپلود امضاشده
│ │ │ │ ├── MobileVerificationController.php # تأیید موبایل (SMS)
│ │ │ │ └── Customer/
│ │ │ │ └── CustomerOrderController.php # سفارشات مشتری (packages/items/PDF/تعهدنامه)
│ │ │ ├── ShipmentPdfController.php # AWB/Invoice/Label/Import-Invoice PDFs
│ │ │ └── OrderController.php # فلوی legacy Blade (deprecated)
│ │ └── Middleware/
│ │ └── ApiKeyMiddleware.php # برای APIهای عمومی
│ ├── Models/ # ۲۲ مدل Eloquent
│ ├── Notifications/ # DB + SMS: ShipmentApprovedSms, ShipmentRejectedSms, PaymentSuccessSms, TrackingUpdatedSms, SmsChannel
│ ├── Observers/
│ │ └── ShipmentObserver.php # تریگر نوتیفیکیشن/SMS روی تغییر وضعیت
│ ├── Traits/
│ │ └── Auditable.php # لاگ خودکار تغییرات مدلها
│ ├── Services/
│ │ ├── PriceCalculatorService.php # موتور قیمتگذاری
│ │ ├── WalletService.php # مدیریت کیف پول
│ │ ├── OrderPaymentService.php # پرداخت سفارش (کیف پول + درگاه)
│ │ ├── ZarinpalService.php # درگاه واقعی
│ │ ├── MockZarinpalService.php # درگاه شبیهسازی
│ │ ├── KavenegarSmsService.php # سرویس پیامک
│ │ ├── ExchangeRateService.php
│ │ ├── PdfService.php # تولید PDF با بارکد
│ │ └── TrackingService.php
│ ├── Imports/ # Excel imports (OldShipments, ShippingRates)
│ ├── Exports/ # ShippingRatesTemplateExport
│ └── Console/Commands/
│ ├── ifnex:import:rates # ایمپورت نرخها از اکسل
│ ├── ifnex:import:shipments # ایمپورت مرسولات تاریخی
│ ├── ifnex:import:tracking # ایمپورت دادههای ترکینگ
│ ├── ifnex:sync-wp-users # همگامسازی کاربران وردپرس
│ ├── ifnex:update-rates # بروزرسانی نرخ ارز (--source=ecb|freecurrencyapi)
│ └── ifnex:token # تولید API Token برای ادمین
│
├── database/
│ ├── migrations/ # ۴۰ migration
│ └── seeders/
│ ├── CountriesTableSeeder.php # ۲۳۳ کشور + calling_code
│ ├── SystemSettingSeeder.php
│ ├── RoleAndPermissionSeeder.php
│ ├── SampleShippingRatesSeeder.php
│ ├── SampleDataSeeder.php
│ └── DatabaseSeeder.php
│
├── resources/views/
│ ├── pdfs/
│ │ ├── awb.blade.php # Air Waybill PDF با بارکد
│ │ ├── invoice.blade.php # فاکتور PDF (PARCEL)
│ │ ├── label.blade.php # لیبل A5 با بارکد
│ │ └── import-invoice.blade.php # فاکتور واردات (مطابق شیت ENG)
│ └── filament/pages/ # صفحات Filament
│
├── routes/
│ ├── api.php # ۵۰+ REST API endpoint
│ └── web.php # Web (PDF قدیمی، payment-result، دانلود template)
│
└── config/
├── ifnex.php # تنظیمات اختصاصی IFNEX
└── cors.php
🗃️ Models
| Model | جدول | توضیح | فاز |
|---|---|---|---|
| Country | countries | ۲۳۳ کشور با ۴ زون + calling_code | ۰ |
| Shipment | shipments | مرسولهها (مدل مرکزی) | ۰+۲+۳.۵ |
| ShipmentItem | shipment_items | اقلام گمرکی (Invoice) | ۰+۳.۵ |
| ShipmentPackage | shipment_packages | بستههای چندگانه (Multi-Package) | ۳.۵ |
| ShipmentCarrierMapping | shipment_carrier_mappings | نگاشت شرکتهای حمل | ۰ |
| ShipmentTrackingEvent | shipment_tracking_events | رویدادهای ترکینگ | ۰+۲ |
| ShipmentStatusHistory | shipment_status_histories | تاریخچه تغییرات وضعیت | ۲ |
| ShippingRate | shipping_rates | تعرفههای حمل | ۰ |
| SystemSetting | system_settings | تنظیمات key-value | ۰ |
| Currency | currencies | ارزهای پشتیبانی (IRR, AED, USD, EUR, CNY) | ۲ |
| ExchangeRateHistory | exchange_rate_histories | تاریخچه نرخ ارز | ۲ |
| User | users | کاربران سیستم (admin + customer) | ۰ |
| Wallet | wallets | کیف پول کاربران | ۲ |
| WalletTransaction | wallet_transactions | تراکنشهای کیف پول | ۲ |
| WalletActivityLog | wallet_activity_logs | لاگ فعالیتهای کیف پول | ۲ |
| DiscountCode | discount_codes | کدهای تخفیف | ۲ |
| Payment | payments | پرداختها | ۲ |
| CommitmentForm | commitment_forms | فرمهای تعهدنامه (آپلود مدیر) | ۳.۶ |
| ShipmentCommitmentForm | shipment_commitment_forms | تعهدنامه امضاشده هر سفارش | ۳.۶ |
| ShipmentChecklist | shipment_checklists | چکلیست کارمند برای هر سفارش | ۳.۶ |
| AuditLog | audit_logs | لاگ تغییرات مدلها (polymorphic) | ۳.۶ |
| Role | roles | نقشها (spatie/laravel-permission) | ۲ |
جمع: ۲۲ مدل
🎨 Filament Resources
Resources اصلی
| Resource | توضیح | ویژگیها |
|---|---|---|
| ShipmentResource | مدیریت مرسولهها | جدول + فرم + View + اکشن تأیید/رد + CSV Export + Bulk Actions |
| ShipmentChecklistResource | چکلیست کارمند | CRUD — ⚠️ اتصال خودکار به سفارش باقی است |
| CommitmentFormResource | تعهدنامهها | آپلود فرم + direction (export/import/both) |
| CustomerCreditResource | اعتبار مشتریان | افزایش/کاهش اعتبار — ⚠️ نیازمند رفع و بازطراحی |
| AuditLogResource | لاگ تغییرات | مشاهده لاگهای Audit |
| CountryResource | مدیریت کشورها | CRUD + calling_code + ۴ زون |
| ShippingRateResource | مدیریت تعرفهها | CRUD + فیلتر + Import از اکسل |
| CurrencyResource | مدیریت ارزها | CRUD + بروزرسانی خودکار نرخ |
| UserResource | مدیریت کاربران | CRUD + Role + Wallet link |
| WalletResource | مدیریت کیف پول | View + Freeze/Unfreeze + Activity Log |
| WalletTransactionResource | تراکنشها | View + فیلتر + گزارش |
| PaymentResource | پرداختها | View + بررسی وضعیت |
| DiscountCodeResource | کدهای تخفیف | CRUD + اعتبارسنجی |
| RoleResource | نقشها | مدیریت Roles + Permissions |
| ShipmentItemResource | اقلام گمرکی | CRUD |
| ExchangeRateHistoryResource | تاریخچه نرخ ارز | View |
RelationManagers (ثبتشده در ShipmentResource)
| RelationManager | توضیح |
|---|---|
| TrackingEventsRelationManager | رویدادهای ترکینگ با فیلد source |
| CarrierMappingsRelationManager | نگاشت شرکتهای حمل |
صفحات سفارشی
| صفحه | توضیح |
|---|---|
| IfnexSettingsPage | تنظیمات سیستم — نرخ درهم، VAT، حاشیه سود، کلید کاوهنگار و سوییچهای SMS |
| PriceTestPage | تست محاسبه قیمت با پارامترهای مختلف — ⚠️ با مقادیر type فعلی خراب است |
| ImportRatesPage | آپلود اکسل نرخها + دانلود Template |
| BulkTrackingImport | ایمپورت گروهی وضعیت ترکینگ با CSV |
| FinancialReport | گزارش مالی (درآمد، تخفیف، کارمزد) |
🔧 Artisan Commands
# Import / Migration
php artisan ifnex:import:rates {path} # ایمپورت نرخها از اکسل
php artisan ifnex:import:shipments {path} # ایمپورت مرسولات تاریخی از اکسل
php artisan ifnex:import:tracking {path} # ایمپورت دادههای ترکینگ
php artisan ifnex:sync-wp-users # همگامسازی کاربران وردپرس با لاراول
# Currency
php artisan ifnex:update-rates # بروزرسانی نرخ ارز (--source=ecb یا freecurrencyapi)
# Token
php artisan ifnex:token # تولید API Token برای ادمین
# Standard
php artisan migrate # اجرای migrations
php artisan db:seed # اجرای seeders
php artisan serve # اجرای سرور
php artisan tinker # محیط تعاملی
php artisan route:list # لیست روتها
php artisan config:clear # پاکسازی کش کانفیگ
🔴 خط قرمزها (ممنوعیتها)
| ❌ هرگز | ✅ همیشه |
|---|---|
| برگرداندن countries به ۲ زون | ۴ زون مجزا (Export/Import × Parcel/Doc) |
| استفاده از ۲ نوع سرویس | ۳ نوع (DOC_NORMAL, DOC_ECONOMY, PARCEL) |
| ذخیره تاریخ شمسی در DB | ذخیره timestamp میلادی + تبدیل در نمایش |
CORS * در Production |
CORS محدود به دامنه وردپرس |
کامیت .env در Git |
در .gitignore باشد |
APP_DEBUG=true در Production |
APP_DEBUG=false |
| PDF فارسی (AWB/Invoice/Label) | همیشه انگلیسی (برای حمل بینالمللی) |
| کپی از DHL | طراحی منحصر به فرد IFNEX |
استفاده از wire:click برای دانلود |
استفاده از <a href> با روت مستقیم |
getFormActions() در Custom Pages |
استفاده از wire:click در Blade |
هدایت AJAX به redirect() |
استفاده از payment_url در response JSON |
| متدهای نوتیفیکیشن بیرون از کلاس | داخل کلاس IFNEX_User_Bridge |
🧪 تست
Mock Gateway
برای تست پرداخت بدون اتصال به Zarinpal واقعی، ZARINPAL_MERCHANT_ID=fake-merchant-id-for-testing را در .env تنظیم کنید. سپس:
- پرداختها از طریق
MockZarinpalServiceپردازش میشوند - URL پرداخت:
/api/v1/payment/mock-gateway - شبیهسازی موفق:
/api/v1/payment/mock-gateway/success - شبیهسازی ناموفق:
/api/v1/payment/mock-gateway/failure
Bridge Token Test
curl -X POST http://localhost:8000/api/v1/bridge/login \
-H "Content-Type: application/json" \
-d '{
"bridge_api_key": "YOUR_BRIDGE_KEY",
"wp_user_id": 1,
"wp_user_email": "user@example.com",
"wp_user_name": "Test User",
"token_name": "test"
}'
📚 مستندات
| فایل | محتوا |
|---|---|
| IFNEX_Phase0_Checklist.md | چکلیست کامل فازها |
| IFNEX_Roadmap.md | نقشه راه ۴ فازی |
| IFNEX_File_Map.md | نقشه ۱۰۰+ فایل |
| DEPLOYMENT.md | راهنمای استقرار Production |
🚀 مراحل بعدی
- تست انتهای فلوی سفارش (تعهدنامه → تأیید → پرداخت)
- امنیت: چک نقش روی
/staff/*، چک مالکیت PDF/تعهدنامه، rate limiting - بازطراحی سیستم اعتبار (بدهی چندارزی) + رفع CustomerCreditResource
- چکلیست خودکار کارمند بعد از تأیید سفارش
- رفع PriceTestPage و ثبت شورتکد
[ifnex_wallet_charge] - مستندات API (OpenAPI/Swagger)
- اتصال به APIهای ترکینگ زنده (فاز ۵)
- سیستم نمایندگی (فاز ۴)
وضعیت دقیق و جزئیات فاز ۳.۶: AGENT.md و IFNEX_Roadmap.md
© 2026 VernaSoft Group. All Rights Reserved.