Déclencher des événements
Produisez un véritable paiement dans la sandbox et les événements qui le suivent.
wajub trigger ne fabrique pas de payload. La commande appelle l'API de la sandbox comme votre code,
avec le numéro de test qui produit le résultat demandé, puis laisse la plateforme émettre elle-même
les événements. Votre handler reçoit donc exactement ce qu'aurait produit un véritable payeur.
$ wajub trigger payment.succeeded
Triggering payment.succeeded …
✓ created payment trx_test_VPRKcDWn0pi29ScaQL9B
✓ dispatched cm.mtn charge (+237670000000)
✓ payment trx_test_VPRKcDWn0pi29ScaQL9B is succeededLe numéro composé révèle le mécanisme : +237670000000 est le préfixe MTN Cameroun de la sandbox,
suivi du suffixe de réussite. Pour un autre résultat, la commande compose un autre suffixe.
$ wajub trigger payment.failed --amount 2500
Triggering payment.failed …
✓ created payment trx_test_PR8mmBq5bfkxqGcJRtP5
✓ dispatched cm.mtn charge (+237670000002)
✓ payment trx_test_PR8mmBq5bfkxqGcJRtP5 is failedLes huit événements
Triggerable events:
customer.created Create a customer
customer.updated Create then update a customer
payment.cancelled Create and cancel a payment (mobile money canceled)
payment.created Create a payment and leave it unpaid
payment.failed Create and fail a payment (mobile money failure)
payment.succeeded Create and complete a payment (mobile money success)
refund.failed Complete a payment whose refund deterministically fails
refund.succeeded Complete a payment then refund it (refund succeeds)Huit arguments produisent bien plus de huit événements, car chacun exécute un véritable parcours.
| Déclencheur | Numéro composé | Événements reçus par votre endpoint, dans l'ordre |
|---|---|---|
payment.created | Aucun | payment.created |
payment.failed | +237670000002 | payment.created, payment.processing, payment.failed |
payment.cancelled | +237670000004 | payment.created, payment.processing, payment.cancelled |
payment.succeeded | +237670000000 | payment.created, payment.processing, payment.succeeded, balance.updated, fee.charged |
refund.succeeded | +237670000000 | Les cinq précédents, puis refund.created, refund.succeeded, balance.updated |
refund.failed | +237670000009 | Les cinq événements du paiement, puis refund.created, refund.failed |
Le tout premier déclenchement sur un compte émet également customer.created, car la CLI crée le
client CLI Trigger qu'elle réutilise ensuite.
La chaîne est l'enseignement principal, pas un effet secondaire
Un véritable paiement se comporte de la même manière. Si votre handler traite uniquement
payment.succeeded, vous découvrez ici que quatre autres types arrivent déjà sans être traités,
et que fee.charged manquait dans votre registre.
Adapter la ressource créée
| Option | Valeur par défaut | Effet |
|---|---|---|
--amount | 5000 | Montant de la ressource créée |
--currency | XAF | Devise |
--channel | cm.mtn | Réseau à débiter. Le numéro composé prend le préfixe sandbox de cet opérateur et garde son suffixe, à partir du CLI 1.7.2 |
--phone | Déduit | Remplace le numéro du payeur. Option avancée qui détermine le résultat |
-d, --data | Champ key=value supplémentaire sur la ressource, répétable | |
--list | Affiche la liste ci-dessus et s'arrête |
wajub trigger payment.succeeded --amount 250000 --currency XOF --channel ci.orange
wajub trigger customer.created -d name="Boutique Akwa" -d [email protected]
wajub trigger payment.succeeded -d reference=order-4172 -d description="Order #4172"L'option -d reference=order-4172 rend le test réaliste. Votre handler retrouve la commande comme
en production, sans traitement spécial pour un faux paiement.
`--phone` remplace le résultat attendu
Le numéro détermine le comportement de la sandbox. Ainsi, wajub trigger payment.succeeded --phone +237670000002 crée un paiement qui échoue. Utilisez cette option pour obtenir des résultats
absents des huit arguments, comme une expiration. Consultez les
scénarios de test pour tous les suffixes.
Événements impossibles à déclencher directement
La liste est volontairement courte. Un événement y figure uniquement si la CLI peut le produire sans configuration supplémentaire. Produisez les autres comme dans votre propre code.
| Événement | Méthode |
|---|---|
transfer.* | wajub beneficiaries create, puis wajub transfers create |
dispute.* | Les litiges sont ouverts par l'acquéreur, pas par vous |
invoice.* | wajub invoices create avec une clé live, car les factures n'existent pas en sandbox |
link.* | wajub links create avec une clé live, pour la même raison |
account.* | wajub accounts create, puis l'onboarding du marchand, pour les plateformes Sync |
payment.expired | Laissez un paiement pending atteindre la fin de sa période |
payment.split.* | wajub post /payments/{id}/splits sur un paiement de la sandbox |
Clés sandbox uniquement
wajub trigger refuse toute clé qui n'est pas une clé sandbox, avant d'envoyer la moindre
requête. Avec un profil live actif, ou une WAJUB_API_KEY live exportée, la commande s'arrête là :
$ wajub trigger payment.succeeded
› Error: `wajub trigger` only works with a sandbox API key (sk_test…).Choisissez le profil sandbox pour la commande, et vérifiez qu'aucune clé live n'est exportée,
puisque WAJUB_API_KEY l'emporte sur --profile.
wajub config # which profile is default?
wajub trigger payment.succeeded --profile sandboxLa boucle
# 1
wajub listen --forward-to localhost:3000/webhooks/wajub
# 2
wajub trigger payment.succeeded
wajub trigger payment.failed
wajub trigger refund.succeededTrois commandes couvrent les cas souvent mal gérés : la réussite, l'échec qui doit libérer la réservation et le remboursement qui ne doit pas être pris pour un nouveau paiement.