Skip to main content

CloudPayments Python Async Library

Project description

aiocloudpayments

Python Async CloudPayments Library

Client Basic Usage Example

from datetime import date

from aiocloudpayments import AioCpClient


async def main():
    client = AioCpClient(PUBLIC_ID, API_SECRET)

    await client.test()

    await client.charge_card(
        amount=10,
        currency="RUB",
        invoice_id="1234567",
        ip_address="123.123.123.123",
        description="Payment for goods in example.com",
        account_id="user_x",
        name="CARDHOLDER NAME",
        card_cryptogram_packet="01492500008719030128SMfLeYdKp5dSQVIiO5l6ZCJiPdel4uDjdFTTz1UnXY+3QaZcNOW8lmXg0H670MclS4lI+qLkujKF4pR5Ri+T/E04Ufq3t5ntMUVLuZ998DLm+OVHV7FxIGR7snckpg47A73v7/y88Q5dxxvVZtDVi0qCcJAiZrgKLyLCqypnMfhjsgCEPF6d4OMzkgNQiynZvKysI2q+xc9cL0+CMmQTUPytnxX52k9qLNZ55cnE8kuLvqSK+TOG7Fz03moGcVvbb9XTg1oTDL4pl9rgkG3XvvTJOwol3JDxL1i6x+VpaRxpLJg0Zd9/9xRJOBMGmwAxo8/xyvGuAj85sxLJL6fA==",
        payer=Person(
            first_name="Test",
            last_name="Test",
            middle_name="Test",
            birth=date(1998, 1, 16),
            address="12A, 123",
            street="Test Avenue",
            city="LosTestels, City of Test Angels",
            country="Testland",
            phone="+1 111 11 11",
            post_code="101011010"
        )
    )

    await client.disconnect()

AiohttpDispatcher Basic Usage Example

from aiocloudpayments import AiohttpDispatcher, Result
from aiocloudpayments.types import PayNotification, CancelNotification, CheckNotification


CERT_FILE = "cert.pem"
CERT_FILE = "pkey.pem"


def main():
    dp = AiohttpDispatcher()

    # router is not needed here, but I am just showing the logic
    router = Router()

    # register with router
    @router.cancel(lambda n: 5 > n.amount > 1)
    async def foo(notification: CancelNotification):
        print(f"{notification=}")
        # return {"result": 0}
        return Result.OK

    # register with router
    @router.pay(lambda n: n.amount <= 1)
    async def foo(notification: PayNotification):
        print(f"{notification.amount=}")
        # return {"result": 0}
        return Result.OK
        
   # register with router
    @router.check()
    async def foo(notification: CheckNotification):
        print(f"{notification.amount=}")
        # return {"result": 12}
        return Result.WRONG_AMOUNT

    # register with dp
    @dp.cancel(lambda n: n.amount > 5)
    async def foo(notification: CancelNotification):
        print(f"{notification.amount=}, > 5")
        # if you don't return anything, Result.OK is assumed

    dp.include_router(router)

    ssl_context = SSLContext()
    ssl_context.load_cert_chain(CERT_FILE, KEY_FILE)

    dp.run_app(
        AioCpClient(PUBLIC_ID, API_SECRET),
        "/test",
        pay_path="/pay",
        cancel_path="/cancel",
        ssl_context=ssl_context,
        check_hmac=False  # disable hmac check, only use in development environments
    )

architecture inspired by aiogram

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aiocloudpayments-0.1.1.tar.gz (17.1 kB view details)

Uploaded Source

Built Distribution

aiocloudpayments-0.1.1-py3-none-any.whl (40.5 kB view details)

Uploaded Python 3

File details

Details for the file aiocloudpayments-0.1.1.tar.gz.

File metadata

  • Download URL: aiocloudpayments-0.1.1.tar.gz
  • Upload date:
  • Size: 17.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.2.2 CPython/3.10.6 Windows/10

File hashes

Hashes for aiocloudpayments-0.1.1.tar.gz
Algorithm Hash digest
SHA256 2b423a117eff3513d4228a1c2bc4d0deef41c38b15913234c5bfc0469ec77ded
MD5 f5a1ed586b7b43d240503a388b078a90
BLAKE2b-256 9e79d284047b615a81ca0b3cd2a22fe10970152641e173445d0def81077c32bf

See more details on using hashes here.

File details

Details for the file aiocloudpayments-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for aiocloudpayments-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 0f49f846076efb1be8a06116269848d0482085cf50882d16e751c7ee45ffe8fc
MD5 62a6ce83f2a9313e2b63a7261a6fbf71
BLAKE2b-256 d3fa612170c2af0f9225837d6bece4f3a521e73dd96408acddba43c564486398

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page