Skip to main content
#P1785

GET /b2c/v1/credit-card


Get Credit Card Detail

این اندپوینت برای دریافت اطلاعات یک کارت اعتباری خاص استفاده می‌شود.
ویژگی امنیتی (Security Masking): سیستم به طور خودکار بررسی می‌کند که آیا کاربر درخواست‌دهنده (`operator`) همان مالک کارت (`passenger_id`) است یا خیر:

  • اگر مالک باشد: اطلاعات کامل شامل `cvv2`، تاریخ انقضا و شماره کامل کارت نمایش داده می‌شود.
  • اگر مالک نباشد: شماره کارت به صورت ماسک شده (مثلاً `6037****1234`) برمی‌گردد و فیلدهای حساس (`cvv2`, `expire_date`) حذف می‌شوند.

 




Fetch Credit Card

URL: /b2c/v1/credit-card
Method: GET
Controller: CreditCards@showCreditCard
Auth: Required (Bearer Token)

Headers (الزامی)

Header Name Description
Authorization توکن احراز هویت (Bearer Token).

Query Parameters (فیلترها)

Parameter Type Description
id Integer (اختیاری) جستجو بر اساس شناسه کارت در سیستم.
passenger_id Integer (اختیاری) جستجو بر اساس شناسه مسافر (مالک کارت).

Response Structure

Key Type Description
payload.id Integer شناسه رکورد کارت.
payload.status Integer وضعیت کارت (معمولاً 1 فعال).
payload.card.number String شماره کارت (کامل یا ماسک شده بسته به مالکیت).
payload.card.withdrawal_limit Integer/Bool سقف برداشت (در صورت وجود).
payload.card.blocked_amount Integer/Bool مبلغ بلوکه شده.
payload.card.cvv2 String (شرطی) فقط اگر کاربر لاگین شده مالک کارت باشد ارسال می‌شود.
payload.card.expire_date String (شرطی) فقط اگر کاربر لاگین شده مالک کارت باشد ارسال می‌شود.
payload.passenger Object اطلاعات صاحب کارت.

Example Responses

۱. موفقیت آمیز - مالک کارت (نمایش کامل):

{
    "payload": {
        "id": 101,
        "status": 1,
        "card": {
            "number": "6037991122334455",
            "withdrawal_limit": 50000000,
            "blocked_amount": 0,
            "cvv2": "1234",           // موجود است
            "expire_date": "04/05"    // موجود است
        },
        "passenger": {
            "id": 55,
            "first_name": "علی",
            "last_name": "محمدی"
        }
    },
    "meta": {
        "timestamp": 1702160000
    }
}

۲. موفقیت آمیز - غیر مالک (اطلاعات امنیتی مخفی):

{
    "payload": {
        "id": 101,
        "status": 1,
        "card": {
            "number": "6037********4455", // ماسک شده
            "withdrawal_limit": false,
            "blocked_amount": false
            // فیلدهای cvv2 و expire_date وجود ندارند
        },
        "passenger": {
            "id": 55,
            "first_name": "علی",
            "last_name": "محمدی"
        }
    },
    "meta": {
        "timestamp": 1702160010
    }
}

۳. خطا - یافت نشد:

{
    "error": {
        "code": 1000,
        "message": "کارت اعتباری پیدا نشد."
    },
    "meta": {
        "timestamp": 1702160020
    }
}

Technical Logic

Request (GET)
Database Query
Join `credit_cards` with `customers`
Filter by `id` OR `passenger_id` from Request
Record Found?
↓ Yes
Check Ownership
request->operator->id == card->passenger_id
↓ No
Error 422
"Card Not Found"
Is Owner?
↓ Yes
Return Full Data
Include `cvv2`, `expire_date`
Real Card Number
↓ No
Return Safe Data
Exclude Sensitive Fields
Mask Number: 1234********5678