متد createPayment
به شما امکان میدهد تا یک درخواست پرداخت جدید ایجاد کنید و کاربر را به درگاه پرداخت هدایت کنید. این متد برای ارسال اطلاعات مربوط به پرداخت و دریافت authority
جهت هدایت کاربر به صفحه پرداخت استفاده میشود.
در جدول زیر توضیحات مربوط به هر پارامتر را مشاهده میکنید:
نام پارامتر | نوع | الزامی | توضیحات |
---|---|---|---|
amount | Integer | بله | مبلغ پرداختی به ریال. حداقل مقدار پرداخت 10000 ریال است. |
description | String | بله | توضیحات مربوط به تراکنش مانند شماره سفارش یا نام محصول. |
callback_url | String | بله | آدرس بازگشت پس از تکمیل یا عدم موفقیت پرداخت. |
mobile | String | خیر | شماره موبایل کاربر. (اختیاری) |
email | String | خیر | ایمیل کاربر. (اختیاری) |
referrer_id | String | خیر | کد معرف. (اختیاری) |
currency | String | خیر | واحد پولی تراکنش. مقدار پیشفرض IRR (ریال) و مقدار دیگر IRT (تومان) است. |
cardPan | String | خیر | شماره کارت بانکی که کاربر با آن پرداخت میکند. (اختیاری) |
wages | Array | خیر | آرایهای شامل اطلاعات تسهیم سود. هر عنصر شامل iban (شبا)، amount (مبلغ) و description (توضیح) است. |
پس از ارسال موفقیتآمیز درخواست پرداخت، یک authority
از زرینپال دریافت میشود. سپس با استفاده از این authority
میتوانید URL نهایی پرداخت را با لامبدا redirectUrl
دریافت کرده و کاربر را به درگاه پرداخت هدایت کنید.
در ادامه نمونه کدی که نحوه ارسال درخواست پرداخت و هدایت کاربر به درگاه پرداخت را نشان میدهد، آورده شده است:
import com.example.zarinpal.ZarinPal
import com.example.zarinpal.data.remote.dto.create.CreatePaymentDataResponse
import com.example.zarinpal.data.remote.dto.create.CreatePaymentRequest
val request = CreatePaymentRequest(
amount = 20000,
callbackUrl = "https://yourwebsite.com/callback",
description = "test"
)
CoroutineScope(Dispatchers.IO).launch {
try{
val response =
zarinPal.createPayment(request, redirectUrl = { paymentGatewayUri, status ->
if (status == 100)
Log.v("ZP_Log",paymentGatewayUri)
})
Log.v("ZP_Log","$response")
} catch (ex: Exception) {
ex.printStackTrace()
}
}