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 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("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 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("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.4.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.4-py3-none-any.whl (4.5 kB view details)

Uploaded Python 3

File details

Details for the file zarinpal_payment-0.0.4.tar.gz.

File metadata

  • Download URL: zarinpal_payment-0.0.4.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.4.tar.gz
Algorithm Hash digest
SHA256 88ad5683fb177b98677d35e5f78c7eb91327eaf49d17b4e71c4eef46c237482a
MD5 3f11f76da3a00008c56540c7f42f739b
BLAKE2b-256 3a8c7d2f788c8578061875cc4634eeedb12d1454b18d6cf66c107959d4341f3f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zarinpal_payment-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 7963df99d947b545d52624856dce5eb952439f7b0ff41bf8e5c7e2d3e77996bf
MD5 a45ea69c623ecdd9b01659ba184215d0
BLAKE2b-256 f13a8ae30eb3162774e31392605af57f0e1ebbfa2ef5f3ff71fc33b996fc7555

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