Docs API

Intégrations

WooCommerce

Le plugin officiel ajoute Mobile Money (MTN, Moov, Orange, Wave, Coris, Free, Togocom…) et carte bancaire au tunnel de commande WooCommerce, sans ligne de code côté boutique. Il s'appuie entièrement sur l'API publique v1 : tout ce que vous lisez dans cette documentation s'applique à ce qu'il fait en coulisses. Code source : github.com/lkousse/asukapay_woocommerce.

Ce que ce n'est pas

Pour le Mobile Money, le plugin ne redirige jamais le client vers une page hébergée : le numéro (et le code OTP si l'opérateur l'exige) sont saisis directement dans le tunnel WooCommerce. Seule la carte bancaire redirige, vers la payment_url renvoyée par POST /payments — c'est incontournable pour la capture des données bancaires.

Installation

Télécharger le plugin (.zip) Dernière version — historique des versions

  1. Dans WordPress : Extensions → Ajouter → Téléverser une extension, sélectionnez le zip téléchargé ci-dessus.
  2. Installer maintenant, puis activez AsukaPay pour WooCommerce.
  3. Allez dans WooCommerce → Réglages → Paiements → AsukaPay.
HTTPS obligatoire

La boutique doit être servie en HTTPS. Sans certificat valide, AsukaPay ne peut pas livrer les webhooks qui confirment vos paiements Mobile Money — voir Webhooks.

Configuration

Renseignez vos clés secrètes — une paire production (sk_…) et/ou une paire test (sk_test_…), au tableau de bord AsukaPay sous Développeurs → Clés API. La case Mode test détermine laquelle des deux le plugin utilise ; comme pour l'API, l'environnement suit la clé, pas un réglage séparé.

À chaque enregistrement des réglages, le plugin appelle lui-même PUT /webhooks/endpoint pour chaque clé renseignée, et conserve le secret renvoyé. Vous n'avez rien à recopier dans le tableau de bord : l'URL de notification (/wp-json/asukapay/v1/webhook sur votre domaine) est déclarée automatiquement, séparément pour la production et le test.

Catalogue d'opérateurs

Le tunnel de commande interroge GET /payment-modes (mis en cache une heure) pour construire la liste déroulante d'opérateurs : ce que le client voit reflète exactement ce qui est actif sur votre compte, pas une liste figée dans le plugin. Un opérateur marqué requires_otp: true — coris, orange_bf, wave_bf, orange_sn à ce jour, voir Opérateurs à code OTP — fait apparaître un champ de code supplémentaire au moment de payer.

Cycle de vie d'une commande

ÉvénementStatut WooCommerce
Le client valide le tunnel (Mobile Money ou carte) on-hold — POST /payments a été appelé, réponse en attente
Webhook payment.succeeded Commande marquée payée (processing/completed selon vos réglages WooCommerce)
Webhook payment.failed failed
Webhook payment.refunded refunded

Le passage à on-hold plutôt que processing reflète l'API : un paiement Mobile Money est asynchrone, le client valide sur son téléphone pendant que votre serveur attend la notification. Voir Votre premier paiement pour le détail des statuts.

Remboursements

Un remboursement lancé depuis Commandes → Rembourser appelle POST /payments/{reference}/refund avec la clé de l'environnement où le paiement d'origine a été pris — production et test restent séparés même si vous avez basculé le réglage entre-temps. Voir Remboursements pour les règles côté API (remboursement intégral uniquement, paiement déjà validé).

Limites connues

  • Une seule devise à la fois : celle de la boutique WooCommerce, envoyée telle quelle à l'API.
  • Pas de lien de paiement ni de paiement échelonné dans cette première version : le plugin couvre l'encaissement direct au passage en caisse.
  • Les limites de montant par opérateur s'appliquent normalement — un panier hors plage renvoie l'erreur AsukaPay telle quelle sur la page de paiement.