#P1805
GET /b2c/v1/gateway/details
Payment Gateway Details
این اندپوینت جزئیات تراکنش از درگاه بانکی (Payment Gateway) را بر اساس serial_id برمیگرداند. در صورتیکه وضعیت تراکنش موفق (status=3) باشد، اطلاعات کارت و کد رهگیری نمایش داده میشود؛ در غیر این صورت، پیام خطا و جزئیات تراکنش ناموفق بازگردانده میشود.
Endpoint Info
URL:
/b2c/v1/gateway/detailsMethod: GET
Controller:
CreditDebitController@paymentGatewayDetailsAuth: ندارد (مشاهده جزئیات بر اساس serial)
Source Tables:
payment_gateway, gatewaysQuery Parameters
| پارامتر | نوع | اجباری | توضیح |
|---|---|---|---|
| serial_id | string | integer | ✅ | شناسهٔ تراکنش در جدول payment_gateway |
Logic Flow
📥 ۱. دریافت پارامتر
serial_id از QueryString↓
۲. اجرای Query:
SELECT payment_gateway.*, gateways.drive as drive_title
FROM payment_gateway
JOIN gateways ON payment_gateway.drive = gateways.id
WHERE payment_gateway.serial_id = :serial_id
↓
آیا رکوردی یافت شد؟
- ✅ بله → ادامه پردازش
- ❌ خیر → بازگشت پیام 404
↓
بررسی فیلد
status:
3→ پرداخت موفق ✅- غیر از 3 → پرداخت ناموفق ❌
↓
در حالت پرداخت موفق:
- اگر
drive_title = 'behpardakht'یا'sep'→ مقدارresultدیکد (JSON decode) میشود. - مقادیر زیر استخراج میشوند:
amount: مبلغ پرداختcard: شماره کارت (ازCardHolderPan)tracking_code: کد رهگیری (SaleReferenceId)datetime: زمان تراکنش
- درگاههای دیگر در خروجی خام (`$tempPaymentGateway`) بازگردانده میشوند.
↓
در حالت پرداخت ناموفق:
اگر behpardakht باشد → پیام خطا از
اگر behpardakht باشد → پیام خطا از
$result->message گرفته میشود و SaleOrderId به عنوان tracking_code بازگردانده میشود.↓
✅ پاسخ نهایی JSON با وضعیت
200 (در موفقیت) یا 400/404 در خطا بازگردانده میشود.Response Samples
🎯 پرداخت موفق (درگاه Behpardakht)
{
"payload": {
"drive": "behpardakht",
"amount": 1250000,
"card": "610433******8124",
"datetime": "2025-12-09T10:12:35",
"tracking_code": "74632159"
},
"meta": { "timestamp": 1733749500 }
}
⚠️ پرداخت ناموفق (درگاه Behpardakht)
{
"error": {
"code": 1000,
"message": "پرداخت ناموفق | تراکنش توسط دارنده کارت لغو شد"
},
"meta": {
"timestamp": 1733749600,
"data": {
"message": "تراکنش توسط دارنده کارت لغو شد",
"datetime": "2025-12-09T10:12:35",
"tracking_code": "69854172"
}
}
}
❌ پرداختی یافت نشد
{
"error": {
"code": 1000,
"message": "پرداختی با این مشخصات یافت نشد."
},
"meta": { "timestamp": 1733749700 }
}
Technical Notes
- منبع اصلی داده: جدول
payment_gateway(اطلاعات تراکنش) + جدولgateways(متادیتای درگاه). - پارامتر
serial_idاز Query دریافت میشود و باید منحصربهفرد باشد. - فیلد
status=3معرف پرداخت نهایی و تایید شده است. - درگاههای اختصاصی (Behpardakht و Sep) دارای فیلد JSON
resultهستند که حاوی دادههای تراکنش مانند شماره کارت و کد مرجع است. - در صورت عدم match درگاه خاص، پاسخ به صورت خام (Object کامل DB row) بازگردانده میشود.