# تأیید پرداخت (Payment Verification)

متد paymentVerify به شما امکان می‌دهد تا پس از بازگشت کاربر از درگاه پرداخت، وضعیت تراکنش را بررسی و تأیید کنید. با استفاده از این متد، شما می‌توانید صحت پرداخت و جزئیات تراکنش را بررسی کنید و در صورت موفقیت‌آمیز بودن پرداخت، آن را تأیید نمایید.

این متد معمولاً پس از بازگشت کاربر به آدرس callback_url که در درخواست پرداخت مشخص شده بود، استفاده می‌شود.

# پارامترهای تأیید پرداخت

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

نام پارامتر نوع الزامی توضیحات
authority String بله کد authority که پس از درخواست پرداخت از درگاه دریافت می‌شود و در کوئری استرینگ بازگشت به callback_url وجود دارد.
amount Integer بله مبلغ پرداختی که باید با مبلغ اصلی تراکنش مطابقت داشته باشد. این مقدار باید از دیتابیس استخراج شود.

# نمونه کد

در ادامه، نمونه کدی ارائه شده است که ابتدا کد authority از کوئری استرینگ دریافت می‌شود، سپس مبلغ مربوط به این authority از دیتابیس استخراج شده و برای تأیید به زرین‌پال ارسال می‌شود:

import com.example.zarinpal.ZarinPal
import com.example.zarinpal.data.remote.dto.verification.PaymentVerificationDataResponse
import com.example.zarinpal.data.remote.dto.verification.PaymentVerifyRequest
val request = PaymentVerifyRequest(
                    amount = amount,
                    authority = "your authority"
                )
CoroutineScope(Dispatchers.IO).launch {
  try{
    val response = zarinPal.paymentVerify(request)
     Log.v("ZP_Log","$response")
  } catch (ex: Exception) {
    ex.printStackTrace()
  }
}