معرفی شرکت ها


chargily-epay-gateway-django-plugin-0.1


Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر

توضیحات

-
ویژگی مقدار
سیستم عامل -
نام فایل chargily-epay-gateway-django-plugin-0.1
نام chargily-epay-gateway-django-plugin
نسخه کتابخانه 0.1
نگهدارنده []
ایمیل نگهدارنده []
نویسنده Chargily
ایمیل نویسنده chargily@gmail.com
آدرس صفحه اصلی https://github.com/BeleganStartup/epay-gateway-django
آدرس اینترنتی https://pypi.org/project/chargily-epay-gateway-django-plugin/
مجوز MIT
# epay-gateway-django Chargily ePay Gateway (Django Package) ![Chargily ePay Gateway](https://raw.githubusercontent.com/Chargily/epay-gateway-php/main/assets/banner-1544x500.png "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! # Requirements 1. Python 2.7 or higher. 2. Django 1.11 or higher. 3. API Key/Secret from [ePay by Chargily](https://epay.chargily.com.dz) dashboard for free. 4. Our package ![chargily-epay-gateway](https://pypi.org/project/chargily-epay-gateway/ "Chargily ePay Gateway package") for python. # Installation Using pip ```bash pip install chargily-epay-gateway-django-plugin ``` or pipenv ```bash pipenv install chargily-epay-gateway-django-plugin ``` # Quick start 1- Make sure to secure your credentials by setting up the Environment Variables or using `.env` file. 2- Load `CHARGILY_APP_KEY` and `CHARGILY_APP_SECRET` environment variables in settings.py file. # Usage 1- Make Payment: - You can use class or function based view to make a payment - If you are using `POST` method, make sure to *disable Django's CSRF validation*. * Class based View Example - In `views.py` : ```python from django.shortcuts import render from chargily_epay_gateway_django.views import InvoiceView from chargily_epay_gateway_django.forms import InvoiceForm # You can customize this form if you like class MakePayment(InvoiceView): def get(self, request): form = InvoiceForm() context = { 'form': form, } return render(request, 'payment.html', context) def post(self, request): form = InvoiceForm(data=request.POST) context = { 'form': form, 'data': None, 'errors': None, } if form.is_valid(): invoice = self.make_payment(**form.data) response = self.load_invoice(invoice.content) if invoice.status_code == 201: context['data'] = response['checkout_url'] else: context['errors'] = [value for value in response['errors'].items()] return render(request, 'payment.html', context) ``` Output example: * Wrong inputs ![Wrong inputs](https://scontent.fist4-1.fna.fbcdn.net/v/t1.15752-9/279546536_515119966919096_4807134273052621412_n.png?_nc_cat=105&ccb=1-5&_nc_sid=ae9488&_nc_ohc=liw7awHFEYQAX-2qawy&_nc_ht=scontent.fist4-1.fna&oh=03_AVJIc7iZ4U5-QziGdKiYJhWi0Sz93TfSb1bHgYvOwZ-P4Q&oe=6296BE5C "Wrong inputs") * Correct inputs ![Correct inputs](https://scontent.fist4-1.fna.fbcdn.net/v/t1.15752-9/278810906_1152322268902183_4302638377087918631_n.png?_nc_cat=101&ccb=1-5&_nc_sid=ae9488&_nc_ohc=pr6kUJl0AHEAX_S6Ruj&_nc_ht=scontent.fist4-1.fna&oh=03_AVKEw5KRilzBeuIE-Ei37tLwuWaq-z1_CT-Jn8WTeZ_z0A&oe=629821F9 "Correct inputs") > You can use `CSRFExemptInvoiceView` instead of `InvoiceView` if you want to ignore csrf validation. - in `payment.html`: ```html <form method="POST" > {% csrf_token %} {{form.as_p}} <input type="submit" value="MAKE PAYMENT"> <!-- Handle Data --> {% if data %} <p><a target='__blank' href='{{data}}'>{{data}}</a></p> {% endif %} <!-- Handle Errors --> {% if errors %} <ul> {% for error in errors %} <li>{{error}}</li> {% endfor %} </ul> {% endif %} </form> ``` - If you want to return JSON instead, you can use it like this: ```Python from django.http import JsonResponse from chargily_epay_gateway_django.views import InvoiceView class MakePayment(InvoiceView): def post(self, request): invoice = self.make_payment( # You can use InvoiceForm client='Client Name', client_email='Client Email', invoice_number='Invoice ID', amount='Amount', discount='Discount', back_url='https://example.com/', webhook_url='https://example.com/webhook/', mode="CIB", comment='for integration test', ) return JsonResponse(self.load_invoice(invoice.content)) ``` * Function based view ```python from django.http import JsonResponse from django.views.decorators.csrf import csrf_exempt from chargily_epay_gateway.api import make_payment @csrf_exempt def invoice(request): if request.method != 'POST': return JsonResponse({'message': 'Method {} not allowed'.format(request.method)}, status=403) response = make_payment( # You can use InvoiceForm client='Client Name', client_email='Client Email', invoice_number='Invoice ID', amount='Amount', discount='Discount', back_url='https://example.com/', webhook_url='https://example.com/webhook/', mode="CIB", comment='for integration test', ) return JsonResponse(response.json(), status=response.status_code) ``` 2- Webhook Usage: ```python from django.http import JsonResponse from chargily_epay_gateway_django.views import WebhookView from chargily_epay_gateway.utils import signature_is_valid class ChargilyReceiver(WebhookView): def post(self, request): valid_signature = signature_is_valid(self.SECRET_KEY, request) if valid_signature: ... # Do whatever you want return JsonResponse({}, status=200) ``` 3- Don't forget to register your views in urls.py ```python from django.urls import path from your_app.views import MakePayment, ChargilyReceiver urlpatterns = [ path('payment/', MakePayment.as_view(), name='payment'), path('webhook/', ChargilyReceiver.as_view(), name='webhook'), ] ``` # Configurations - Available Configurations | key | description | redirect url | process url | |-----------------------|-------------------------------------------------------------------------------------------------------|--------------|--------------| | CHARGILY_APP_KEY | must be string given by organization | required | required | | CHARGILY_APP_SECRET | must be string given by organization | required | required | | back_url | must be string and valid url | required | not required | | webhook_url | must be string and valid url _| required | required | | mode | must be in **CIB**,**EDAHABIA** | required | not required | | invoice_number | string or int | required | not required | | client_name | string | required | not required | | clientEmail | must be valid email This is where client receive payment receipt after confirmation | required | not required | | amount | must be numeric and greather or equal than 75 | required | not required | | discount | must be numeric and between 0 and 99 (discount in %) | required | not required | | description | must be string_ | required | not required | # Notice - If you faced Issues [Click here to open one](https://github.com/Chargily/epay-gateway-django)


نحوه نصب


نصب پکیج whl chargily-epay-gateway-django-plugin-0.1:

    pip install chargily-epay-gateway-django-plugin-0.1.whl


نصب پکیج tar.gz chargily-epay-gateway-django-plugin-0.1:

    pip install chargily-epay-gateway-django-plugin-0.1.tar.gz