Atmos Integratsiyasi
Atmos O'zbekistondagi mashhur to'lov tizimi. Bu qo'llanma Atmos ni PayTechUZ bilan qanday integratsiya qilishni ko'rsatadi.
O'rnatish
pip install paytechuz
Asosiy foydalanish
Shlyuz yaratish
import os
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 test uchun, False production uchun
)
To'lov yaratish
payment = gateway.create_payment(
account_id="12345", # Hisob-faktura ID
amount=50000, # 500.00 UZS (tiyinda)
)
print(f"Payment URL: {payment['payment_url']}")
# Foydalanuvchini payment['payment_url'] ga yo'naltiring
To'lov holatini tekshirish
status = gateway.check_payment("transaction_id")
print(f"Status: {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:
# To'lov muvaffaqiyatli
print("To'lov muvaffaqiyatli!")
return response
Django Integratsiyasi
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 Integratsiyasi
from fastapi import FastAPI, Request
from paytechuz.gateways.atmos import AtmosGateway
from paytechuz.gateways.atmos.webhook import AtmosWebhookHandler
import os
import json
app = FastAPI()
# Shlyuz yaratish
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)