# محاسبه کارمزد تراکنش (Fee Calculation)

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

نام پارامتر نوع الزامی توضیحات
merchantId String بله کد Merchant شما که توسط زرین‌پال اختصاص داده شده است.
amount Long بله مبلغ تراکنش به ریال که باید بیشتر از 1000 ریال باشد.
currency String خیر نوع ارز تراکنش (پیش‌فرض: IRR). مقادیر مجاز: IRR, IRT

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

نام پارامتر نوع توضیحات
code Int کد وضعیت درخواست: کد 100 برای درخواست موفق.
fee Int میزان کارمزد محاسبه شده به ریال.
feeType String نوع پرداخت کننده کارمزد: Merchant (پذیرنده) یا Payer (پرداخت کننده).
suggestedAmount Long میزان کارمزد محاسبه شده به علاوه مبلغ اصلی تراکنش.
message String پیام وضعیت درخواست، مانند موفقیت‌آمیز بودن محاسبه کارمزد.
amount Long مبلغ اصلی تراکنش به ریال.

# نمونه کد (Kotlin)

        setContent {
            val zarinPal = ZarinPal(
                Config(
                    merchantId = "your-merchant-id", token = "your-access-token", sandBox = false
                )
            )
            var transactionFeeRequest = PaymentFeeRequest(amount = 1000000, merchantId = "your-merchant-id")
            SampleProject {
                Scaffold(modifier = Modifier.fillMaxSize()) {
                    ElevatedButton(onClick = {
                        CoroutineScope(Dispatchers.IO).launch {
                            try {
                                val response = zarinPal.getPaymentFee(transactionFeeRequest)
                                Log.v("ZP_Log", "$response")
                            } catch (ex: Exception) {
                                ex.printStackTrace()
                            }
                        }
                    }) {
                        Text("clickOnMe!")
                    }
                }
            }
        }

# نکات مهم

  • مبلغ تراکنش باید حداقل ۱۰۰۰ ریال باشد.
  • کارمزد محاسبه شده بر اساس تنظیمات ترمینال شما و نوع تراکنش متفاوت خواهد بود.
  • نوع پرداخت کننده کارمزد (fee_type) می‌تواند Merchant (پذیرنده می‌پردازد) یا Payer (مشتری می‌پردازد) باشد.
  • این متد صرفاً برای محاسبه کارمزد است و هیچ تراکنشی ایجاد نمی‌کند.