Skip to main content
#P1712

POST /v2/trade/confirmation

Trade: Contract Confirmation

این اندپوینت جهت تایید نهایی قرارداد (فاکتور) توسط اپراتور استفاده می‌شود.
با فراخوانی این سرویس، فیلد تاییدیه در دیتابیس با زمان جاری مقداردهی شده و در صورت درخواست، پیامک اطلاع‌رسانی حاوی لینک قرارداد دیجیتال برای مسافر (سرگروه) ارسال می‌شود.

Request Overview

URL: /v2/trade/confirmation
Method: POST
Controller: V2TradeController@confirmationTrade

Access Control

  • نیاز به احراز هویت (احتمالاً JWT با توجه به سایر متدها).
  • دسترسی به `branch` ارسال شده.

Body Parameters

Field Type Description
serial_id integer (الزامی) شناسه فاکتور (Contract ID) که باید تایید شود.
branch integer (الزامی) شناسه شعبه جهت فیلترینگ امنیتی.
notices boolean (اختیاری) اگر `true` ارسال شود، سیستم اقدام به ارسال پیامک اطلاع‌رسانی به مسافر می‌کند.

Logic Details

فرآیند تایید شامل مراحل زیر است:

  1. یافتن فاکتور: جستجو در جدول factors بر اساس serial_id و branch.
  2. ثبت تاییدیه: به‌روزرسانی ستون confirmation با زمان جاری سرور (`Carbon::now`).
  3. ارسال اعلان (Notification Logic): اگر پارامتر notices ارسال شده باشد:
    • شماره موبایل مسافر (Customer) از جدول `customers` استخراج می‌شود.
    • اطلاعات شعبه (نام فارسی و تلفن) از جدول `offices` استخراج می‌شود.
    • ساخت پیام: متنی حاوی تایید قرارداد، لینک کوتاه (`mmah.ir/c/{slug}`)، تاریخ شمسی و تلفن پشتیبانی ایجاد می‌شود.
    • صف‌بندی: جاب SendNotification به صف اولویت بالا (`fastJob`) ارسال می‌شود.

Response Structure

پاسخ موفق

  • Status Code: 200 OK
  • Body:
{
  "status": true,
  "time": 1715001200
}

پاسخ خطا

  • Status Code: 404 Not Found (حتی در صورت خطای داخلی سرور کد 404 برگردانده می‌شود).
  • Body:
{
  "status": false,
  "code": 5007,
  "message": "خطا در ارسال اطلاعات.",
  "trace": [ ... ]
}

Flowchart

Start
Fetch Factor Details
(ID, Slug, CustomerID)
Update Database
SET confirmation = NOW()
Notice Req?
No
Yes
Prepare SMS
1. Get Customer Mobile
2. Get Branch Info
3. Build Msg (Link+Date)
Dispatch to `fastJob`
Return Success JSON