Skip to main content

A reusable Django app for integrating with the Sentoo payment gateway.

Project description

Django Sentoo (djsentoo)

PyPI version License: MIT

A Django app for integrating with the Sentoo payment gateway.

Overview

djsentoo is a Django reusable application that provides seamless integration with the Sentoo payment gateway service. This library simplifies the process of accepting payments, tracking transaction statuses, and handling webhook callbacks from the Sentoo payment platform.

Features

  • Simple API for creating payment transactions
  • Automatic tracking of transaction status
  • Webhook handling for payment status updates
  • Support for multiple currencies
  • QR code payment support
  • Django admin integration

Quick Start

1. Install the package

pip install djsentoo

2. Add to INSTALLED_APPS

INSTALLED_APPS = [
    # ...
    'djsentoo',
    # ...
]

3. Configure settings

# settings.py
SENTOO = {
    'SECRET': os.getenv('SENTOO_SECRET'),
    'MERCHANT_ID': os.getenv('SENTOO_MERCHANT_ID'),
    'SANDBOX': True,  # Set to False for production
    'DEFAULT_CURRENCY': 'USD',
}

4. Include URLs

# urls.py
urlpatterns = [
    # ...
    path('sentoo/', include('djsentoo.urls', namespace='djsentoo')),
    # ...
]

5. Run migrations

python manage.py migrate djsentoo

Basic Usage

Creating a payment

from djsentoo.service import SentooPaymentService

# Create a payment
service = SentooPaymentService()
response = service.create_payment(
    amount=5000,  # 50.00 in cents
    currency='USD',
    description='Payment for Order #12345',
    return_url='https://example.com/payment/return/',
    customer='customer@example.com'  # Optional
)

# Redirect to payment page
redirect(response.url)

# Or use QR code
qr_code_url = response.qr_code_url

# Store transaction ID for later reference
transaction_id = response.transaction_id

Handling webhooks

from django.dispatch import receiver
from djsentoo.signals import sentoo_transaction_status_changed
from djsentoo.models import TransactionStatusChoices

@receiver(sentoo_transaction_status_changed)
def handle_payment_update(sender, transaction, **kwargs):
    if transaction.status == TransactionStatusChoices.SUCCESS:
        # Handle successful payment
        order = Order.objects.get(payment_id=transaction.transaction_id)
        order.mark_as_paid()
        
    elif transaction.status == TransactionStatusChoices.FAILED:
        # Handle failed payment
        notify_customer_about_failed_payment(transaction)

Documentation

For detailed documentation, see the full documentation.

Support

If you encounter any issues or have questions, please open an issue on GitHub.

License

MIT License

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

djsentoo-0.2.0.tar.gz (17.4 kB view details)

Uploaded Source

Built Distribution

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

djsentoo-0.2.0-py3-none-any.whl (10.1 kB view details)

Uploaded Python 3

File details

Details for the file djsentoo-0.2.0.tar.gz.

File metadata

  • Download URL: djsentoo-0.2.0.tar.gz
  • Upload date:
  • Size: 17.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.7.5

File hashes

Hashes for djsentoo-0.2.0.tar.gz
Algorithm Hash digest
SHA256 d19bc4de2d50cffdb9b7b44f971b2af841a69e9846c318586bf4b65f5e5d2135
MD5 951ef89f78f22e03b124558728cf5700
BLAKE2b-256 10990a7ecc5d70f89876d77bfefce995419fbd979c94fbe0e0450f3187d34ea3

See more details on using hashes here.

File details

Details for the file djsentoo-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: djsentoo-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 10.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.7.5

File hashes

Hashes for djsentoo-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 378b4b4992483b41c150c1227353412ea4e9a1d0f3f910dac4e6d78de4d61387
MD5 fc4245d117acdf04d9fed8f0de46cdfc
BLAKE2b-256 e32d8804ee2488db223b9e3d52535c60cfdeec2055cab5884056d97f0f674abd

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