Skip to main content

Этот пакет позволяет легко интегрировать платежную систему Click через фреймворк Django в Python

Project description

banner

Downloads Downloads Downloads Downloads Downloads

Интеграция сервиса онлайн оплаты CLICK SHOP API через фреймворк Django в Python

С помощью пакет python-click вы сможете очень легко интегрировать платежную систему CLICK SHOP API. Используйте версию 0.1 для интеграции CLICK SHOP API. В этом руководстве показано, как интегрировать систему оплаты CLICK SHOP API. Через этот «CLICK SHOP API» вы сможете получать платежи за различные товары, услуги и покупки в Интернет Магазине. Более подробная информация об интеграции находится на официальной документации OOO "Click"

Необходимые пакеты

Django - свободный фреймворк для веб-приложений на языке Python, использующий шаблон проектирования MVC.

Django REST framework - это мощный и гибкий инструментарий для создания веб-приложений.

Установка

Установите с помощью pip, включая любые дополнительные пакеты, которые вы хотите...

pip install python-click==0.1

...или клонируйте проект с github

git clone https://github.com/yakubov9791999/python-click.git

Создадим новое приложение с названием basic

python manage.py startapp basic

Имя приложении не обязательно должно быть basic. Вы можете использовать любое имя, которое хотите

Поместите это в settings.py

INSTALLED_APPS = [
    ...
    'pyclick',
    'rest_framework',
    'basic',
]

CLICK_SETTINGS = {
    'service_id': "<Ваш сервис ID>",
    'merchant_id': "<Ваш merchant ID>",
    'secret_key': "<Ваш секретный ключ>",
    'merchant_user_id': "<Ваш merchant user ID>",
}

Примечание: Эти информации будет предоставлена ​​вам после того, как вы подписали контракт с OOO «Click»

В приложении basic в models.py создайте новую модель ClickOrder, с помощью этой модели мы можем создать заказ

from django.db import models

class ClickOrder(models.Model):
    is_paid = models.BooleanField(default=False)
    amount = models.DecimalField(decimal_places=2, max_digits=12)

В приложении basic создайте serializers.py, потом поместите эти коды

from rest_framework import serializers
from .models import ClickOrder

class ClickOrderSerializer(serializers.ModelSerializer):
    class Meta:
        model = ClickOrder
        fields = ["amount", "is_paid"]

В приложении basic в views.py создайте новый класс CreateClickOrderView,OrderCheckAndPayment и OrderTestView. C помощью CreateClickOrderView класса мы создадим заказ, после этого система Click проверяет наш заказ с помощью классы OrderCheckAndPayment и OrderTestView. Чтобы получить больше информации, переходите по этой ссылке Документация Click.

from django.shortcuts import redirect
from rest_framework.generics import CreateAPIView
from basic import serializers
from basic.models import ClickOrder
from pyclick import PyClick
from pyclick.views import PyClickMerchantAPIView


class CreateClickOrderView(CreateAPIView):
    serializer_class = serializers.ClickOrderSerializer

    def post(self, request, *args, **kwargs):
        amount = request.POST.get('amount')
        order = ClickOrder.objects.create(amount=amount)
        return_url = 'http://127.0.0.1:8000/'
        url = PyClick.generate_url(order_id=order.id, amount=str(amount), return_url=return_url)
        return redirect(url)


class OrderCheckAndPayment(PyClick):
    def check_order(self, order_id: str, amount: str):
        if order_id:
            try:
                order = ClickOrder.objects.get(id=order_id)
                if int(amount) == order.amount:
                    return self.ORDER_FOUND
                else:
                    return self.INVALID_AMOUNT
            except ClickOrder.DoesNotExist:
                return self.ORDER_NOT_FOUND

    def successfully_payment(self, order_id: str, transaction: object):
        """ Эта функция вызывается после успешной оплаты """
        try:
            order = ClickOrder.objects.get(id=order_id)
            order.is_paid = True
            order.save()
        except ClickOrder.DoesNotExist:
            print(f"no order object not found: {order_id}")


class OrderTestView(PyClickMerchantAPIView):
    VALIDATE_CLASS = OrderCheckAndPayment

Добавьте следующее в свой корневой каталог urls.py файл.

from django.urls import include

urlpatterns = [
    ...
    path('', include('basic.urls')),
]

В приложении basic создайте urls.py, потом поместите эти коды

from django.urls import path
from basic import views

urlpatterns = [
    path('', views.CreateClickOrderView.as_view()),
    path('click/transaction/', views.OrderTestView.as_view()),
]

Выполните команды makemigrations и migrate

python manage.py makemigrations
python manage.py migrate

Теперь вы можете создать заказ в своем браузере по адресу http://127.0.0.1:8000/ . Получим сумму заказа 500 сумов.

Предупреждение: Если вы создадите сумму по-другому, произойдет ошибка при локальном тестировании через тестовое программное обеспечение.

Обратите внимание, что после создания заказа мы перейдем на сайт http://my.click.uz

Но нам нужно сначала проверить заказ локально для этого мы можем использовать данное программное обеспечение. Мы просто получаем номер заказа и закрываем вкладку, начинаем проверку локально через программное обеспечение.

Предупреждение: Если вы используете базу данных SQLite, вы можете получить ошибку OverflowError, поэтому мы рекомендуем использовать другую базу данных. Например: MySQL или PostgreSQL


Введите в Prepare URL и Complete URL http://localhost:8000/click/transaction/?format=json. Заполните service_id, merchant_user_id, secret_key информацией, предоставленной "CLICK", в merchant_trans_id введите номер заказа. После этого начинайте проверить заказа.

Это программное обеспечение проверяет заказ с помощью нескольких запросов. Всего существует 15 сценариев. В каждом сценарии отправляется разная информация, и заказ проверяется. Подробнее здесь

Примечание: После сценариев 7 и 11 программа останавливается. Выберите следующий сценарий и продолжите тестирование

Если у вас успешно прошли 15 сценариев, то ваши коды готовы к интеграции с платежной системой CLICK.

Для более подробной информации, production интеграция с системой CLICK, настройка личного кабинета и для проверки заказа через систему Merchant CLICK, вы можете посмотреть это видео

Watch the video

Спасибо за внимание!

Автор

Sirojiddin Yakubov

Социальные сети

Подпишитесь на нас, чтобы получать больше новостей о веб-программировании:
YouTube | Instagram | Facebook | TikTok | Telegram

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

python-click-0.1.tar.gz (14.1 kB view hashes)

Uploaded Source

Built Distribution

python_click-0.1-py3-none-any.whl (12.3 kB view hashes)

Uploaded Python 3

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