Skip to main content

Интеграция с Atmos

Atmos - популярная платёжная система в Узбекистане. Это руководство показывает, как интегрировать Atmos с PayTechUZ.

Установка

pip install paytechuz

Основное использование

Создание Gateway

from paytechuz.gateways.atmos import AtmosGateway

gateway = AtmosGateway(
consumer_key="your_consumer_key",
consumer_secret="your_consumer_secret",
store_id="your_store_id",
is_test_mode=True # True для тестирования, False для продакшена
)

Создание платежа

payment = gateway.create_payment(
account_id="12345", # ID заказа
amount=50000, # 500.00 UZS (в тийинах)
)

print(f"URL платежа: {payment['payment_url']}")
# Перенаправьте пользователя на payment['payment_url']

Проверка статуса платежа

status = gateway.check_payment("transaction_id")
print(f"Статус: {status['status']}")

Webhook

from paytechuz.gateways.atmos.webhook import AtmosWebhookHandler

webhook_handler = AtmosWebhookHandler(api_key="your_api_key")

def process_webhook(request_data):
response = webhook_handler.handle_webhook(request_data)

if response['status'] == 1:
# Платёж успешен
print("Платёж успешен!")

return response

Интеграция с Django

Settings.py

INSTALLED_APPS = [
# ...
'paytechuz.integrations.django',
]

PAYTECHUZ = {
'ATMOS': {
'CONSUMER_KEY': 'your_consumer_key',
'CONSUMER_SECRET': 'your_consumer_secret',
'STORE_ID': 'your_store_id',
'API_KEY': 'your_api_key',
'ACCOUNT_MODEL': 'shop.models.Order',
'ACCOUNT_FIELD': 'id',
'IS_TEST_MODE': True,
}
}

Views.py

from paytechuz.integrations.django.views import BaseAtmosWebhookView
from .models import Order

class AtmosWebhookView(BaseAtmosWebhookView):
def successfully_payment(self, params, transaction):
order = Order.objects.get(id=transaction.account_id)
order.status = 'paid'
order.save()

def cancelled_payment(self, params, transaction):
order = Order.objects.get(id=transaction.account_id)
order.status = 'cancelled'
order.save()

URLs.py

from django.urls import path
from .views import AtmosWebhookView

urlpatterns = [
path('webhooks/atmos/', AtmosWebhookView.as_view(), name='atmos_webhook'),
]

Интеграция с FastAPI

from fastapi import FastAPI, Request
from paytechuz.gateways.atmos import AtmosGateway
from paytechuz.gateways.atmos.webhook import AtmosWebhookHandler
import os
import json

app = FastAPI()

# Создание gateway
atmos = AtmosGateway(
consumer_key=os.getenv('ATMOS_CONSUMER_KEY'),
consumer_secret=os.getenv('ATMOS_CONSUMER_SECRET'),
store_id=os.getenv('ATMOS_STORE_ID'),
is_test_mode=True
)

webhook_handler = AtmosWebhookHandler(api_key=os.getenv('ATMOS_API_KEY'))

@app.post("/payment/create")
async def create_payment():
payment = atmos.create_payment(
account_id="12345",
amount=50000
)
return {"payment_url": payment['payment_url']}

@app.post("/webhooks/atmos")
async def webhook(request: Request):
body = await request.body()
data = json.loads(body.decode('utf-8'))
return webhook_handler.handle_webhook(data)

Дополнительная информация