Skip to main content

Zarinpal SDK for Python

این پکیج یک SDK برای تعامل با درگاه پرداخت زرین‌پال در زبان پایتون است. با استفاده از این SDK می‌توانید به راحتی عملیات‌های پرداخت، تایید پرداخت، استعلام تراکنش و موارد دیگر را در پروژه‌های پایتون و جنگو خود پیاده‌سازی کنید.

نصب

پیش‌نیازها

این پکیج برای کار با پایتون 3.6 به بالا توسعه داده شده است. برای استفاده از این پکیج ابتدا باید آن را نصب کنید.

نصب با استفاده از pip

pip install zarinpal-python-sdk

نحوه استفاده تنظیمات اولیه برای استفاده از SDK، ابتدا باید merchant_id (مرچنت کد) خود را از پنل زرین‌پال دریافت کرده و آن را برای تعامل با درگاه پرداخت تنظیم کنید. همچنین، می‌توانید بین حالت آزمایشی (sandbox) و واقعی سوییچ کنید.

from zarinpal_python_sdk.client import ZarinpalClient

client = ZarinpalClient(merchant_id="your_merchant_id", sandbox=True)

درخواست پرداخت برای شروع یک پرداخت جدید، می‌توانید از متد request_payment استفاده کنید:

response = client.request_payment(
    amount=11000,  # مبلغ به ریال
    description="خرید محصول تستی",  # توضیحات پرداخت
    callback_url="http://your-site.com/verify/",  # آدرس بازگشت
    mobile="09123456789",  # (اختیاری) شماره موبایل خریدار
    email="test@example.com"  # (اختیاری) ایمیل خریدار
)

if response['Status'] == 100:
    print(f"Redirect to: https://sandbox.zarinpal.com/pg/StartPay/{response['Authority']}")
else:
    print(f"Error: {response['Status']}")

تایید پرداخت پس از بازگشت کاربر به سایت شما، می‌توانید از متد verify_payment برای تایید پرداخت استفاده کنید:

authority = request.GET.get('Authority')
response = client.verify_payment(authority=authority, amount=10000)

if response['Status'] == 100:
    print("پرداخت با موفقیت تایید شد.")
else:
    print("پرداخت ناموفق.")

استعلام تراکنش برای بررسی وضعیت تراکنش‌ها می‌توانید از متد inquiry_transaction استفاده کنید:

response = client.inquiry_transaction(authority="YourAuthorityCode")
if response['Status'] == 100:
    print("تراکنش موفق.")
else:
    print(f"وضعیت تراکنش: {response['Status']}")

تراکنش‌های تایید نشده برای دریافت لیستی از تراکنش‌های تایید نشده، از متد get_unverified_transactions استفاده کنید:

response = client.get_unverified_transactions()
if response['Status'] == 100:
    print("تراکنش‌های تایید نشده:", response['Authorities'])
else:
    print("خطا در دریافت تراکنش‌ها.")

ریورس تراکنش برای لغو تراکنش، می‌توانید از متد reverse_transaction استفاده کنید:

response = client.reverse_transaction(authority="YourAuthorityCode")
if response['Status'] == 100:
    print("تراکنش با موفقیت لغو شد.")
else:
    print(f"خطا: {response['Status']}")

استرداد وجه برای استرداد وجه یک تراکنش، می‌توانید از متد refund_transaction استفاده کنید:

response = client.refund_transaction(authority="YourAuthorityCode", amount=5000)
if response['Status'] == 100:
    print("وجه با موفقیت استرداد شد.")
else:
    print(f"خطا: {response['Status']}")

مدیریت خطاها در SDK، خطاها و استثناهای مختلفی تعریف شده است که به شما کمک می‌کند تا بتوانید به سادگی مشکلات را مدیریت کنید. برای مثال، اگر در درخواست پرداخت خطایی رخ دهد، پیام خطا به صورت زیر نمایش داده می‌شود:

from zarinpal_python_sdk.exceptions import PaymentRequestError, NetworkError

try:
    response = client.request_payment(
        amount=11000,
        description="خرید محصول تستی",
        callback_url="http://your-site.com/verify/"
    )
except PaymentRequestError as e:
    print(f"خطا در درخواست پرداخت: {e}")
except NetworkError as e:
    print(f"خطای شبکه: {e}")

ابزارها (Utilities) پکیج دارای توابع کمکی نیز می‌باشد که به شما در مدیریت بهتر کد کمک می‌کند. به عنوان مثال:

دریافت پیام خطای مرتبط با کد وضعیت:

from zarinpal_python_sdk.utils import get_status_message

status_code = -10
message = get_status_message(status_code)
print(message)  # خروجی: "ای پی یا مرچنت کد پذیرنده صحیح نیست."

بررسی فرمت ایمیل:

from zarinpal_python_sdk.utils import is_valid_email

email = "test@example.com"
if is_valid_email(email):
    print("ایمیل معتبر است.")
else:
    print("ایمیل نامعتبر است.")

بررسی فرمت شماره موبایل:

from zarinpal_python_sdk.utils import is_valid_mobile

mobile = "09123456789"
if is_valid_mobile(mobile):
    print("شماره موبایل معتبر است.")
else:
    print("شماره موبایل نامعتبر است.")

توسعه و مشارکت

اگر می‌خواهید به توسعه‌ی این SDK کمک کنید یا باگ‌های موجود را گزارش دهید، می‌توانید به لینک مراجعه کنید و تغییرات پیشنهادی خود را از طریق Pull Request ارسال کنید.

Release files for zarinpal-python-sdk 0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for zarinpal-python-sdk 0.2
File Size Uploaded
zarinpal_python_sdk-0.2.tar.gz 8.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for zarinpal-python-sdk 0.2
File Interpreter ABI Platform
zarinpal_python_sdk-0.2-py3-none-any.whl Python 3 none any Details

Total release size: 17.7 kB

Release files / zarinpal_python_sdk-0.2.tar.gz

Download URL zarinpal_python_sdk-0.2.tar.gz
Size 8.9 kB
Tags Source
SHA-256 checksum
How to use checksums
aa341e3b54ac8bce3934af545f7b102b08ebf030a80f7b87b3b665b21b3cb422
BLAKE2b-256 checksum
How to use checksums
8382318bb462fefee6fe983409b41d86e8e101f2ec74e7e0a1406ec0b387e0c0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.2

Release files / zarinpal_python_sdk-0.2-py3-none-any.whl

Download URL zarinpal_python_sdk-0.2-py3-none-any.whl
Size 8.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d2620b338ceac1d68cda7f2d66ed6060f35c3bcb789db0f03b2ec1e3465a562a
BLAKE2b-256 checksum
How to use checksums
ef2a132a87c83dde50c7d02e44ad873d8abfb3f4a74f6c68bd257c4db3589517
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.2

Release history Release notifications | RSS feed

This release

0.2 This release

2 release files

0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page