# استعلام تراکنش (Transaction Inquiry)

متد inquiry به شما امکان می‌دهد تا وضعیت یک تراکنش را بررسی و استعلام کنید. این متد زمانی استفاده می‌شود که بخواهید پس از ارسال درخواست پرداخت یا تأیید پرداخت، اطلاعات دقیق‌تری درباره وضعیت تراکنش کسب کنید.

# پارامترهای ارسالی به متد Inquiry

در جدول زیر پارامترهای ارسالی به متد inquiry و توضیحات مربوط به آن‌ها آورده شده است:

نام پارامتر نوع الزامی توضیحات
merchant_id String بله کد Merchant شما که توسط زرین‌پال اختصاص داده شده است.
authority String بله کد یکتای درخواست پرداخت که پس از درخواست پرداخت دریافت می‌شود.

# مقادیر بازگشتی از متد Inquiry

در جدول زیر پارامترهای بازگشتی از متد inquiry توضیح داده شده است:

نام پارامتر نوع توضیحات
code Integer کد وضعیت تراکنش: کد 100 برای تراکنش موفق.
message String پیام وضعیت تراکنش، مانند موفقیت‌آمیز یا عدم موفقیت تراکنش.
status String وضعیت نهایی تراکنش که نشان می‌دهد تراکنش موفق بوده یا لغو شده است.

# نمونه کد

در ادامه نمونه کدی ارائه شده است که ابتدا کد authority از دیتابیس فراخوانی می‌شود و سپس با استفاده از آن، وضعیت تراکنش از زرین‌پال استعلام می‌شود:

<?php
require_once __DIR__ . '/../vendor/autoload.php';
use ZarinPal\Sdk\Options;
use ZarinPal\Sdk\ZarinPal;
use ZarinPal\Sdk\HttpClient\Exception\ResponseException;
use ZarinPal\Sdk\Endpoint\PaymentGateway\RequestTypes\InquiryRequest;
$options = new Options([
    'merchant_id' => '67887a6d-e2f8-4de2-86b1-8db27bc171b5',
]);
$zarinpal = new ZarinPal($options);
$paymentGateway = $zarinpal->paymentGateway();
$inquiryRequest = new InquiryRequest();
$inquiryRequest->authority = 'A000000000000000000000000000ydq5y838';
try {
    $response = $paymentGateway->inquiry($inquiryRequest);
    echo "Transaction Inquiry: \n";
    echo "Amount: " . $response->code . "\n";
    echo "Status: " . $response->message . "\n";
    echo "Status: " . $response->status . "\n";
} catch (ResponseException $e) {
    echo 'Transaction Inquiry Validation Error: ' . $e->getErrorDetails();
} catch (\Exception $e) {
    echo 'Transaction Inquiry Validation Error: ' . $e->getMessage();
}