Skip to main content

A simple library to setup payment integration with CCAvenue

Project description

pay_ccavenue

A Python package for seamless integration with CCAvenue payment gateway.

Features

  • Easy-to-use API for CCAvenue integration
  • Secure encryption and decryption of payment data
  • Flexible configuration via environment variables or direct instantiation
  • Type hints for better code reliability

Current Limitations

  • This package does not yet support iframe integration with CCAvenue. It currently provides basic encryption and decryption functionality for standard integration.

Installation

Install the package using pip:

pip install pay_ccavenue

Quick Start

  1. Import the CCAvenue class:
from pay_ccavenue import CCAvenue
  1. Initialize the CCAvenue object:
# Using environment variables
ccavenue = CCAvenue()

# Or, passing credentials directly
ccavenue = CCAvenue(
    working_key="YOUR_WORKING_KEY",
    access_code="YOUR_ACCESS_CODE",
    merchant_code="YOUR_MERCHANT_CODE",
    redirect_url="YOUR_REDIRECT_URL",
    cancel_url="YOUR_CANCEL_URL"
)
  1. Encrypt payment data:
form_data = {
    "order_id": "123456",
    "amount": "1000.00",
    "currency": "INR",
    # Add other required fields
}

encrypted_data = ccavenue.encrypt(form_data)
  1. Decrypt response data:
response_data = {
    "encResp": "ENCRYPTED_RESPONSE_FROM_CCAVENUE"
}

decrypted_data = ccavenue.decrypt(response_data)
  1. Handle Webhook/Notification:
# In your webhook endpoint
webhook_payload = request.form  # Get the POST data
webhook_data = ccavenue.process_webhook(webhook_payload)

if webhook_data.order_status == "Success":
    print(f"Order {webhook_data.order_id} was successful")
    print(f"Tracking ID: {webhook_data.tracking_id}")
    print(f"Bank Ref: {webhook_data.bank_ref_no}")
elif webhook_data.risk_status == "High":
    print(f"Warning: High risk transaction {webhook_data.tracking_id}")
    print(f"Reason: {webhook_data.risk_reason}")

Configuration

Environment Variables

Set the following environment variables to configure the package:

  • CCAVENUE_WORKING_KEY: Your CCAvenue working key
  • CCAVENUE_ACCESS_CODE: Your CCAvenue access code
  • CCAVENUE_MERCHANT_CODE: Your CCAvenue merchant code
  • CCAVENUE_REDIRECT_URL: URL to redirect after successful payment
  • CCAVENUE_CANCEL_URL: URL to redirect after cancelled payment

Direct Instantiation

Pass the configuration parameters directly when creating the CCAvenue object:

ccavenue = CCAvenue(
    working_key="YOUR_WORKING_KEY",
    access_code="YOUR_ACCESS_CODE",
    merchant_code="YOUR_MERCHANT_CODE",
    redirect_url="YOUR_REDIRECT_URL",
    cancel_url="YOUR_CANCEL_URL"
)

API Reference

CCAvenue Class

Methods

  • encrypt(data: Dict[str, Any]) -> str: Encrypts the payment data
  • decrypt(data: Dict[str, str]) -> Dict[str, str]: Decrypts the response data
  • process_webhook(response_body: Dict[str, str]) -> CCavenueWebhookData: Decrypts and processes webhook data

CCavenueFormData Class

Represents the form data required for CCAvenue payment processing. It includes mandatory and optional fields, and provides methods for data manipulation and validation.

Important Fields

  • merchant_id: CCAvenue merchant ID
  • order_id: Unique order identifier
  • currency: Payment currency (default: "INR")
  • amount: Payment amount
  • redirect_url: URL for successful payment redirection
  • cancel_url: URL for cancelled payment redirection

For a complete list of fields, refer to the CCavenueFormData class documentation.

Security Considerations

  • The package uses AES encryption with CBC mode for secure communication with CCAvenue.
  • Ensure that your working key and other sensitive information are kept secure and not exposed in your codebase.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Disclaimer

This package is not officially associated with CCAvenue. Use it at your own risk and ensure compliance with CCAvenue's terms of service.

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

pay_ccavenue-1.1.0.tar.gz (6.6 kB view details)

Uploaded Source

Built Distribution

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

pay_ccavenue-1.1.0-py3-none-any.whl (9.0 kB view details)

Uploaded Python 3

File details

Details for the file pay_ccavenue-1.1.0.tar.gz.

File metadata

  • Download URL: pay_ccavenue-1.1.0.tar.gz
  • Upload date:
  • Size: 6.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.1 CPython/3.12.1 Linux/6.11.0-1018-azure

File hashes

Hashes for pay_ccavenue-1.1.0.tar.gz
Algorithm Hash digest
SHA256 661eb89f3721fcc4a2a2cb58ec1144649f3c9688d5ba68c127b3ee876f41c543
MD5 4ee5099ac41be86f026bc6af0cb3cf26
BLAKE2b-256 aeda01643d92e11821e0d2dbfa449109c6e62a7889699a26042dcfb6f4892e4b

See more details on using hashes here.

File details

Details for the file pay_ccavenue-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: pay_ccavenue-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 9.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.1 CPython/3.12.1 Linux/6.11.0-1018-azure

File hashes

Hashes for pay_ccavenue-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b64dfb8ab0dbc3036bc9656c3b17bece8d93d1044f01df6a95ac6bc7e7f4c5a6
MD5 a9c7cdb3e4c5426ad925d3e3ac5655a5
BLAKE2b-256 737bcfb825cf17b2ab6415de67207cf146b4793c05028062497ead53131c9a0d

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