Aller au contenu

Utilisation de base

Exemple complet : sélectionner un provider, initier un paiement, vérifier le statut.

Code

import asyncio
from paygate_africa.factory import PaymentProviderPath, select_provider


class SampleTransaction:
    id = "TXN-001"
    amount = 5000.0
    currency = "XOF"
    description = "Pack Multi-Business PDF"
    user_name = "Kouamé Yao"
    user_email = "kouame@example.com"
    user_phone = "+22500000000"


async def main():
    tx = SampleTransaction()

    # 1. Charger le provider
    provider = select_provider(PaymentProviderPath.CINETPAY)

    # 2. Initier le paiement → URL de redirection
    payment_url = await provider.initiate_payment(tx)
    print(f"Rediriger l'utilisateur vers : {payment_url}")

    # 3. Vérifier après le callback webhook
    result = await provider.verify_payment(tx.id)
    print(f"Statut : {result['status']}")


asyncio.run(main())

Changer de provider

Il suffit de changer l'enum sans toucher au reste du code :

provider = select_provider(PaymentProviderPath.KKIAPAY)

Sélection dynamique depuis la config

import os
from paygate_africa.factory import PaymentProviderPath, select_provider, validate_payment_provider

name = validate_payment_provider(os.environ.get("PAYMENT_PROVIDER", "cinetpay"))
provider = select_provider(PaymentProviderPath[name])