Skip to main content
#P1589

POST /v2/wallet/check

Route Info

Method Endpoint Controller
POST /v2/wallet/check AccountingController@checkWallet

شرح عملکرد (Functionality)

این متد برای بررسی کفایت موجودی (Balance Check) قبل از انجام تراکنش استفاده می‌شود. برخلاف متد balance که فقط گزارش می‌دهد، این متد معمولاً یک پاسخ Boolean یا آبجکت وضعیت برمی‌گرداند که آیا تراکنش با مبلغ مشخص شده مجاز است یا خیر.

  • هدف: جلوگیری از ثبت سفارش/تراکنش برای حساب‌های فاقد موجودی.
  • منطق: پارامترهای نوع حساب، شناسه و مبلغ درخواستی به متد داخلی getCheckWallet ارسال می‌شود.
  • نقص امنیتی: در حال حاضر هیچ اعتبارسنجی روی مبلغ (مثلاً عدم ارسال عدد منفی) انجام نمی‌شود.

پارامترهای ورودی (JSON Body)

تمامی فیلدها الزامی هستند:

{
    "type": "office",      // نوع کیف پول (office, user, colleague)
    "id": 101,             // شناسه مالک کیف پول
    "amount": 5000000      // مبلغ تراکنش مورد نظر (به ریال)
}

خروجی (Response)

سناریوی ۱: موجودی کافی است

{
    "status": true,
    "data": true           // یا آبجکتی که تایید می‌کند موجودی کافی است
}

سناریوی ۲: موجودی ناکافی است

نکته: در این حالت هم status کلی پاسخ true است (چون درخواست بررسی با موفقیت انجام شده)، اما data منفی است.

{
    "status": true,
    "data": false          // یا پیامی مبنی بر کمبود موجودی
}

خطا (Error):

از آنجایی که بلوک try-catch وجود ندارد، در صورت بروز خطا در دیتابیس یا ورودی‌ها، ساختار JSON استاندارد بازگردانده نمی‌شود و ممکن است با خطای سیستمی (Exception Trace) مواجه شوید.