متد 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()