Skip to main content

Chargily ePay Gateway (Django Library)

Project description

epay-gateway-django

Chargily ePay Gateway (Django Package)

Documentation

you can find more about Here

Chargily ePay Gateway

This Plugin is to integrate ePayment gateway with Chargily easily.

  • Currently support payment by CIB / EDAHABIA cards and soon by Visa / Mastercard
  • This repo is recently created for Django plugin, If you are a developer and want to collaborate to the development of this plugin, you are welcomed!

Installation

pip install chargily-epay-Django

Create Payment model

to create a payment model you need to extend one of the following classes AbstractPayment, AnonymPayment, AnonymPayment.

from chargily_epay_django.models import AnonymPayment

class Payment(AnonymPayment):
    webhook_url = 'payment-confirmation' # reverse url
    back_url = 'payment-status' # reverse url

CreatePaymentView

you can create a new Payment using CreatePaymentView, this class extends from CreateView

# views.py
from django.forms import ModelForm

from chargily_epay_django.views import CreatePaymentView

from my_app.models import Payment

class PaymentForm(ModelForm):
    class Meta:
        model = Payment
        fields = ['client', 'client_email', 'amount', 'mode', 'comment']

class CreatePayment(CreatePaymentView):
    template_name: str = "payment/payment-template.html"
    form_class = PaymentForm

Example

payment

PaymentConfirmationView

if you want to confirme payment you can use PaymentConfirmationView view, this view responsable for reciving payment confirmation from third party.

# views.py
# .....
from chargily_epay_django.views import CreatePaymentView, PaymentConfirmationView

# .....

class PaymentConfirmation(PaymentConfirmationView):
    model = Payment

PaymentObjectStatusView, Or PaymentObjectDoneView

to check payment status you can use PaymentObjectStatusView, Or PaymentObjectDoneView check the doc to see dirence

# views.py
# .....
from chargily_epay_django.views import CreatePaymentView, PaymentConfirmationView, PaymentObjectDoneView
# .....

class PaymentStatus(PaymentObjectDoneView):
    template_name: str = "payment/payment-status.html"
    model = Payment

Example

payment

FakePayment

if you are working in Devlopment mode you can use FakePaymentView all you need to do is to create a view and extend this class and add FakePaymentMixin , to Payment model

# models.py

from chargily_epay_django.models import AnonymPayment, FakePaymentMixin

class Payment(FakePaymentMixin,AnonymPayment):
    webhook_url = 'payment-confirmation' # reverse url
    back_url = 'payment-status' # reverse url
    fake_payment_url = "fake-payment" # reverse url
# view 
from chargily_epay_django.views import (
    CreatePaymentView,
    PaymentConfirmationView,
    PaymentObjectDoneView,
    FakePaymentView
)

class FakePayment(FakePaymentView):
    model = Payment

Example

fake_payment

Result

we now can CREATE, UPDATE and READ payment using this few lines of code.

Note: you still have to configure settings, and urls.py

# models.py

from chargily_epay_django.models import AnonymPayment, FakePaymentMixin

class Payment(FakePaymentMixin,AnonymPayment):
    webhook_url = 'payment-confirmation' # reverse url
    back_url = 'payment-status' # reverse url
    fake_payment_url = "fake-payment" # reverse url
# views.py

from django.forms import ModelForm

from chargily_epay_django.views import (
    CreatePaymentView,
    PaymentConfirmationView,
    PaymentObjectDoneView,
    FakePaymentView

)

from my_app.models import Payment

# FORM
class PaymentForm(ModelForm):
    class Meta:
        model = Payment
        fields = ['client', 'client_email', 'amount', 'mode', 'comment']

# VIEWS
class CreatePayment(CreatePaymentView):
    template_name: str = "payment/payment-template.html"
    form_class = PaymentForm


class PaymentConfirmation(PaymentConfirmationView):
    model = Payment


class PaymentStatus(PaymentObjectDoneView):
    template_name: str = "payment/payment-status.html"
    model = Payment

class FakePayment(FakePaymentView):
    model = Payment

Example

check this example sponsor site

Contribution tips

  1. Make a fork of this repo.
  2. Take a tour to our API documentation here
  3. Get your API Key/Secret from ePay by Chargily dashboard for free.
  4. Start developing.
  5. Finished? Push and merge.

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

chargily-epay-Django-0.0.2.tar.gz (48.9 kB view details)

Uploaded Source

Built Distribution

chargily_epay_Django-0.0.2-py3-none-any.whl (50.0 kB view details)

Uploaded Python 3

File details

Details for the file chargily-epay-Django-0.0.2.tar.gz.

File metadata

  • Download URL: chargily-epay-Django-0.0.2.tar.gz
  • Upload date:
  • Size: 48.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.8.10

File hashes

Hashes for chargily-epay-Django-0.0.2.tar.gz
Algorithm Hash digest
SHA256 7cfe23899682c670ad8fcd523ac7ae845f3f42932bf3d38b441b7a06d24672ae
MD5 a872f6d8d879ad5eef2231b5038e293c
BLAKE2b-256 fede4e4f2724a941b90b5fcc3ea042aab2fba76959a41adb07696b661757716f

See more details on using hashes here.

File details

Details for the file chargily_epay_Django-0.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for chargily_epay_Django-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 f3469ce98734e5f910c233070c155c276187cb260d9976c7abfe54675e386748
MD5 7f18a626548003e9de9b731ae8669bd9
BLAKE2b-256 e9a89c9ea39659630edbdc41794c213c16cd5439dd03b6f4ace2bef5c8e880bd

See more details on using hashes here.

Supported by

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