Current collected state Current
Observed since 21 Oct, 11:47 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
aiocrystal
crystlpay easy interaction
Библиотека полностью повтраяет структуру вложоности https://docs.crystalpay.io/
Создания счета & проверка(не рекомендуеться иза лимита)
from aiocrystal import CrystalPay
from aiocrystal.utils.types import InvoiceState
import asyncio
cp=CrystalPay(auth_login='name',
auth_secret='Secret',
salt='salt'
)
async def main():
invoice=await cp.invoice.create(amount=100, description='aiocrystal<3')
invoice_id=invoice.id
print(invoice.url)
while True:
invoice_state=(await cp.invoice.info(invoice_id)).state
if InvoiceState.payed == invoice_state:
print('Succes')
break
await asyncio.sleep(5)
asyncio.run(main())
WebHook Fastapi & пример фильтров
from typing import Union
from fastapi import FastAPI
from aiocrystal.v3.async_crystal import CrystalPay
from aiocrystal.utils.types import CallbackInvoice, InvoiceState
from aiocrystal.webhook import FastApiManager
import uvicorn
import asyncio
host=''
app = FastAPI()
cp=CrystalPay(auth_login='name',
auth_secret='Secret',
salt='Salt',
webhook_manager=FastApiManager(
app_fastapi=app,
end_point_invoice='/pay/crystalpay'
)
)
# пример фильтрации
async def IsPayed(invoice: CallbackInvoice):
return invoice.rub_amount >= 100
async def AntiUnavailableIsPayed(invoice: CallbackInvoice):
return invoice.state == InvoiceState.payed
@cp.callback_invoice(IsPayed, AntiUnavailableIsPayed) #<- вохможность добавлять несколько фильтров
async def pay_cp(invoice: CallbackInvoice):
print(f'Пришло: {invoice.rub_amount}')
async def main():
invoice=await cp.invoice.create(100, callback_url=f'{host}/pay/crystalpay')
print(invoice.url)
asyncio.run(main())
uvicorn.run(app, host="localhost", port=5000)
Download counts and popularity will appear here as the collector receives them.
| Package / target | Requirement | Relationship |
|---|---|---|
aiohttpEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.13",
"evaluation": "NOT_EVALUATED"
} | aiohttp>=3.11.13 | runtime |
fastapiEnvironment{
"extras": "standard,standart",
"marker": null,
"requires_python": ">=3.13",
"evaluation": "NOT_EVALUATED"
} | fastapi[standard,standart]>=0.115.11 | runtime |
flaskEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.13",
"evaluation": "NOT_EVALUATED"
} | flask>=3.1.0 | runtime |
pydanticEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.13",
"evaluation": "NOT_EVALUATED"
} | pydantic>=2.10.6 | runtime |
requestsEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.13",
"evaluation": "NOT_EVALUATED"
} | requests>=2.32.3 | runtime |
bdist_wheel · 8.57 KB · Python py3
sdist · 7.52 KB · Python source
Observed since 21 Oct, 11:47 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package_version:892f71c19a3b2ed361fa41d4f137de7bda58a030dac0349e52251b95ea8417c5