Skip to main content

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 True for testing in the sandbox environment or False for 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

zarinpal_payment-0.0.5.tar.gz (4.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

zarinpal_payment-0.0.5-py3-none-any.whl (4.5 kB view details)

Uploaded Python 3

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

Hashes for zarinpal_payment-0.0.5.tar.gz
Algorithm Hash digest
SHA256 83347fe54de37f30ceb4212e3e18437194481ba11b91e356d6b45b342b6fa3b3
MD5 45d5b8a44d286c127d61686854e0c229
BLAKE2b-256 d6ee93364bc1f2d64ce31743c2143c3cca8a104c8179896c1e837b41d2a29cf9

See more details on using hashes here.

File details

Details for the file zarinpal_payment-0.0.5-py3-none-any.whl.

File metadata

File hashes

Hashes for zarinpal_payment-0.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 846ddd72f7b0fce3ae8b39854dd0a801e2a7484abae738f191f3d340aab73ffe
MD5 bed9b602521353068c5072661d124875
BLAKE2b-256 66030ed1829642521a04a829b54e1181d8a617236c1fea193f63514ed82a3eb7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page