متد request
به شما امکان میدهد تا یک درخواست پرداخت جدید ایجاد کنید و کاربر را به درگاه پرداخت هدایت کنید. این متد برای ارسال اطلاعات مربوط به پرداخت و دریافت 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 نهایی پرداخت را با متد generate_payment_url
دریافت کرده و کاربر را به درگاه پرداخت هدایت کنید.
در ادامه نمونه کدی که نحوه ارسال درخواست پرداخت و هدایت کاربر به درگاه پرداخت را نشان میدهد، آورده شده است:
from zarinpal import ZarinPal
from utils.Config import Config
def initiate_payment():
try:
config = Config(
merchant_id="your merchant code",
sandbox=True,
)
zarinpal = ZarinPal(config)
response = zarinpal.payments.create({
"amount": 20000,
"callback_url": "https://zarinpal.com/",
"description": "Payment creat",
"mobile": "09123456789",
"email": "customer@example.com",
"cardPan": ["6219861034529007", "5022291073776543"],
"referrer_id": "affiliate123",
})
print("Payment created successfully:", response)
if "data" in response and "authority" in response["data"]:
authority = response["data"]["authority"]
payment_url = zarinpal.payments.generate_payment_url(authority)
print("Payment URL:", payment_url)
else:
print("Authority not found in response.")
except Exception as e:
print("Error during payment creation:", e)
if __name__ == "__main__":
initiate_payment()