# درخواست پرداخت (Payment Request)

متد 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 (توضیح) است.

# دریافت URL پرداخت

پس از ارسال موفقیت‌آمیز درخواست پرداخت، یک 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()