متد ریورس تراکنش به شما امکان میدهد تا تراکنشهای موفقی که از زمان پرداخت آنها حداکثر ۳۰ دقیقه گذشته است را بدون کارمزد به حساب خریدار استرداد کنید.
این متد برای تراکنشهایی استفاده میشود که موفق بودهاند اما لازم است مبلغ آنها به خریدار بازگردانده شود. توجه داشته باشید که امکان ریورس تنها در ۳۰ دقیقه ابتدایی پس از انجام تراکنش وجود دارد.
62-
مواجه خواهید شد.در این متد، پارامترهای زیر به API ارسال میشود:
نام | نوع | اجباری | شرح |
---|---|---|---|
merchant_id | String | بله | کد ۳۶ کاراکتری اختصاصی پذیرنده |
authority | String | بله | آتوریتی تراکنش مورد نظر برای ریورس کردن |
در ادامه نمونهای از پیادهسازی متد ریورس تراکنش در PHP آمده است:
<?php
require_once __DIR__ . '/../vendor/autoload.php';
use ZarinPal\Sdk\Options;
use ZarinPal\Sdk\ZarinPal;
use ZarinPal\Sdk\Endpoint\PaymentGateway\RequestTypes\ReverseRequest;
use ZarinPal\Sdk\HttpClient\Exception\ResponseException;
$options = new Options([
'merchant_id' => '67887a6d-e2f8-4de2-86b1-8db27bc171b5',
]);
$zarinpal = new ZarinPal($options);
$paymentGateway = $zarinpal->paymentGateway();
$reverseRequest = new ReverseRequest();
$reverseRequest->authority = 'A000000000000000000000000000opo6w6y8'; // Authority from the original transaction
try {
$response = $paymentGateway->reverse($reverseRequest);
echo "Transaction Reversed: " . $response->code . "\n";
echo "Transaction Reversed: " . $response->message . "\n";
} catch (ResponseException $e) {
echo 'Transaction reversal failed due to API error: ' . $e->getMessage() . "\n";
if ($e->getErrorDetails()) {
echo 'Error Details: ' . json_encode($e->getErrorDetails()) . "\n";
}
} catch (\Exception $e) {
echo 'Transaction reversal failed: ' . $e->getMessage() . "\n";
}