Хурдан эхлэл
Суулгах
qpay-client-ийг өөрийн ашиглаж буй package manager-аар суулгана.
pip install qpay-client
эсвэл
uv add qpay-client
Async клиентээр эхлэх
Асинхрон орчинд AsyncQPayClient ашиглана.
from decimal import Decimal
from qpay_client.v2 import AsyncQPayClient, QPaySettings
from qpay_client.v2.schemas.schemas import InvoiceCreateSimpleRequest
settings = QPaySettings.sandbox()
client = AsyncQPayClient(settings=settings)
async def main():
invoice = await client.invoice_create(
InvoiceCreateSimpleRequest(
sender_invoice_no="ORDER-1001",
invoice_receiver_code="terminal",
invoice_description="Туршилтын нэхэмжлэх",
amount=Decimal("1500"),
callback_url="https://example.com/qpay/callback?payment_id=ORDER-1001",
)
)
print(invoice.invoice_id)
print(invoice.qPay_shortUrl)
Sync клиентээр эхлэх
Синхрон скрипт, background job, cron зэрэгт QPayClient ашиглахад илүү тохиромжтой.
from decimal import Decimal
from qpay_client.v2 import QPayClient, QPaySettings
from qpay_client.v2.schemas.schemas import InvoiceCreateSimpleRequest
settings = QPaySettings.sandbox()
with QPayClient(settings=settings) as client:
invoice = client.invoice_create(
InvoiceCreateSimpleRequest(
sender_invoice_no="ORDER-1002",
invoice_receiver_code="terminal",
invoice_description="Sync туршилтын нэхэмжлэх",
amount=Decimal("2500"),
callback_url="https://example.com/qpay/callback?payment_id=ORDER-1002",
)
)
print(invoice.invoice_id)
Төлбөр шалгах жишээ
payment_check endpoint нь invoice-ийн төлбөр орж ирсэн эсэхийг шалгахад түгээмэл ашиглагдана.
from qpay_client.v2.schemas.enums import ObjectType
from qpay_client.v2.schemas.schemas import Offset, PaymentCheckRequest
check_request = PaymentCheckRequest(
object_type=ObjectType.invoice,
object_id="YOUR_INVOICE_ID",
offset=Offset(page_number=1, page_limit=100),
)
result = await client.payment_check(check_request)
if result.count > 0:
print("Төлбөр олдлоо")
Production тохиргоо
Production орчинд өөрийн merchant credential-ийг ашиглана.
settings = QPaySettings.production(
username="your-merchant-username",
password="your-merchant-password",
invoice_code="YOUR_INVOICE_CODE",
)
Анхаарах зүйлс
QPaySettings()нь шууд default credential үүсгэдэггүй.sandbox()эсвэлproduction()factory ашиглана.invoice_createдээр request доторinvoice_codeөгөхгүй орхиволsettings.invoice_codeавтоматаар ашиглагдана.Public API endpoint-ууд auth-аа өөрсдөө шалгадаг тул request бүрийн өмнө токен гараар шинэчлэх шаардлагагүй.
payment_checkнь тохиргооны дагуу polling хийж болох тулpayment_check_retries-ийг өөрийн хэрэгцээнд тааруулж тохируулна.