Этот пакет позволяет легко интегрировать платежную систему Click через фреймворк Django в Python
Project description
Интеграция сервиса онлайн оплаты 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, вы можете посмотреть это видео
Спасибо за внимание!
Автор
Социальные сети
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file python-click-0.1.tar.gz.
File metadata
- Download URL: python-click-0.1.tar.gz
- Upload date:
- Size: 14.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bdb008aab1ca7ee0d1b7461d51cee8e77e3ad60d426562426dc909ac01acfa62
|
|
| MD5 |
c4771dbe44717e2ac397f6a93c37395a
|
|
| BLAKE2b-256 |
24c3361dd4d2f3f971222f733b05ef1f32de4e3d3087a8ed248f8cc9ced29d01
|
File details
Details for the file python_click-0.1-py3-none-any.whl.
File metadata
- Download URL: python_click-0.1-py3-none-any.whl
- Upload date:
- Size: 12.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9adc6cf4f2e97defd7a050ab8e853dee9fd062473e1fda7c1b0450a80618c3e5
|
|
| MD5 |
cc9ed65457a250ea3ff92087b477dbf5
|
|
| BLAKE2b-256 |
ff6f0b8d0ba95557ceb4e981c2ec4fb1359bb0bb5ca9af16aaf51d46679cbba8
|