Skip to main content

Connecteur asynchrone pour les paiements FedaPay

Project description

FedaPay Connector

FedaPay Connector est un connecteur asynchrone pour interagir avec l'API FedaPay. Il permet de gérer les paiements, les statuts des transactions, et les webhooks.

Installation

pip install fedapay_connector

Utilisation

from fedapay_connector import Pays, MethodesPaiement, FedapayConnector, PaiementSetup, UserData, EventFutureStatus, PaymentHistory, WebhookHistory
import asyncio

async def main():

    # Creation des callbacks
    async def payment_callback(data:PaymentHistory):
            print(f"Callback de paiement reçu : {data.__dict__}")

    async def webhook_callback(data:WebhookHistory):
        print(f"Webhook reçu : {data.__dict__}")

    # Creation de l'instance Fedapay Connector
    fedapay = FedapayConnector(listen_for_webhook= True) 

    # Configuration des callbacks
    fedapay.set_payment_callback_function(payment_callback)
    fedapay.set_webhook_callback_function(webhook_callback)

    # Démarrage du listener interne
    fedapay.start_webhook_server()

    # Configuration du paiement
    setup = PaiementSetup(pays=Pays.benin, method=MethodesPaiement.mtn_open)
    client = UserData(nom="john", prenom="doe", email="myemail@domain.com", tel="+22962626262")

    # Initialisation du paiement
    resp = await fedapay.fedapay_pay(setup=setup, client_infos=client, montant_paiement=1000)
    print(resp.model_dump())

    # Finalisation du paiement
    future_event_status, data_list = await fedapay.fedapay_finalise(resp.id_transaction)
        if future_event_status == EventFutureStatus.TIMEOUT:
            ### Vérification manuelle du statut de la transaction si webhook non reçu
            print("\nLa transaction a expiré. Vérification manuelle du statut...\n")
            print("\nVérification manuelle du statut de la transaction...\n")
            status = await fedapay.fedapay_check_transaction_status(resp.id_transaction)
            print(f"\nStatut de la transaction : {status.model_dump()}\n")

            ### Cas d'annulation par l'utilisateur
        elif future_event_status == EventFutureStatus.CANCELLED:
            print("\nTransaction annulée par l'utilisateur\n")

            ### Cas de reception d'une webhook valide
        else:
            ### On a future_event_status == EventFutureStatus.RESOLVED dans ce cas ce qui indique la reception d'une webhook valide PAS QUE LE PAIEMENT AI ETE APROUVER.
            ### Il faudra implementer par la suite votre gestion des webhook pour la validation ou tout autre traitement du paiement effectuer à partir de la liste d'objet WebhookTransaction reçu.
            print("\nTransaction réussie\n")
            print(f"\nDonnées finales : {data_list}\n")

if __name__ == "__main__":
    asyncio.run(main())

Configuration

Fedapay Connector à besoin de certaines variable environement qui peuvent toutes fois etre passées lors de son execution si non presente en variable environement. Il s'agit de:

API_KEY : Clé api disponible dans l'onglet Api sur votre pannel Fedapay API_URL : Url api fedapay (sandbox ou live) FEDAPAY_AUTH_KEY : Clé secrete de la webhook configuré disposible dans votre pannel Fedapay ENDPOINT_NAME : Nom attendu pour le point terminaison exposé par le serveur interne

Aussi vous aure besoin d'ajouter la clé "agregateur" associé à la valeur "Fedapay" si vous utiliser le serveur interne pour recevoir les webhooks.

Par defaut le serveur interne utilise le port 3000 qui peut etre modifier lors de la creation de l'instance.

Pour que Fedapay puisse accéder a votre serveur interne vous devrez exposé le port utiliser par ce dernier dans vos regles de parfeu et soit herberger votre application sur un serveur cloud ou utilisé d'autre solution pour rendre votre machine accessible depuis internet.

Licence

Ce projet est sous licence GNU Affero General Public License v3.0 or later (AGPL-3.0-or-later). Consultez le fichier LICENSE pour plus d'informations.

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

fedapay_connector-1.1.1.tar.gz (13.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fedapay_connector-1.1.1-py3-none-any.whl (15.5 kB view details)

Uploaded Python 3

File details

Details for the file fedapay_connector-1.1.1.tar.gz.

File metadata

  • Download URL: fedapay_connector-1.1.1.tar.gz
  • Upload date:
  • Size: 13.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for fedapay_connector-1.1.1.tar.gz
Algorithm Hash digest
SHA256 e9b37563e89ceed828433e78170701daf92253c6e661372c18d9a90f57b4a4c6
MD5 3012e4ee3d4398f2895eb15161da368d
BLAKE2b-256 a3a2cf04cc1ab02126f71ae8f82d580efbc530f61083380bda03e4e3c9e2ac2d

See more details on using hashes here.

File details

Details for the file fedapay_connector-1.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for fedapay_connector-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 cb257fc164d27327fc18b404b4f154997b9496c1a3aa0db624abbf1f01e59b48
MD5 15a5b78736125b876b4b66d427037557
BLAKE2b-256 4ed805cf84725daa65641cc86a46a134d48f3a19ede16f182f9f7508ce97198e

See more details on using hashes here.

Supported by

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