Chargily ePay Gateway (Django Package)
you can find more about Here
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!
pip install chargily-epay-Django
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
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
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
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
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
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
- Make a fork of this repo.
- Take a tour to our API documentation here
- Get your API Key/Secret from ePay by Chargily dashboard for free.
- Start developing.
- Finished? Push and merge.