a Python package for integrating the ZarinPal payment gateway.
Project description
ZarinPal Python Payment Gateway Integration
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.
Features
- 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.
Installation
To install the package, run:
pip install zarinpal-payment
Usage
Here is how to use the package to handle payment requests, verification, and generate payment URLs.
1. Initialize ZarinPal Client
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="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", callback_url="Your callback URL", sandbox=True)
2. Request a Payment
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")
3. Get the Authority
Extract the payment authority from the response to generate the payment URL:
authority = response.get("data", {}).get("authority")
4. Generate Payment URL
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)
5. Verify the Payment
After the user completes the payment, verify the payment using the payment_verify method:
verify_response = zarinpal.payment_verify(amount=1000, authority=authority)
Example Code
from zarinpal_payment.zarinpal import ZarinPal
# Create an instance of ZarinPal
zarinpal = ZarinPal(merchant_id="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", 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)
Configuration
- 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.
Logging
The package uses Python's built-in logging module to log requests and responses. You can adjust the logging level to suit your needs.
References
For more details about ZarinPal's API, please refer to the official documentation:
License
This project is licensed under the MIT License - see the LICENSE file for details.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file zarinpal_payment-0.0.5.tar.gz.
File metadata
- Download URL: zarinpal_payment-0.0.5.tar.gz
- Upload date:
- Size: 4.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
83347fe54de37f30ceb4212e3e18437194481ba11b91e356d6b45b342b6fa3b3
|
|
| MD5 |
45d5b8a44d286c127d61686854e0c229
|
|
| BLAKE2b-256 |
d6ee93364bc1f2d64ce31743c2143c3cca8a104c8179896c1e837b41d2a29cf9
|
File details
Details for the file zarinpal_payment-0.0.5-py3-none-any.whl.
File metadata
- Download URL: zarinpal_payment-0.0.5-py3-none-any.whl
- Upload date:
- Size: 4.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
846ddd72f7b0fce3ae8b39854dd0a801e2a7484abae738f191f3d340aab73ffe
|
|
| MD5 |
bed9b602521353068c5072661d124875
|
|
| BLAKE2b-256 |
66030ed1829642521a04a829b54e1181d8a617236c1fea193f63514ed82a3eb7
|