This Python package provides a simple interface for integrating ZarinPal's payment gateway into your Python applications. It supports both sandbox and production environments, enabling you to test your payment functionality before going live.
- Payment Request: Send payment requests to ZarinPal's API.
- Payment Verification: Verify payment transactions to ensure success.
- Generate Payment URL: Generate a URL for users to complete their payment.
- Sandbox & Production Modes: Switch between sandbox for testing and the production environment for live payments.
To install the package, run:
pip install zarinpal-paymentHere is how to use the package to handle payment requests, verification, and generate payment URLs.
Create an instance of the ZarinPal class by passing your merchant ID, callback URL, and optionally, set the sandbox environment (True for testing, False for production):
from zarinpal_payment.zarinpal import ZarinPal
zarinpal = ZarinPal(merchant_id="ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890", callback_url="Your callback URL", sandbox=True)Use the payment_request method to initiate a payment request. Pass the amount and description (optional):
response = zarinpal.payment_request(amount=1000, description="Test payment")Extract the payment authority from the response to generate the payment URL:
authority = response.get("data", {}).get("authority")Use the generate_payment_url method to create a URL that will redirect users to the ZarinPal payment page:
payment_url = zarinpal.generate_payment_url(authority)After the user completes the payment, verify the payment using the payment_verify method:
verify_response = zarinpal.payment_verify(amount=1000, authority=authority)from zarinpal_payment.zarinpal import ZarinPal
# Create an instance of ZarinPal
# you can use any string but must be greater than 36 characters
zarinpal = ZarinPal(merchant_id="ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890", callback_url="Your callback URL", sandbox=True)
# Step 1: Request a payment
response = zarinpal.payment_request(amount=1000, description="Test payment")
# Step 2: Get the authority from the response
authority = response.get("data", {}).get("authority")
# Step 3: Generate the payment URL
payment_url = zarinpal.generate_payment_url(authority)
# Step 4: Verify the payment
verify_response = zarinpal.payment_verify(amount=1000, authority=authority)
# Print the payment URL and verification response
print(payment_url)
print(verify_response)- merchant_id: Your ZarinPal merchant ID.
- callback_url: The URL to which ZarinPal will redirect after the payment attempt.
- sandbox: Set this to
Truefor testing in the sandbox environment orFalsefor the live environment.
The package uses Python's built-in logging module to log requests and responses. You can adjust the logging level to suit your needs.
For more details about ZarinPal's API, please refer to the official documentation:
This project is licensed under the MIT License - see the LICENSE file for details.